diff --git a/FModel/DLLs/csharp-wick.dll b/FModel/DLLs/csharp-wick.dll
index 002a24a5..48dc32a1 100644
Binary files a/FModel/DLLs/csharp-wick.dll and b/FModel/DLLs/csharp-wick.dll differ
diff --git a/FModel/FModel.csproj b/FModel/FModel.csproj
index 11078470..52dc0f9e 100644
--- a/FModel/FModel.csproj
+++ b/FModel/FModel.csproj
@@ -14,7 +14,7 @@
true
- AnyCPU
+ x64
true
full
false
diff --git a/FModel/MainWindow.cs b/FModel/MainWindow.cs
index 8a93d305..608d8c6e 100644
--- a/FModel/MainWindow.cs
+++ b/FModel/MainWindow.cs
@@ -42,6 +42,7 @@ namespace FModel
FindReplace _myFindReplace;
public Stopwatch StopWatch;
public PakAsset MyAsset;
+ public PakExtractor MyExtractor;
private static string[] _paksArray;
public static string[] pakAsTxt;
public static Dictionary AllpaksDictionary;
@@ -553,34 +554,25 @@ namespace FModel
if (arCurrentUsedPakGuid == "0-0-0-0") //NO DYNAMIC PAK IN DICTIONARY
{
- JwpmProcess("filelist \"" + Settings.Default.PAKsPath + "\\" + arCurrentUsedPak + "\" \"" + DefaultOutputPath + "\" " + Settings.Default.AESKey);
- if (File.Exists(DefaultOutputPath + "\\" + arCurrentUsedPak + ".txt"))
+ try
+ {
+ MyExtractor = new PakExtractor(Settings.Default.PAKsPath + "\\" + arCurrentUsedPak, Settings.Default.AESKey);
+ }
+ catch (Exception)
+ {
+ break;
+ }
+
+ if (MyExtractor.GetFileList() != null)
{
if (loadAllPaKs)
if (!File.Exists(DefaultOutputPath + "\\FortnitePAKs.txt"))
File.Create(DefaultOutputPath + "\\FortnitePAKs.txt").Dispose();
- string[] currentUsedPakLines = File.ReadAllLines(DefaultOutputPath + "\\" + arCurrentUsedPak + ".txt");
+ string[] currentUsedPakLines = MyExtractor.GetFileList().ToArray();
for (int ii = 0; ii < currentUsedPakLines.Length; ii++)
{
- if (arCurrentUsedPak == "pakchunk10_s1-WindowsClient.pak" || arCurrentUsedPak == "pakchunk10_s4-WindowsClient.pak" || arCurrentUsedPak == "pakchunk10_s5-WindowsClient.pak" || arCurrentUsedPak == "pakchunk10_s6-WindowsClient.pak" || arCurrentUsedPak == "pakchunk10_s7-WindowsClient.pak" || arCurrentUsedPak == "pakchunk10_s8-WindowsClient.pak" || arCurrentUsedPak == "pakchunk11-WindowsClient.pak" || arCurrentUsedPak == "pakchunk11_s1-WindowsClient.pak" || arCurrentUsedPak == "pakchunk1-WindowsClient.pak")
- currentUsedPakLines[ii] = "FortniteGame/Content/" + currentUsedPakLines[ii];
- if (arCurrentUsedPak == "pakchunk10_s2-WindowsClient.pak")
- currentUsedPakLines[ii] = "FortniteGame/Content/Characters/Player/" + currentUsedPakLines[ii];
- if (arCurrentUsedPak == "pakchunk1_s1-WindowsClient.pak")
- currentUsedPakLines[ii] = "FortniteGame/Content/Weapons/" + currentUsedPakLines[ii];
- if (arCurrentUsedPak == "pakchunk10_s3-WindowsClient.pak")
- currentUsedPakLines[ii] = "FortniteGame/Content/Characters/Player/Male/" + currentUsedPakLines[ii];
- if (arCurrentUsedPak == "pakchunk5-WindowsClient.pak")
- currentUsedPakLines[ii] = "FortniteGame/Content/L10N/fr/" + currentUsedPakLines[ii];
- if (arCurrentUsedPak == "pakchunk2-WindowsClient.pak")
- currentUsedPakLines[ii] = "FortniteGame/Content/L10N/de/" + currentUsedPakLines[ii];
- if (arCurrentUsedPak == "pakchunk7-WindowsClient.pak")
- currentUsedPakLines[ii] = "FortniteGame/Content/L10N/pl/" + currentUsedPakLines[ii];
- if (arCurrentUsedPak == "pakchunk8-WindowsClient.pak")
- currentUsedPakLines[ii] = "FortniteGame/Content/L10N/ru/" + currentUsedPakLines[ii];
- if (arCurrentUsedPak == "pakchunk9-WindowsClient.pak")
- currentUsedPakLines[ii] = "FortniteGame/Content/L10N/zh-CN/" + currentUsedPakLines[ii];
+ currentUsedPakLines[ii] = MyExtractor.GetMountPoint().Substring(6) + currentUsedPakLines[ii];
string currentUsedPakFileName = currentUsedPakLines[ii].Substring(currentUsedPakLines[ii].LastIndexOf("/", StringComparison.Ordinal) + 1);
if (currentUsedPakFileName.Contains(".uasset") || currentUsedPakFileName.Contains(".uexp") || currentUsedPakFileName.Contains(".ubulk"))
@@ -600,27 +592,9 @@ namespace FModel
}
if (loadAllPaKs)
{
- if (arCurrentUsedPak == "pakchunk10_s1-WindowsClient.pak" || arCurrentUsedPak == "pakchunk10_s4-WindowsClient.pak" || arCurrentUsedPak == "pakchunk10_s5-WindowsClient.pak" || arCurrentUsedPak == "pakchunk10_s6-WindowsClient.pak" || arCurrentUsedPak == "pakchunk10_s7-WindowsClient.pak" || arCurrentUsedPak == "pakchunk10_s8-WindowsClient.pak" || arCurrentUsedPak == "pakchunk11-WindowsClient.pak" || arCurrentUsedPak == "pakchunk11_s1-WindowsClient.pak" || arCurrentUsedPak == "pakchunk1-WindowsClient.pak")
- UpdateConsole(".PAK mount point: \"/FortniteGame/Content/\"", Color.FromArgb(255, 244, 132, 66), "Waiting");
- if (arCurrentUsedPak == "pakchunk10_s2-WindowsClient.pak")
- UpdateConsole(".PAK mount point: \"/FortniteGame/Content/Characters/Player/\"", Color.FromArgb(255, 244, 132, 66), "Waiting");
- if (arCurrentUsedPak == "pakchunk1_s1-WindowsClient.pak")
- UpdateConsole(".PAK mount point: \"FortniteGame/Content/Weapons/\"", Color.FromArgb(255, 244, 132, 66), "Waiting");
- if (arCurrentUsedPak == "pakchunk10_s3-WindowsClient.pak")
- UpdateConsole(".PAK mount point: \"/FortniteGame/Content/Characters/Player/Male/\"", Color.FromArgb(255, 244, 132, 66), "Waiting");
- if (arCurrentUsedPak == "pakchunk5-WindowsClient.pak")
- UpdateConsole(".PAK mount point: \"/FortniteGame/Content/L10N/fr/\"", Color.FromArgb(255, 244, 132, 66), "Waiting");
- if (arCurrentUsedPak == "pakchunk2-WindowsClient.pak")
- UpdateConsole(".PAK mount point: \"/FortniteGame/Content/L10N/de/\"", Color.FromArgb(255, 244, 132, 66), "Waiting");
- if (arCurrentUsedPak == "pakchunk7-WindowsClient.pak")
- UpdateConsole(".PAK mount point: \"/FortniteGame/Content/L10N/pl/\"", Color.FromArgb(255, 244, 132, 66), "Waiting");
- if (arCurrentUsedPak == "pakchunk8-WindowsClient.pak")
- UpdateConsole(".PAK mount point: \"/FortniteGame/Content/L10N/ru/\"", Color.FromArgb(255, 244, 132, 66), "Waiting");
- if (arCurrentUsedPak == "pakchunk9-WindowsClient.pak")
- UpdateConsole(".PAK mount point: \"/FortniteGame/Content/L10N/zh-CN/\"", Color.FromArgb(255, 244, 132, 66), "Waiting");
+ UpdateConsole(".PAK mount point: " + MyExtractor.GetMountPoint().Substring(9), Color.FromArgb(255, 244, 132, 66), "Waiting");
File.AppendAllLines(DefaultOutputPath + "\\FortnitePAKs.txt", currentUsedPakLines);
- File.Delete(DefaultOutputPath + "\\" + arCurrentUsedPak + ".txt");
CurrentUsedPak = null;
CurrentUsedPakGuid = null;
@@ -632,13 +606,23 @@ namespace FModel
CurrentUsedPak = theSinglePak.ClickedItem.Text;
CurrentUsedPakGuid = ReadPakGuid(Settings.Default.PAKsPath + "\\" + CurrentUsedPak);
- if (arCurrentUsedPak != theSinglePak.ClickedItem.Text) //DELETE EVERYTHING EXCEPT SELECTED PAK
- File.Delete(DefaultOutputPath + "\\" + arCurrentUsedPak + ".txt");
+ if (arCurrentUsedPak == theSinglePak.ClickedItem.Text && MyExtractor.GetFileList() != null)
+ pakAsTxt = MyExtractor.GetFileList().ToArray();
}
}
if (theSinglePak != null && ReadPakGuid(Settings.Default.PAKsPath + "\\" + theSinglePak.ClickedItem.Text) != "0-0-0-0") //LOADING DYNAMIC PAK
{
- JwpmProcess("filelist \"" + Settings.Default.PAKsPath + "\\" + theSinglePak.ClickedItem.Text + "\" \"" + DefaultOutputPath + "\" " + Settings.Default.AESKey);
+ try
+ {
+ MyExtractor = new PakExtractor(Settings.Default.PAKsPath + "\\" + theSinglePak.ClickedItem.Text, Settings.Default.AESKey);
+
+ if (MyExtractor.GetFileList() != null)
+ pakAsTxt = MyExtractor.GetFileList().ToArray();
+ }
+ catch (Exception)
+ {
+ UpdateConsole("Can't read " + theSinglePak.ClickedItem.Text + " with this key", Color.FromArgb(255, 244, 66, 66), "Error");
+ }
}
UpdateConsole("Building tree, please wait...", Color.FromArgb(255, 244, 132, 66), "Loading");
}
@@ -742,15 +726,8 @@ namespace FModel
//ADD TO DICTIONNARY
RegisterPaKsinDict(_paksArray, selectedPak);
- if (!File.Exists(DefaultOutputPath + "\\" + selectedPak.ClickedItem.Text + ".txt"))
+ if (pakAsTxt != null)
{
- UpdateConsole("Can't read " + selectedPak.ClickedItem.Text + " with this key", Color.FromArgb(255, 244, 66, 66), "Error");
- }
- else
- {
- pakAsTxt = File.ReadAllLines(DefaultOutputPath + "\\" + selectedPak.ClickedItem.Text + ".txt");
- File.Delete(DefaultOutputPath + "\\" + selectedPak.ClickedItem.Text + ".txt");
-
Invoke(new Action(() =>
{
treeView1.BeginUpdate();
@@ -762,6 +739,8 @@ namespace FModel
}));
UpdateConsole(Settings.Default.PAKsPath + "\\" + selectedPak.ClickedItem.Text, Color.FromArgb(255, 66, 244, 66), "Success");
}
+ else
+ UpdateConsole("Can't read " + selectedPak.ClickedItem.Text + " with this key", Color.FromArgb(255, 244, 66, 66), "Error");
}
if (loadAllPaKs)
{
@@ -846,55 +825,28 @@ namespace FModel
if (arCurrentUsedPakGuid == "0-0-0-0") //NO DYNAMIC PAK
{
- JwpmProcess("filelist \"" + Settings.Default.PAKsPath + "\\" + arCurrentUsedPak + "\" \"" + DefaultOutputPath + "\" " + Settings.Default.AESKey);
- if (File.Exists(DefaultOutputPath + "\\" + arCurrentUsedPak + ".txt"))
+ try
+ {
+ MyExtractor = new PakExtractor(Settings.Default.PAKsPath + "\\" + arCurrentUsedPak, Settings.Default.AESKey);
+ }
+ catch (Exception)
+ {
+ break;
+ }
+
+ if (MyExtractor.GetFileList() != null)
{
if (!File.Exists(DefaultOutputPath + "\\Backup" + _backupFileName))
File.Create(DefaultOutputPath + "\\Backup" + _backupFileName).Dispose();
- string[] currentUsedPakLines = File.ReadAllLines(DefaultOutputPath + "\\" + arCurrentUsedPak + ".txt");
+ string[] currentUsedPakLines = MyExtractor.GetFileList().ToArray();
for (int ii = 0; ii < currentUsedPakLines.Length; ii++)
{
- if (arCurrentUsedPak == "pakchunk10_s1-WindowsClient.pak" || arCurrentUsedPak == "pakchunk10_s4-WindowsClient.pak" || arCurrentUsedPak == "pakchunk10_s5-WindowsClient.pak" || arCurrentUsedPak == "pakchunk10_s6-WindowsClient.pak" || arCurrentUsedPak == "pakchunk10_s7-WindowsClient.pak" || arCurrentUsedPak == "pakchunk10_s8-WindowsClient.pak" || arCurrentUsedPak == "pakchunk11-WindowsClient.pak" || arCurrentUsedPak == "pakchunk11_s1-WindowsClient.pak" || arCurrentUsedPak == "pakchunk1-WindowsClient.pak")
- currentUsedPakLines[ii] = "FortniteGame/Content/" + currentUsedPakLines[ii];
- if (arCurrentUsedPak == "pakchunk10_s2-WindowsClient.pak")
- currentUsedPakLines[ii] = "FortniteGame/Content/Characters/Player/" + currentUsedPakLines[ii];
- if (arCurrentUsedPak == "pakchunk1_s1-WindowsClient.pak")
- currentUsedPakLines[ii] = "FortniteGame/Content/Weapons/" + currentUsedPakLines[ii];
- if (arCurrentUsedPak == "pakchunk10_s3-WindowsClient.pak")
- currentUsedPakLines[ii] = "FortniteGame/Content/Characters/Player/Male/" + currentUsedPakLines[ii];
- if (arCurrentUsedPak == "pakchunk5-WindowsClient.pak")
- currentUsedPakLines[ii] = "FortniteGame/Content/L10N/fr/" + currentUsedPakLines[ii];
- if (arCurrentUsedPak == "pakchunk2-WindowsClient.pak")
- currentUsedPakLines[ii] = "FortniteGame/Content/L10N/de/" + currentUsedPakLines[ii];
- if (arCurrentUsedPak == "pakchunk7-WindowsClient.pak")
- currentUsedPakLines[ii] = "FortniteGame/Content/L10N/pl/" + currentUsedPakLines[ii];
- if (arCurrentUsedPak == "pakchunk8-WindowsClient.pak")
- currentUsedPakLines[ii] = "FortniteGame/Content/L10N/ru/" + currentUsedPakLines[ii];
- if (arCurrentUsedPak == "pakchunk9-WindowsClient.pak")
- currentUsedPakLines[ii] = "FortniteGame/Content/L10N/zh-CN/" + currentUsedPakLines[ii];
+ currentUsedPakLines[ii] = MyExtractor.GetMountPoint().Substring(6) + currentUsedPakLines[ii];
}
- if (arCurrentUsedPak == "pakchunk10_s1-WindowsClient.pak" || arCurrentUsedPak == "pakchunk10_s4-WindowsClient.pak" || arCurrentUsedPak == "pakchunk10_s5-WindowsClient.pak" || arCurrentUsedPak == "pakchunk10_s6-WindowsClient.pak" || arCurrentUsedPak == "pakchunk10_s7-WindowsClient.pak" || arCurrentUsedPak == "pakchunk10_s8-WindowsClient.pak" || arCurrentUsedPak == "pakchunk11-WindowsClient.pak" || arCurrentUsedPak == "pakchunk11_s1-WindowsClient.pak" || arCurrentUsedPak == "pakchunk1-WindowsClient.pak")
- UpdateConsole(".PAK mount point: \"/FortniteGame/Content/\"", Color.FromArgb(255, 244, 132, 66), "Waiting");
- if (arCurrentUsedPak == "pakchunk10_s2-WindowsClient.pak")
- UpdateConsole(".PAK mount point: \"/FortniteGame/Content/Characters/Player/\"", Color.FromArgb(255, 244, 132, 66), "Waiting");
- if (arCurrentUsedPak == "pakchunk1_s1-WindowsClient.pak")
- UpdateConsole(".PAK mount point: \"FortniteGame/Content/Weapons/\"", Color.FromArgb(255, 244, 132, 66), "Waiting");
- if (arCurrentUsedPak == "pakchunk10_s3-WindowsClient.pak")
- UpdateConsole(".PAK mount point: \"/FortniteGame/Content/Characters/Player/Male/\"", Color.FromArgb(255, 244, 132, 66), "Waiting");
- if (arCurrentUsedPak == "pakchunk5-WindowsClient.pak")
- UpdateConsole(".PAK mount point: \"/FortniteGame/Content/L10N/fr/\"", Color.FromArgb(255, 244, 132, 66), "Waiting");
- if (arCurrentUsedPak == "pakchunk2-WindowsClient.pak")
- UpdateConsole(".PAK mount point: \"/FortniteGame/Content/L10N/de/\"", Color.FromArgb(255, 244, 132, 66), "Waiting");
- if (arCurrentUsedPak == "pakchunk7-WindowsClient.pak")
- UpdateConsole(".PAK mount point: \"/FortniteGame/Content/L10N/pl/\"", Color.FromArgb(255, 244, 132, 66), "Waiting");
- if (arCurrentUsedPak == "pakchunk8-WindowsClient.pak")
- UpdateConsole(".PAK mount point: \"/FortniteGame/Content/L10N/ru/\"", Color.FromArgb(255, 244, 132, 66), "Waiting");
- if (arCurrentUsedPak == "pakchunk9-WindowsClient.pak")
- UpdateConsole(".PAK mount point: \"/FortniteGame/Content/L10N/zh-CN/\"", Color.FromArgb(255, 244, 132, 66), "Waiting");
+ UpdateConsole(".PAK mount point: " + MyExtractor.GetMountPoint().Substring(9), Color.FromArgb(255, 244, 132, 66), "Waiting");
File.AppendAllLines(DefaultOutputPath + "\\Backup" + _backupFileName, currentUsedPakLines);
- File.Delete(DefaultOutputPath + "\\" + arCurrentUsedPak + ".txt");
}
}
else
@@ -904,21 +856,28 @@ namespace FModel
var parts = myString.Split(':');
if (parts[0] == arCurrentUsedPak && parts[1].StartsWith("0x"))
{
- JwpmProcess("filelist \"" + Settings.Default.PAKsPath + "\\" + arCurrentUsedPak + "\" \"" + DefaultOutputPath + "\" " + parts[1].Substring(2));
- if (File.Exists(DefaultOutputPath + "\\" + arCurrentUsedPak + ".txt"))
+ try
+ {
+ MyExtractor = new PakExtractor(Settings.Default.PAKsPath + "\\" + arCurrentUsedPak, parts[1].Substring(2));
+ }
+ catch (Exception)
+ {
+ continue;
+ }
+
+ if (MyExtractor.GetFileList() != null)
{
if (!File.Exists(DefaultOutputPath + "\\Backup" + _backupFileName))
File.Create(DefaultOutputPath + "\\Backup" + _backupFileName).Dispose();
- string[] currentUsedPakLines = File.ReadAllLines(DefaultOutputPath + "\\" + arCurrentUsedPak + ".txt");
+ string[] currentUsedPakLines = MyExtractor.GetFileList().ToArray();
for (int ii = 0; ii < currentUsedPakLines.Length; ii++)
{
- currentUsedPakLines[ii] = "FortniteGame/" + currentUsedPakLines[ii];
+ currentUsedPakLines[ii] = MyExtractor.GetMountPoint().Substring(6) + currentUsedPakLines[ii];
}
UpdateConsole(arCurrentUsedPak, Color.FromArgb(255, 244, 132, 66), "Waiting");
File.AppendAllLines(DefaultOutputPath + "\\Backup" + _backupFileName, currentUsedPakLines);
- File.Delete(DefaultOutputPath + "\\" + arCurrentUsedPak + ".txt");
}
}
else if (parts[0] == arCurrentUsedPak && parts[1] == "undefined")
@@ -2516,124 +2475,127 @@ namespace FModel
{
for (int i2 = 0; i2 < bundleParser[i].BundleCompletionRewards.Length; i2++)
{
- string itemReward = bundleParser[i].BundleCompletionRewards[i2].Rewards.FirstOrDefault().ItemDefinition.AssetPathName.Substring(bundleParser[i].BundleCompletionRewards[i2].Rewards.FirstOrDefault().ItemDefinition.AssetPathName.LastIndexOf(".", StringComparison.Ordinal) + 1);
- string compCount = bundleParser[i].BundleCompletionRewards[i2].CompletionCount.ToString();
-
- if (itemReward != "AthenaBattlePass_WeeklyChallenge_Token" && itemReward != "AthenaBattlePass_WeeklyBundle_Token")
+ for (int i3 = 0; i3 < bundleParser[i].BundleCompletionRewards[i2].Rewards.Length; i3++)
{
- justSkip += 1;
- iamY += 140;
+ string itemReward = Path.GetFileName(bundleParser[i].BundleCompletionRewards[i2].Rewards[i3].ItemDefinition.AssetPathName.Substring(0, bundleParser[i].BundleCompletionRewards[i2].Rewards[i3].ItemDefinition.AssetPathName.LastIndexOf(".", StringComparison.Ordinal)));
+ string compCount = bundleParser[i].BundleCompletionRewards[i2].CompletionCount.ToString();
- if (itemReward.Contains("Fortbyte_WeeklyChallengesComplete_"))
+ if (itemReward != "AthenaBattlePass_WeeklyChallenge_Token" && itemReward != "AthenaBattlePass_WeeklyBundle_Token")
{
- #region DRAW ICON
- string textureFile = "T_UI_PuzzleIcon_64";
+ justSkip += 1;
+ iamY += 140;
- if (CurrentUsedPakGuid != null && CurrentUsedPakGuid != "0-0-0-0")
- JwpmProcess("extract \"" + Settings.Default.PAKsPath + "\\" + CurrentUsedPak + "\" \"" + textureFile + "\" \"" + DefaultOutputPath + "\" " + Settings.Default.AESKey);
- else
- JwpmProcess("extract \"" + Settings.Default.PAKsPath + "\\" + AllpaksDictionary[textureFile ?? throw new InvalidOperationException()] + "\" \"" + textureFile + "\" \"" + DefaultOutputPath + "\" " + Settings.Default.AESKey);
- string textureFilePath = Directory.GetFiles(DefaultOutputPath + "\\Extracted", textureFile + ".*", SearchOption.AllDirectories).Where(x => !x.EndsWith(".png")).FirstOrDefault();
-
- if (textureFilePath != null)
+ if (itemReward.Contains("Fortbyte_WeeklyChallengesComplete_"))
{
- MyAsset = new PakAsset(textureFilePath.Substring(0, textureFilePath.LastIndexOf('\\')) + "\\" + textureFile);
- MyAsset.SaveTexture(textureFilePath.Substring(0, textureFilePath.LastIndexOf('\\')) + "\\" + textureFile + ".png");
- ItemIconPath = textureFilePath.Substring(0, textureFilePath.LastIndexOf('\\')) + "\\" + textureFile + ".png";
- UpdateConsole(textureFile + " successfully converted to .PNG", Color.FromArgb(255, 66, 244, 66), "Success");
- }
- else
- UpdateConsole("Error while extracting " + textureFile, Color.FromArgb(255, 244, 66, 66), "Error");
+ #region DRAW ICON
+ string textureFile = "T_UI_PuzzleIcon_64";
- if (File.Exists(ItemIconPath))
- {
- Image itemIcon;
- using (var bmpTemp = new Bitmap(ItemIconPath))
+ if (CurrentUsedPakGuid != null && CurrentUsedPakGuid != "0-0-0-0")
+ JwpmProcess("extract \"" + Settings.Default.PAKsPath + "\\" + CurrentUsedPak + "\" \"" + textureFile + "\" \"" + DefaultOutputPath + "\" " + Settings.Default.AESKey);
+ else
+ JwpmProcess("extract \"" + Settings.Default.PAKsPath + "\\" + AllpaksDictionary[textureFile ?? throw new InvalidOperationException()] + "\" \"" + textureFile + "\" \"" + DefaultOutputPath + "\" " + Settings.Default.AESKey);
+ string textureFilePath = Directory.GetFiles(DefaultOutputPath + "\\Extracted", textureFile + ".*", SearchOption.AllDirectories).Where(x => !x.EndsWith(".png")).FirstOrDefault();
+
+ if (textureFilePath != null)
{
- itemIcon = new Bitmap(bmpTemp);
+ MyAsset = new PakAsset(textureFilePath.Substring(0, textureFilePath.LastIndexOf('\\')) + "\\" + textureFile);
+ MyAsset.SaveTexture(textureFilePath.Substring(0, textureFilePath.LastIndexOf('\\')) + "\\" + textureFile + ".png");
+ ItemIconPath = textureFilePath.Substring(0, textureFilePath.LastIndexOf('\\')) + "\\" + textureFile + ".png";
+ UpdateConsole(textureFile + " successfully converted to .PNG", Color.FromArgb(255, 66, 244, 66), "Success");
}
- g.DrawImage(Forms.Settings.ResizeImage(itemIcon, 110, 110), new Point(2300, iamY + 6));
- }
- else
- {
- Image itemIcon = Resources.unknown512;
- g.DrawImage(Forms.Settings.ResizeImage(itemIcon, 110, 110), new Point(2300, iamY + 6));
- }
- #endregion
+ else
+ UpdateConsole("Error while extracting " + textureFile, Color.FromArgb(255, 244, 66, 66), "Error");
- if (compCount == "-1")
- g.DrawString("Complete ALL CHALLENGES to earn the reward item", new Font(_pfc.Families[1], 50), new SolidBrush(Color.White), new Point(100, iamY + 22));
- else
- g.DrawString("Complete ANY " + compCount + " CHALLENGES to earn the reward item", new Font(_pfc.Families[1], 50), new SolidBrush(Color.White), new Point(100, iamY + 22));
- }
- else
- {
- if (bundleParser[i].BundleCompletionRewards[i2].Rewards.FirstOrDefault().ItemDefinition.AssetPathName == "None")
- {
- var partsofbruhreally = bundleParser[i].BundleCompletionRewards[i2].Rewards.FirstOrDefault().TemplateId.Split(':');
- DrawRewardBanner(partsofbruhreally[1], g, iamY);
- }
- else if (string.Equals(itemReward, "athenabattlestar", StringComparison.CurrentCultureIgnoreCase))
- {
- #region DRAW ICON
- Image rewardIcon = Resources.T_FNBR_BattlePoints_L;
- g.DrawImage(Forms.Settings.ResizeImage(rewardIcon, 75, 75), new Point(2325, iamY + 22));
-
- GraphicsPath p = new GraphicsPath();
- p.AddString(
- bundleParser[i].BundleCompletionRewards[i2].Rewards.FirstOrDefault().Quantity.ToString(),
- _pfc.Families[1],
- (int)FontStyle.Regular,
- 60,
- new Point(2322, iamY + 25), _rightString);
- g.DrawPath(new Pen(Color.FromArgb(255, 143, 74, 32), 5), p);
-
- g.FillPath(new SolidBrush(Color.FromArgb(255, 255, 219, 103)), p);
+ if (File.Exists(ItemIconPath))
+ {
+ Image itemIcon;
+ using (var bmpTemp = new Bitmap(ItemIconPath))
+ {
+ itemIcon = new Bitmap(bmpTemp);
+ }
+ g.DrawImage(Forms.Settings.ResizeImage(itemIcon, 110, 110), new Point(2300, iamY + 6));
+ }
+ else
+ {
+ Image itemIcon = Resources.unknown512;
+ g.DrawImage(Forms.Settings.ResizeImage(itemIcon, 110, 110), new Point(2300, iamY + 6));
+ }
#endregion
- }
- else if (string.Equals(itemReward, "AthenaSeasonalXP", StringComparison.CurrentCultureIgnoreCase))
- {
- #region DRAW ICON
- Image rewardIcon = Resources.T_FNBR_SeasonalXP_L;
- g.DrawImage(Forms.Settings.ResizeImage(rewardIcon, 75, 75), new Point(2325, iamY + 22));
- GraphicsPath p = new GraphicsPath();
- p.AddString(
- bundleParser[i].BundleCompletionRewards[i2].Rewards.FirstOrDefault().Quantity.ToString(),
- _pfc.Families[1],
- (int)FontStyle.Regular,
- 60,
- new Point(2322, iamY + 25), _rightString);
- g.DrawPath(new Pen(Color.FromArgb(255, 81, 131, 15), 5), p);
-
- g.FillPath(new SolidBrush(Color.FromArgb(255, 230, 253, 177)), p);
- #endregion
- }
- else if (string.Equals(itemReward, "MtxGiveaway", StringComparison.CurrentCultureIgnoreCase))
- {
- #region DRAW ICON
- Image rewardIcon = Resources.T_Items_MTX_L;
- g.DrawImage(Forms.Settings.ResizeImage(rewardIcon, 75, 75), new Point(2325, iamY + 22));
-
- GraphicsPath p = new GraphicsPath();
- p.AddString(
- bundleParser[i].BundleCompletionRewards[i2].Rewards.FirstOrDefault().Quantity.ToString(),
- _pfc.Families[1],
- (int)FontStyle.Regular,
- 60,
- new Point(2322, iamY + 25), _rightString);
- g.DrawPath(new Pen(Color.FromArgb(255, 100, 160, 175), 5), p);
-
- g.FillPath(new SolidBrush(Color.FromArgb(255, 220, 230, 255)), p);
- #endregion
+ if (compCount == "-1")
+ g.DrawString("Complete ALL CHALLENGES to earn the reward item", new Font(_pfc.Families[1], 50), new SolidBrush(Color.White), new Point(100, iamY + 22));
+ else
+ g.DrawString("Complete ANY " + compCount + " CHALLENGES to earn the reward item", new Font(_pfc.Families[1], 50), new SolidBrush(Color.White), new Point(100, iamY + 22));
}
else
- DrawRewardIcon(itemReward, g, iamY);
+ {
+ if (bundleParser[i].BundleCompletionRewards[i2].Rewards[i3].ItemDefinition.AssetPathName == "None")
+ {
+ var partsofbruhreally = bundleParser[i].BundleCompletionRewards[i2].Rewards[i3].TemplateId.Split(':');
+ DrawRewardBanner(partsofbruhreally[1], g, iamY);
+ }
+ else if (string.Equals(itemReward, "athenabattlestar", StringComparison.CurrentCultureIgnoreCase))
+ {
+ #region DRAW ICON
+ Image rewardIcon = Resources.T_FNBR_BattlePoints_L;
+ g.DrawImage(Forms.Settings.ResizeImage(rewardIcon, 75, 75), new Point(2325, iamY + 22));
- if (compCount == "-1")
- g.DrawString("Complete ALL CHALLENGES to earn the reward item", new Font(_pfc.Families[1], 50), new SolidBrush(Color.White), new Point(100, iamY + 22));
- else
- g.DrawString("Complete ANY " + compCount + " CHALLENGES to earn the reward item", new Font(_pfc.Families[1], 50), new SolidBrush(Color.White), new Point(100, iamY + 22));
+ GraphicsPath p = new GraphicsPath();
+ p.AddString(
+ bundleParser[i].BundleCompletionRewards[i2].Rewards[i3].Quantity.ToString(),
+ _pfc.Families[1],
+ (int)FontStyle.Regular,
+ 60,
+ new Point(2322, iamY + 25), _rightString);
+ g.DrawPath(new Pen(Color.FromArgb(255, 143, 74, 32), 5), p);
+
+ g.FillPath(new SolidBrush(Color.FromArgb(255, 255, 219, 103)), p);
+ #endregion
+ }
+ else if (string.Equals(itemReward, "AthenaSeasonalXP", StringComparison.CurrentCultureIgnoreCase))
+ {
+ #region DRAW ICON
+ Image rewardIcon = Resources.T_FNBR_SeasonalXP_L;
+ g.DrawImage(Forms.Settings.ResizeImage(rewardIcon, 75, 75), new Point(2325, iamY + 22));
+
+ GraphicsPath p = new GraphicsPath();
+ p.AddString(
+ bundleParser[i].BundleCompletionRewards[i2].Rewards[i3].Quantity.ToString(),
+ _pfc.Families[1],
+ (int)FontStyle.Regular,
+ 60,
+ new Point(2322, iamY + 25), _rightString);
+ g.DrawPath(new Pen(Color.FromArgb(255, 81, 131, 15), 5), p);
+
+ g.FillPath(new SolidBrush(Color.FromArgb(255, 230, 253, 177)), p);
+ #endregion
+ }
+ else if (string.Equals(itemReward, "MtxGiveaway", StringComparison.CurrentCultureIgnoreCase))
+ {
+ #region DRAW ICON
+ Image rewardIcon = Resources.T_Items_MTX_L;
+ g.DrawImage(Forms.Settings.ResizeImage(rewardIcon, 75, 75), new Point(2325, iamY + 22));
+
+ GraphicsPath p = new GraphicsPath();
+ p.AddString(
+ bundleParser[i].BundleCompletionRewards[i2].Rewards[i3].Quantity.ToString(),
+ _pfc.Families[1],
+ (int)FontStyle.Regular,
+ 60,
+ new Point(2322, iamY + 25), _rightString);
+ g.DrawPath(new Pen(Color.FromArgb(255, 100, 160, 175), 5), p);
+
+ g.FillPath(new SolidBrush(Color.FromArgb(255, 220, 230, 255)), p);
+ #endregion
+ }
+ else
+ DrawRewardIcon(itemReward, g, iamY);
+
+ if (compCount == "-1")
+ g.DrawString("Complete ALL CHALLENGES to earn the reward item", new Font(_pfc.Families[1], 50), new SolidBrush(Color.White), new Point(100, iamY + 22));
+ else
+ g.DrawString("Complete ANY " + compCount + " CHALLENGES to earn the reward item", new Font(_pfc.Families[1], 50), new SolidBrush(Color.White), new Point(100, iamY + 22));
+ }
}
}
}
diff --git a/FModel/csharp_wick.dll b/FModel/csharp_wick.dll
index 6785fd7d..c1b8e6be 100644
Binary files a/FModel/csharp_wick.dll and b/FModel/csharp_wick.dll differ