diff --git a/FModel/Methods/IconGenerator/ItemGenerator/DrawText.cs b/FModel/Methods/IconGenerator/ItemGenerator/DrawText.cs
index 676742d3..aabec6b9 100644
--- a/FModel/Methods/IconGenerator/ItemGenerator/DrawText.cs
+++ b/FModel/Methods/IconGenerator/ItemGenerator/DrawText.cs
@@ -29,12 +29,14 @@ namespace FModel
public static void DrawTexts(ItemsIdParser theItem, Graphics myGraphic, string mode)
{
+ bool isSTW = (mode == "stwHeroes" || mode == "stwDefenders");
+
using (myGraphic)
{
- SetTexts(theItem);
+ SetTexts(theItem, isSTW);
- DrawDisplayName(theItem, myGraphic);
- DrawDescription(theItem, myGraphic);
+ DrawDisplayName(theItem, myGraphic, isSTW);
+ DrawDescription(theItem, myGraphic, isSTW);
switch (mode)
{
@@ -81,7 +83,7 @@ namespace FModel
/// todo: find a better way to handle errors
///
///
- private static void SetTexts(ItemsIdParser theItem)
+ private static void SetTexts(ItemsIdParser theItem, bool isSTW = false)
{
CosmeticSource = "";
CosmeticSet = "";
@@ -113,7 +115,7 @@ namespace FModel
case "Turkish":
case "Chinese (S)":
case "Traditional Chinese":
- ShortDescription = theItem.ShortDescription != null ? SearchResource.getTextByKey(theItem.ShortDescription.Key, theItem.ShortDescription.SourceString) : "";
+ ShortDescription = theItem.ShortDescription != null ? SearchResource.getTextByKey(theItem.ShortDescription.Key, theItem.ShortDescription.SourceString, isSTW) : "";
break;
default:
ShortDescription = theItem.ShortDescription != null ? theItem.ShortDescription.SourceString : "";
@@ -248,13 +250,13 @@ namespace FModel
///
///
///
- private static void DrawDisplayName(ItemsIdParser theItem, Graphics myGraphic)
+ private static void DrawDisplayName(ItemsIdParser theItem, Graphics myGraphic, bool isSTW = false)
{
if (theItem.DisplayName != null)
{
//myGraphic.DrawRectangle(new Pen(new SolidBrush(Color.Red)), new Rectangle(5, 405, 512, 55));
- string text = SearchResource.getTextByKey(theItem.DisplayName.Key, theItem.DisplayName.SourceString);
+ string text = SearchResource.getTextByKey(theItem.DisplayName.Key, theItem.DisplayName.SourceString, isSTW);
Font goodFont = FontUtilities.FindFont(
myGraphic,
@@ -278,13 +280,13 @@ namespace FModel
///
///
///
- private static void DrawDescription(ItemsIdParser theItem, Graphics myGraphic)
+ private static void DrawDescription(ItemsIdParser theItem, Graphics myGraphic, bool isSTW = false)
{
if (theItem.Description != null)
{
//myGraphic.DrawRectangle(new Pen(new SolidBrush(Color.Pink)), new Rectangle(5, 455, 512, 42));
- string text = SearchResource.getTextByKey(theItem.Description.Key, theItem.Description.SourceString);
+ string text = SearchResource.getTextByKey(theItem.Description.Key, theItem.Description.SourceString, isSTW);
if (!string.IsNullOrEmpty(CosmeticSet))
{
string theSet = DrawCosmeticSet(CosmeticSet);
diff --git a/FModel/Methods/IconGenerator/Translations/LoadLocRes.cs b/FModel/Methods/IconGenerator/Translations/LoadLocRes.cs
index 649c7ee6..68650533 100644
--- a/FModel/Methods/IconGenerator/Translations/LoadLocRes.cs
+++ b/FModel/Methods/IconGenerator/Translations/LoadLocRes.cs
@@ -5,6 +5,7 @@ namespace FModel
static class LoadLocRes
{
public static string myLocRes { get; set; }
+ public static string myLocResSTW { get; set; }
public static void LoadMySelectedLocRes(string selectedLanguage)
{
@@ -12,45 +13,59 @@ namespace FModel
{
case "French":
myLocRes = getMyLocRes("fr");
+ myLocResSTW = getMyLocRes("fr", true);
break;
case "German":
myLocRes = getMyLocRes("de");
+ myLocResSTW = getMyLocRes("de", true);
break;
case "Italian":
myLocRes = getMyLocRes("it");
+ myLocResSTW = getMyLocRes("it", true);
break;
case "Spanish":
myLocRes = getMyLocRes("es");
+ myLocResSTW = getMyLocRes("es", true);
break;
case "Spanish (LA)":
myLocRes = getMyLocRes("es-419");
+ myLocResSTW = getMyLocRes("es-419", true);
break;
case "Arabic":
myLocRes = getMyLocRes("ar");
+ myLocResSTW = getMyLocRes("ar", true);
break;
case "Japanese":
myLocRes = getMyLocRes("ja");
+ myLocResSTW = getMyLocRes("ja", true);
break;
case "Korean":
myLocRes = getMyLocRes("ko");
+ myLocResSTW = getMyLocRes("ko", true);
break;
case "Polish":
myLocRes = getMyLocRes("pl");
+ myLocResSTW = getMyLocRes("pl", true);
break;
case "Portuguese (Brazil)":
myLocRes = getMyLocRes("pt-BR");
+ myLocResSTW = getMyLocRes("pt-BR", true);
break;
case "Russian":
myLocRes = getMyLocRes("ru");
+ myLocResSTW = getMyLocRes("ru", true);
break;
case "Turkish":
myLocRes = getMyLocRes("tr");
+ myLocResSTW = getMyLocRes("tr", true);
break;
case "Chinese (S)":
myLocRes = getMyLocRes("zh-CN");
+ myLocResSTW = getMyLocRes("zh-CN", true);
break;
case "Traditional Chinese":
myLocRes = getMyLocRes("zh-Hant");
+ myLocResSTW = getMyLocRes("zh-Hant", true);
break;
default:
break;
@@ -62,19 +77,19 @@ namespace FModel
///
///
///
- private static string getMyLocRes(string selectedLanguage)
+ private static string getMyLocRes(string selectedLanguage, bool isSTW = false)
{
if (ThePak.AllpaksDictionary != null)
{
- if (ThePak.AllpaksDictionary.ContainsKey("Game_BR.locres"))
+ if (ThePak.AllpaksDictionary.ContainsKey(isSTW ? "Game_StW.locres" : "Game_BR.locres"))
{
- string locResPath = JohnWick.ExtractAsset(ThePak.AllpaksDictionary["Game_BR.locres"], "Game_BR.locres");
+ string locResPath = JohnWick.ExtractAsset(ThePak.AllpaksDictionary[isSTW ? "Game_StW.locres" : "Game_BR.locres"], isSTW ? "Game_StW.locres" : "Game_BR.locres");
return LocResSerializer.StringFinder(locResPath.Replace("zh-Hant", selectedLanguage));
}
else
{
- new UpdateMyConsole("[FModel] Localization File Not Found - Icon Language set to English", Color.DarkRed, true).AppendToConsole();
+ new UpdateMyConsole("[FModel] "+ (isSTW ? "STW" : "BR") +" Localization File Not Found - Icon Language set to English", Color.DarkRed, true).AppendToConsole();
new UpdateMyConsole("", Color.Black, true).AppendToConsole();
Properties.Settings.Default.IconLanguage = "English";
diff --git a/FModel/Methods/IconGenerator/Translations/SearchResource.cs b/FModel/Methods/IconGenerator/Translations/SearchResource.cs
index 78223997..b129a14c 100644
--- a/FModel/Methods/IconGenerator/Translations/SearchResource.cs
+++ b/FModel/Methods/IconGenerator/Translations/SearchResource.cs
@@ -6,8 +6,10 @@ namespace FModel
static class SearchResource
{
private static string parsedJsonToCheck { get; set; }
+ private static string parsedSTWJsonToCheck { get; set; }
public static JObject jo { get; set; }
private static string oldLanguage = Properties.Settings.Default.IconLanguage;
+ private static bool isSTWCheck { get; set; }
///
/// for most (if not all) of our translations there's no namespace so we just have to find the key in the string
@@ -16,15 +18,26 @@ namespace FModel
///
///
///
- public static string getTranslatedText(string theKey)
+ public static string getTranslatedText(string theKey, bool isSTW)
{
string toReturn = string.Empty;
string newLanguage = Properties.Settings.Default.IconLanguage;
- if (parsedJsonToCheck == null || newLanguage != oldLanguage)
+ if (isSTW)
{
- parsedJsonToCheck = JToken.Parse(LoadLocRes.myLocRes).ToString().TrimStart('[').TrimEnd(']');
- jo = JObject.Parse(parsedJsonToCheck);
+ if (parsedSTWJsonToCheck == null || newLanguage != oldLanguage || isSTWCheck != isSTW)
+ {
+ parsedSTWJsonToCheck = JToken.Parse(LoadLocRes.myLocResSTW).ToString().TrimStart('[').TrimEnd(']');
+ jo = JObject.Parse(parsedSTWJsonToCheck);
+ }
+ }
+ else
+ {
+ if (parsedJsonToCheck == null || newLanguage != oldLanguage || isSTWCheck != isSTW)
+ {
+ parsedJsonToCheck = JToken.Parse(LoadLocRes.myLocRes).ToString().TrimStart('[').TrimEnd(']');
+ jo = JObject.Parse(parsedJsonToCheck);
+ }
}
foreach (JToken token in jo.FindTokens(theKey))
@@ -36,16 +49,17 @@ namespace FModel
}
}
+ isSTWCheck = isSTW;
oldLanguage = newLanguage;
return toReturn;
}
- public static string getTextByKey(string key, string defaultText)
+ public static string getTextByKey(string key, string defaultText, bool isSTW = false)
{
string text = defaultText;
if (LoadLocRes.myLocRes != null && Properties.Settings.Default.IconLanguage != "English")
{
- text = getTranslatedText(key);
+ text = getTranslatedText(key, isSTW);
if (string.IsNullOrEmpty(text))
text = defaultText;
}