no more flat rarity image it's now drawn + memory improvements while loading paks

This commit is contained in:
Asval 2019-08-12 01:17:18 +02:00
parent 2d6024c7f8
commit f0ff619f9b
20 changed files with 213 additions and 205 deletions

View File

@ -265,10 +265,6 @@
<Content Include="DLLs\csharp-wick.dll" />
<Content Include="DLLs\ScintillaNET FindReplaceDialog.dll" />
<Content Include="FModel.ico" />
<None Include="Resources\cTemplate.png" />
<None Include="Resources\LBolt64.png" />
<None Include="Resources\wTemplatev1.png" />
<None Include="Resources\wTemplateFv1.png" />
<None Include="Resources\U512v1.png" />
<None Include="Resources\T512v1.png" />
<None Include="Resources\R512v1.png" />
@ -277,18 +273,14 @@
<None Include="Resources\L512v1.png" />
<None Include="Resources\E512v1.png" />
<None Include="Resources\C512v1.png" />
<None Include="Resources\cTemplate.png" />
<None Include="Resources\LBolt64.png" />
<None Include="Resources\wTemplatev1.png" />
<None Include="Resources\wTemplateFv1.png" />
<None Include="Resources\FModel.ico" />
<None Include="Resources\FModel_Logo.png" />
<None Include="Resources\wTemplateF.png" />
<None Include="Resources\wTemplate.png" />
<None Include="Resources\T512.png" />
<None Include="Resources\U512.png" />
<None Include="Resources\R512.png" />
<None Include="Resources\Marvel512.png" />
<None Include="Resources\M512.png" />
<None Include="Resources\L512.png" />
<None Include="Resources\E512.png" />
<None Include="Resources\C512.png" />
<None Include="Resources\twitter.ico" />
<None Include="Resources\BurbankBigCondensed-Black-vJapanese.otf" />
<None Include="Resources\reload64.png" />

View File

@ -10,7 +10,7 @@ namespace FModel
/// <summary>
/// Nettoyage des ressources utilisées.
/// </summary>
/// <param name="disposing">true si les ressources managées doivent être supprimées ; sinon, false.</param>
/// <param name="disposing">true si les ressources managées doivent être supprimées ; sinon, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
@ -39,7 +39,9 @@ namespace FModel
this.loadOneToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.loadAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.downloadBackupsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.backupPAKsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator8 = new System.Windows.Forms.ToolStripSeparator();
this.differenceModeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.updateModeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
@ -89,8 +91,6 @@ namespace FModel
this.saveAsJSONToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.contextMenuStrip2 = new System.Windows.Forms.ContextMenuStrip(this.components);
this.extractFolderContentsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator8 = new System.Windows.Forms.ToolStripSeparator();
this.downloadBackupsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.statusStrip1.SuspendLayout();
this.menuStrip1.SuspendLayout();
this.panel1.SuspendLayout();
@ -171,34 +171,46 @@ namespace FModel
// loadOneToolStripMenuItem
//
this.loadOneToolStripMenuItem.Name = "loadOneToolStripMenuItem";
this.loadOneToolStripMenuItem.Size = new System.Drawing.Size(220, 22);
this.loadOneToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.loadOneToolStripMenuItem.Text = "Load One PAK";
this.loadOneToolStripMenuItem.DropDownItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.loadOneToolStripMenuItem_DropDownItemClicked);
//
// loadAllToolStripMenuItem
//
this.loadAllToolStripMenuItem.Name = "loadAllToolStripMenuItem";
this.loadAllToolStripMenuItem.Size = new System.Drawing.Size(220, 22);
this.loadAllToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.loadAllToolStripMenuItem.Text = "Load All PAKs";
this.loadAllToolStripMenuItem.Click += new System.EventHandler(this.loadAllToolStripMenuItem_Click);
//
// toolStripSeparator1
//
this.toolStripSeparator1.Name = "toolStripSeparator1";
this.toolStripSeparator1.Size = new System.Drawing.Size(217, 6);
this.toolStripSeparator1.Size = new System.Drawing.Size(177, 6);
//
// downloadBackupsToolStripMenuItem
//
this.downloadBackupsToolStripMenuItem.Name = "downloadBackupsToolStripMenuItem";
this.downloadBackupsToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.downloadBackupsToolStripMenuItem.Text = "Download Backups";
this.downloadBackupsToolStripMenuItem.DropDownItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.DownloadBackupsToolStripMenuItem_DropDownItemClicked);
//
// backupPAKsToolStripMenuItem
//
this.backupPAKsToolStripMenuItem.Name = "backupPAKsToolStripMenuItem";
this.backupPAKsToolStripMenuItem.Size = new System.Drawing.Size(220, 22);
this.backupPAKsToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.backupPAKsToolStripMenuItem.Text = "Backup PAKs";
this.backupPAKsToolStripMenuItem.Click += new System.EventHandler(this.backupPAKsToolStripMenuItem_Click);
//
// toolStripSeparator8
//
this.toolStripSeparator8.Name = "toolStripSeparator8";
this.toolStripSeparator8.Size = new System.Drawing.Size(177, 6);
//
// differenceModeToolStripMenuItem
//
this.differenceModeToolStripMenuItem.CheckOnClick = true;
this.differenceModeToolStripMenuItem.Name = "differenceModeToolStripMenuItem";
this.differenceModeToolStripMenuItem.Size = new System.Drawing.Size(220, 22);
this.differenceModeToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.differenceModeToolStripMenuItem.Text = "Difference Mode";
this.differenceModeToolStripMenuItem.CheckedChanged += new System.EventHandler(this.differenceModeToolStripMenuItem_CheckedChanged);
//
@ -207,21 +219,21 @@ namespace FModel
this.updateModeToolStripMenuItem.CheckOnClick = true;
this.updateModeToolStripMenuItem.Enabled = false;
this.updateModeToolStripMenuItem.Name = "updateModeToolStripMenuItem";
this.updateModeToolStripMenuItem.Size = new System.Drawing.Size(220, 22);
this.updateModeToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.updateModeToolStripMenuItem.Text = "Update Mode";
this.updateModeToolStripMenuItem.CheckedChanged += new System.EventHandler(this.updateModeToolStripMenuItem_CheckedChanged);
//
// toolStripSeparator2
//
this.toolStripSeparator2.Name = "toolStripSeparator2";
this.toolStripSeparator2.Size = new System.Drawing.Size(217, 6);
this.toolStripSeparator2.Size = new System.Drawing.Size(177, 6);
//
// settingsToolStripMenuItem
//
this.settingsToolStripMenuItem.Image = global::FModel.Properties.Resources.properties_16xLG;
this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem";
this.settingsToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.F1;
this.settingsToolStripMenuItem.Size = new System.Drawing.Size(220, 22);
this.settingsToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.settingsToolStripMenuItem.Text = "Settings";
this.settingsToolStripMenuItem.Click += new System.EventHandler(this.settingsToolStripMenuItem_Click);
//
@ -308,7 +320,7 @@ namespace FModel
// saveImageToolStripMenuItem
//
this.saveImageToolStripMenuItem.Name = "saveImageToolStripMenuItem";
this.saveImageToolStripMenuItem.Size = new System.Drawing.Size(168, 22);
this.saveImageToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.saveImageToolStripMenuItem.Text = "Save Image";
this.saveImageToolStripMenuItem.Click += new System.EventHandler(this.saveImageToolStripMenuItem_Click);
//
@ -316,31 +328,31 @@ namespace FModel
//
this.autoSaveImagesToolStripMenuItem.CheckOnClick = true;
this.autoSaveImagesToolStripMenuItem.Name = "autoSaveImagesToolStripMenuItem";
this.autoSaveImagesToolStripMenuItem.Size = new System.Drawing.Size(168, 22);
this.autoSaveImagesToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.autoSaveImagesToolStripMenuItem.Text = "Auto Save Images";
//
// toolStripSeparator3
//
this.toolStripSeparator3.Name = "toolStripSeparator3";
this.toolStripSeparator3.Size = new System.Drawing.Size(165, 6);
this.toolStripSeparator3.Size = new System.Drawing.Size(177, 6);
//
// mergeImagesToolStripMenuItem
//
this.mergeImagesToolStripMenuItem.Name = "mergeImagesToolStripMenuItem";
this.mergeImagesToolStripMenuItem.Size = new System.Drawing.Size(168, 22);
this.mergeImagesToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.mergeImagesToolStripMenuItem.Text = "Merge Images";
this.mergeImagesToolStripMenuItem.Click += new System.EventHandler(this.mergeImagesToolStripMenuItem_Click);
//
// toolStripSeparator4
//
this.toolStripSeparator4.Name = "toolStripSeparator4";
this.toolStripSeparator4.Size = new System.Drawing.Size(165, 6);
this.toolStripSeparator4.Size = new System.Drawing.Size(177, 6);
//
// tweetToolStripMenuItem
//
this.tweetToolStripMenuItem.Name = "tweetToolStripMenuItem";
this.tweetToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.F4;
this.tweetToolStripMenuItem.Size = new System.Drawing.Size(168, 22);
this.tweetToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.tweetToolStripMenuItem.Text = "[BETA] Tweet";
this.tweetToolStripMenuItem.Click += new System.EventHandler(this.TweetToolStripMenuItem_Click);
//
@ -356,7 +368,7 @@ namespace FModel
//
this.aboutFModelToolStripMenuItem.Image = global::FModel.Properties.Resources.StatusAnnotations_Information_16xLG_color;
this.aboutFModelToolStripMenuItem.Name = "aboutFModelToolStripMenuItem";
this.aboutFModelToolStripMenuItem.Size = new System.Drawing.Size(150, 22);
this.aboutFModelToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.aboutFModelToolStripMenuItem.Text = "About FModel";
this.aboutFModelToolStripMenuItem.Click += new System.EventHandler(this.aboutFModelToolStripMenuItem_Click);
//
@ -632,18 +644,6 @@ namespace FModel
this.extractFolderContentsToolStripMenuItem.Text = "Extract Folder Contents";
this.extractFolderContentsToolStripMenuItem.Click += new System.EventHandler(this.ExtractFolderContentsToolStripMenuItem_Click);
//
// toolStripSeparator8
//
this.toolStripSeparator8.Name = "toolStripSeparator8";
this.toolStripSeparator8.Size = new System.Drawing.Size(217, 6);
//
// downloadBackupsToolStripMenuItem
//
this.downloadBackupsToolStripMenuItem.Name = "downloadBackupsToolStripMenuItem";
this.downloadBackupsToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.downloadBackupsToolStripMenuItem.Text = "Download Backups";
this.downloadBackupsToolStripMenuItem.DropDownItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.DownloadBackupsToolStripMenuItem_DropDownItemClicked);
//
// MainWindow
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);

View File

@ -393,6 +393,7 @@ namespace FModel
ThePak.AllpaksDictionary = new Dictionary<string, string>();
ThePak.PaksExtractorDictionary = new Dictionary<string, PakExtractor>();
ThePak.PaksFileArrayDictionary = new Dictionary<PakExtractor, string[]>();
ThePak.PaksMountPoint = new Dictionary<string, string>();
RegisterSettings.updateModeDictionary = new Dictionary<string, string>();
PakHelper.PakAsTxt = null;

View File

@ -131,7 +131,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABa
CAAAAk1TRnQBSQFMAgEBAgEAAfgBAQH4AQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
CAAAAk1TRnQBSQFMAgEBAgEAATABAgEwAQIBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA

View File

@ -2,9 +2,11 @@ using csharp_wick;
using FModel.Properties;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
namespace FModel
{
@ -216,9 +218,10 @@ namespace FModel
/// <param name="catName"></param>
private static void GetFeaturedItemIcon(JToken theItem, string catName)
{
try
string value = ThePak.AllpaksDictionary.Where(x => string.Equals(x.Key, catName, StringComparison.CurrentCultureIgnoreCase)).Select(d => d.Key).FirstOrDefault();
if (value != null)
{
string catalogFilePath = JohnWick.ExtractAsset(ThePak.AllpaksDictionary[catName], catName);
string catalogFilePath = JohnWick.ExtractAsset(ThePak.AllpaksDictionary[value], value);
if (!string.IsNullOrEmpty(catalogFilePath))
{
Checking.WasFeatured = true;
@ -229,11 +232,11 @@ namespace FModel
{
if (JohnWick.MyAsset.GetSerialized() != null)
{
ThePak.CurrentUsedItem = catName;
ThePak.CurrentUsedItem = value;
dynamic AssetData = JsonConvert.DeserializeObject(JohnWick.MyAsset.GetSerialized());
JArray AssetArray = JArray.FromObject(AssetData);
switch (catName)
switch (value)
{
case "DA_Featured_Glider_ID_070_DarkViking":
case "DA_Featured_CID_319_Athena_Commando_F_Nautilus":
@ -275,13 +278,9 @@ namespace FModel
}
}
}
else
GetItemIcon(theItem);
}
catch (KeyNotFoundException)
{
else
GetItemIcon(theItem);
}
}
/// <summary>

View File

@ -1,11 +1,99 @@
using FModel.Properties;
using Newtonsoft.Json.Linq;
using System.Drawing;
using System.Drawing.Drawing2D;
namespace FModel
{
static class Rarity
{
#region flat design
private static void DrawFlatBackground(Graphics toDrawOn, Color background, Color backgroundUpDown, Color border)
{
toDrawOn.FillRectangle(new SolidBrush(background), new Rectangle(-1, -1, 522, 522));
GraphicsPath p = new GraphicsPath();
p.StartFigure();
p.AddLine(4, 438, 517, 383);
p.AddLine(517, 383, 517, 383 + 134);
p.AddLine(4, 383 + 134, 4, 383 + 134);
p.AddLine(4, 383 + 134, 4, 438);
p.CloseFigure();
toDrawOn.FillPath(new SolidBrush(backgroundUpDown), p);
p.StartFigure();
p.AddLine(4, 4, 4, 38);
p.AddLine(4, 38, 325, 4);
p.CloseFigure();
toDrawOn.FillPath(new SolidBrush(backgroundUpDown), p);
Pen pen = new Pen(border, 5);
pen.Alignment = PenAlignment.Inset;
toDrawOn.DrawRectangle(pen, new Rectangle(-1, -1, 522, 522));
}
private static void DrawSeriesBackground(JToken theItem, Graphics toDrawOn, string theSeries)
{
if (theSeries.Equals("MarvelSeries"))
{
DrawFlatBackground(toDrawOn, Color.FromArgb(255, 165, 29, 30), Color.FromArgb(255, 128, 22, 31), Color.FromArgb(255, 237, 52, 52));
}
else
{
DrawRarityBackground(theItem, toDrawOn);
}
}
private static void DrawSpecialModeBackground(JToken theItem, Graphics toDrawOn, string specialMode)
{
if (specialMode == "ammo")
{
DrawFlatBackground(toDrawOn, Color.FromArgb(255, 109, 109, 109), Color.FromArgb(255, 84, 84, 84), Color.FromArgb(255, 144, 144, 144));
}
else
{
DrawRarityBackground(theItem, toDrawOn);
}
}
/// <summary>
/// check the rarity and draw the right colors
/// </summary>
/// <param name="theItem"></param>
/// <param name="toDrawOn"></param>
/// <param name="specialMode"></param>
private static void DrawRarityBackground(JToken theItem, Graphics toDrawOn)
{
JToken raritiesToken = theItem["Rarity"];
switch (raritiesToken != null ? raritiesToken.Value<string>() : "")
{
case "EFortRarity::Transcendent":
DrawFlatBackground(toDrawOn, Color.FromArgb(255, 155, 39, 69), Color.FromArgb(255, 120, 30, 60), Color.FromArgb(255, 223, 65, 104));
break;
case "EFortRarity::Mythic":
DrawFlatBackground(toDrawOn, Color.FromArgb(255, 170, 143, 47), Color.FromArgb(255, 132, 105, 37), Color.FromArgb(255, 217, 192, 72));
break;
case "EFortRarity::Legendary":
DrawFlatBackground(toDrawOn, Color.FromArgb(255, 170, 96, 47), Color.FromArgb(255, 132, 69, 37), Color.FromArgb(255, 217, 132, 72));
break;
case "EFortRarity::Epic":
case "EFortRarity::Quality":
DrawFlatBackground(toDrawOn, Color.FromArgb(255, 96, 47, 170), Color.FromArgb(255, 69, 37, 132), Color.FromArgb(255, 141, 67, 195));
break;
case "EFortRarity::Rare":
DrawFlatBackground(toDrawOn, Color.FromArgb(255, 55, 92, 163), Color.FromArgb(255, 42, 77, 126), Color.FromArgb(255, 72, 121, 217));
break;
case "EFortRarity::Common":
DrawFlatBackground(toDrawOn, Color.FromArgb(255, 109, 109, 109), Color.FromArgb(255, 84, 84, 84), Color.FromArgb(255, 144, 144, 144));
break;
default:
DrawFlatBackground(toDrawOn, Color.FromArgb(255, 87, 155, 39), Color.FromArgb(255, 75, 120, 30), Color.FromArgb(255, 109, 219, 73));
break;
}
}
#endregion
#region default image
/// <summary>
/// check the rarity and return the right image
/// </summary>
@ -17,20 +105,20 @@ namespace FModel
switch (raritiesToken != null ? raritiesToken.Value<string>() : "")
{
case "EFortRarity::Transcendent":
return string.Equals(Settings.Default.rarityDesign, "Flat") ? Resources.T512 : Resources.T512v1;
return Resources.T512v1;
case "EFortRarity::Mythic":
return string.Equals(Settings.Default.rarityDesign, "Flat") ? Resources.M512 : Resources.M512v1;
return Resources.M512v1;
case "EFortRarity::Legendary":
return string.Equals(Settings.Default.rarityDesign, "Flat") ? Resources.L512 : Resources.L512v1;
return Resources.L512v1;
case "EFortRarity::Epic":
case "EFortRarity::Quality":
return string.Equals(Settings.Default.rarityDesign, "Flat") ? Resources.E512 : Resources.E512v1;
return Resources.E512v1;
case "EFortRarity::Rare":
return string.Equals(Settings.Default.rarityDesign, "Flat") ? Resources.R512 : Resources.R512v1;
return Resources.R512v1;
case "EFortRarity::Common":
return string.Equals(Settings.Default.rarityDesign, "Flat") ? Resources.C512 : Resources.C512v1;
return Resources.C512v1;
default:
return string.Equals(Settings.Default.rarityDesign, "Flat") ? Resources.U512 : Resources.U512v1;
return Resources.U512v1;
}
}
@ -44,7 +132,7 @@ namespace FModel
{
if (theSeries.Equals("MarvelSeries"))
{
return string.Equals(Settings.Default.rarityDesign, "Flat") ? Resources.Marvel512 : Resources.Marvel512v1;
return Resources.Marvel512v1;
}
else
{
@ -63,13 +151,14 @@ namespace FModel
{
if (specialMode == "ammo")
{
return string.Equals(Settings.Default.rarityDesign, "Flat") ? Resources.C512 : Resources.C512v1;
return Resources.C512v1;
}
else
{
return GetRarityImage(theItem);
}
}
#endregion
/// <summary>
/// just draw the rarity
@ -79,21 +168,41 @@ namespace FModel
/// <param name="specialMode"></param>
public static void DrawRarity(JToken theItem, Graphics toDrawOn, string specialMode = null)
{
Image rarityBg;
JToken seriesToken = theItem["Series"];
if (!string.IsNullOrEmpty(seriesToken != null ? seriesToken.Value<string>() : ""))
switch (Settings.Default.rarityDesign)
{
rarityBg = GetSeriesImage(theItem, seriesToken.Value<string>());
case "Flat":
if (!string.IsNullOrEmpty(seriesToken != null ? seriesToken.Value<string>() : ""))
{
DrawSeriesBackground(theItem, toDrawOn, seriesToken.Value<string>());
}
else if (specialMode != null)
{
DrawSpecialModeBackground(theItem, toDrawOn, specialMode);
}
else
{
DrawRarityBackground(theItem, toDrawOn);
}
break;
default:
Image rarityBg;
if (!string.IsNullOrEmpty(seriesToken != null ? seriesToken.Value<string>() : ""))
{
rarityBg = GetSeriesImage(theItem, seriesToken.Value<string>());
}
else if (specialMode != null)
{
rarityBg = GetSpecialModeImage(theItem, specialMode);
}
else
{
rarityBg = GetRarityImage(theItem);
}
toDrawOn.DrawImage(rarityBg, new Point(0, 0));
break;
}
else if (specialMode != null)
{
rarityBg = GetSpecialModeImage(theItem, specialMode);
}
else
{
rarityBg = GetRarityImage(theItem);
}
toDrawOn.DrawImage(rarityBg, new Point(0, 0));
}
}
}

View File

@ -12,18 +12,28 @@ namespace FModel
{
public static PakAsset MyAsset;
/// <summary>
/// Normal pak file: using AllpaksDictionary, it tells you the pak name depending on currentItem. Using this pak name and PaksMountPoint we get the mount point
/// </summary>
/// <param name="currentItem"></param>
/// <returns> the mount point as string, used to create subfolders when extracting or create the tree when loading all paks </returns>
private static string GetMountPointFromDict(string currentItem)
{
return ThePak.PaksMountPoint[ThePak.AllpaksDictionary[currentItem]];
}
/// <summary>
/// just the method to create subfolders using GetMountPointFromDict and write the file from myResults with its byte[] data
/// </summary>
/// <param name="myResults"></param>
/// <param name="data"></param>
/// <returns> the path to this brand new created file </returns>
private static string WriteFile(string myResults, byte[] data)
private static string WriteFile(string currentItem, string myResults, byte[] data)
{
Directory.CreateDirectory(App.DefaultOutputPath + "\\Extracted\\" + myResults.Substring(0, myResults.LastIndexOf("/", StringComparison.Ordinal)));
File.WriteAllBytes(App.DefaultOutputPath + "\\Extracted\\" + myResults, data);
Directory.CreateDirectory(App.DefaultOutputPath + "\\Extracted\\" + GetMountPointFromDict(currentItem) + myResults.Substring(0, myResults.LastIndexOf("/", StringComparison.Ordinal)));
File.WriteAllBytes(App.DefaultOutputPath + "\\Extracted\\" + GetMountPointFromDict(currentItem) + myResults, data);
return App.DefaultOutputPath + "\\Extracted\\" + myResults;
return App.DefaultOutputPath + "\\Extracted\\" + GetMountPointFromDict(currentItem) + myResults;
}
/// <summary>
@ -57,7 +67,7 @@ namespace FModel
uint y = (uint)index;
byte[] b = pakExtractor.GetData(y);
AssetPath = WriteFile(results[i], b).Replace("/", "\\");
AssetPath = WriteFile(currentItem, results[i], b).Replace("/", "\\");
}
pakExtractor = null;

View File

@ -37,24 +37,25 @@ namespace FModel
}
else { if (theExtractor != null) { theExtractor.Dispose(); } break; }
}
catch (Exception)
catch (Exception ex)
{
if (!string.Equals(ex.Message, "Extraction failed")) { new UpdateMyConsole("Message: " + ex.Message + "\nSource: " + ex.Source + "\nTarget: " + ex.TargetSite + "\n\nContact me: @AsvalFN on Twitter or open an issue on GitHub", Color.Red, true).AppendToConsole(); return; }
if (theExtractor != null) { theExtractor.Dispose(); }
break;
break; //if one of the main pak file doesn't work, all the other doesn't work either
}
string[] CurrentUsedPakLines = theExtractor.GetFileList().ToArray();
if (CurrentUsedPakLines != null)
if (theExtractor.GetFileList().ToArray() != null)
{
bMainKeyWorking = true;
string mountPoint = theExtractor.GetMountPoint();
ThePak.PaksMountPoint.Add(ThePak.mainPaksList[i].thePak, mountPoint.Substring(9));
ThePak.PaksExtractorDictionary.Add(ThePak.mainPaksList[i].thePak, theExtractor);
ThePak.PaksFileArrayDictionary.Add(theExtractor, CurrentUsedPakLines); //in RegisterInDict we add the mount point to CurrentUsedPakLines
ThePak.PaksFileArrayDictionary.Add(theExtractor, theExtractor.GetFileList().ToArray());
RegisterInDict(ThePak.mainPaksList[i].thePak, CurrentUsedPakLines, mountPoint, theSinglePak, loadAllPaKs);
RegisterInDict(ThePak.mainPaksList[i].thePak, theExtractor.GetFileList().ToArray(), mountPoint, theSinglePak, loadAllPaKs);
}
CurrentUsedPakLines = null;
}
if (bMainKeyWorking) { LoadLocRes.LoadMySelectedLocRes(Settings.Default.IconLanguage); }
@ -73,23 +74,22 @@ namespace FModel
catch (Exception ex)
{
if (string.Equals(ex.Message, "Extraction failed")) { new UpdateMyConsole("0x" + pakKey + " doesn't work with " + ThePak.dynamicPaksList[i].thePak, Color.Red, true).AppendToConsole(); }
else { new UpdateMyConsole("Message: " + ex.Message + "\nSource: " + ex.Source + "\nTarget: " + ex.TargetSite + "\n\nContact me: @AsvalFN on Twitter", Color.Red, true).AppendToConsole(); return; }
else { new UpdateMyConsole("Message: " + ex.Message + "\nSource: " + ex.Source + "\nTarget: " + ex.TargetSite + "\n\nContact me: @AsvalFN on Twitter or open an issue on GitHub", Color.Red, true).AppendToConsole(); return; }
if (theExtractor != null) { theExtractor.Dispose(); }
continue;
}
string[] CurrentUsedPakLines = theExtractor.GetFileList().ToArray();
if (CurrentUsedPakLines != null)
if (theExtractor.GetFileList().ToArray() != null)
{
string mountPoint = theExtractor.GetMountPoint();
ThePak.PaksMountPoint.Add(ThePak.dynamicPaksList[i].thePak, mountPoint.Substring(9));
ThePak.PaksExtractorDictionary.Add(ThePak.dynamicPaksList[i].thePak, theExtractor);
ThePak.PaksFileArrayDictionary.Add(theExtractor, CurrentUsedPakLines); //in RegisterInDict we add the mount point to CurrentUsedPakLines
ThePak.PaksFileArrayDictionary.Add(theExtractor, theExtractor.GetFileList().ToArray());
RegisterInDict(ThePak.dynamicPaksList[i].thePak, CurrentUsedPakLines, mountPoint, theSinglePak, loadAllPaKs);
RegisterInDict(ThePak.dynamicPaksList[i].thePak, theExtractor.GetFileList().ToArray(), mountPoint, theSinglePak, loadAllPaKs);
}
CurrentUsedPakLines = null;
}
}

View File

@ -52,6 +52,7 @@ namespace FModel
public static Dictionary<string, string> AllpaksDictionary { get; set; }
public static Dictionary<string, PakExtractor> PaksExtractorDictionary { get; set; }
public static Dictionary<PakExtractor, string[]> PaksFileArrayDictionary { get; set; }
public static Dictionary<string, string> PaksMountPoint { get; set; }
/// <summary>
/// read the GUID of a the param, it's basically just reading some bytes at the end of a pak file, but it's useful to tell if the pak is dynamically encrypted

View File

@ -110,16 +110,6 @@ namespace FModel.Properties {
}
}
/// <summary>
/// Recherche une ressource localisée de type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap C512 {
get {
object obj = ResourceManager.GetObject("C512", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Recherche une ressource localisée de type System.Drawing.Bitmap.
/// </summary>
@ -160,16 +150,6 @@ namespace FModel.Properties {
}
}
/// <summary>
/// Recherche une ressource localisée de type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap E512 {
get {
object obj = ResourceManager.GetObject("E512", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Recherche une ressource localisée de type System.Drawing.Bitmap.
/// </summary>
@ -220,16 +200,6 @@ namespace FModel.Properties {
}
}
/// <summary>
/// Recherche une ressource localisée de type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap L512 {
get {
object obj = ResourceManager.GetObject("L512", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Recherche une ressource localisée de type System.Drawing.Bitmap.
/// </summary>
@ -250,16 +220,6 @@ namespace FModel.Properties {
}
}
/// <summary>
/// Recherche une ressource localisée de type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap M512 {
get {
object obj = ResourceManager.GetObject("M512", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Recherche une ressource localisée de type System.Drawing.Bitmap.
/// </summary>
@ -270,16 +230,6 @@ namespace FModel.Properties {
}
}
/// <summary>
/// Recherche une ressource localisée de type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap Marvel512 {
get {
object obj = ResourceManager.GetObject("Marvel512", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Recherche une ressource localisée de type System.Drawing.Bitmap.
/// </summary>
@ -320,16 +270,6 @@ namespace FModel.Properties {
}
}
/// <summary>
/// Recherche une ressource localisée de type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap R512 {
get {
object obj = ResourceManager.GetObject("R512", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Recherche une ressource localisée de type System.Drawing.Bitmap.
/// </summary>
@ -360,16 +300,6 @@ namespace FModel.Properties {
}
}
/// <summary>
/// Recherche une ressource localisée de type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap T512 {
get {
object obj = ResourceManager.GetObject("T512", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Recherche une ressource localisée de type System.Drawing.Bitmap.
/// </summary>
@ -400,16 +330,6 @@ namespace FModel.Properties {
}
}
/// <summary>
/// Recherche une ressource localisée de type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap U512 {
get {
object obj = ResourceManager.GetObject("U512", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Recherche une ressource localisée de type System.Drawing.Bitmap.
/// </summary>

View File

@ -130,24 +130,6 @@
<data name="properties_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\properties_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="C512" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\C512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="L512" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\L512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="M512" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\M512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="R512" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\R512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="T512" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\T512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="U512" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\U512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="unknown512" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\unknown512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@ -178,9 +160,6 @@
<data name="Pets64" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\T-Icon-Pets-64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Marvel512" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Marvel512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="BurbankBigCondensed_Black" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\BurbankBigCondensed-Black.ttf;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
@ -205,12 +184,18 @@
<data name="Twitter" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\twitter.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="E512" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\E512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="FModel" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\FModel.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="wTemplateFv1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\wTemplateFv1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="wTemplatev1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\wTemplatev1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="cTemplate" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\cTemplate.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="C512v1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\C512v1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@ -235,13 +220,4 @@
<data name="U512v1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\U512v1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="wTemplateFv1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\wTemplateFv1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="wTemplatev1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\wTemplatev1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="cTemplate" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\cTemplate.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

View File

@ -29,7 +29,7 @@
- if the Asset is an **_Item Definition_**:
- Try to create an [Icon](https://i.imgur.com/8hxXSsA.png) with **Name**, **Description**, **Rarity**, **Type**, **Cosmetic Source** and the **Cosmetic Set**
- if the Asset is a **_Bundle Of Challenges_**:
- Try to create an [Icon](https://i.imgur.com/SzW11Kk.png) with all **Challenges' Description**, **Count**, **Reward** and more. You can also add your own banner and overwrite the default color to make the icon more unique
- Try to create an [Icon](https://i.imgur.com/SzW11Kk.png) with all **Challenges' Description**, **Count**, **Reward** and more. You can also **add your own banner** and overwrite the default color **to make the icon more unique**
- if the Asset is a **_Texture_**:
- Try to display the Asset as PNG
- if the Asset is a **_Sound_**: