From 6949cf103e47db13e88815c3693c707b49bfba97 Mon Sep 17 00:00:00 2001 From: Kurt Date: Mon, 21 May 2018 19:12:02 -0700 Subject: [PATCH] Add custom savefile extension support savexts.txt if you wanna update it without recompiling Keep in mind these are just aliases for raw data. No conversion is done, it only allows the file to be filtered to. Closes #1955 #1856 #1455 --- PKHeX.WinForms/MainWindow/Main.cs | 3 +++ PKHeX.WinForms/Util/WinFormsUtil.cs | 22 ++++++++++++++++++---- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/PKHeX.WinForms/MainWindow/Main.cs b/PKHeX.WinForms/MainWindow/Main.cs index b3ceaa0d1..91aa4026f 100644 --- a/PKHeX.WinForms/MainWindow/Main.cs +++ b/PKHeX.WinForms/MainWindow/Main.cs @@ -129,6 +129,9 @@ private void FormLoadInitialSettings(string[] args, out bool showChangelog, out } FormLoadPlugins(); + var exts = Path.Combine(WorkingDirectory, "savexts.txt"); + if (File.Exists(exts)) + WinFormsUtil.AddSaveFileExtensions(File.ReadLines(exts)); PKME_Tabs.InitializeFields(); PKME_Tabs.TemplateFields(LoadTemplate(C_SAV.SAV)); diff --git a/PKHeX.WinForms/Util/WinFormsUtil.cs b/PKHeX.WinForms/Util/WinFormsUtil.cs index a5f3a9e04..a9f3da5f1 100644 --- a/PKHeX.WinForms/Util/WinFormsUtil.cs +++ b/PKHeX.WinForms/Util/WinFormsUtil.cs @@ -112,6 +112,20 @@ public static IEnumerable GetAllControlsOfType(Control control, Type ty public static bool IsClickonceDeployed => false; #endif + public static void AddSaveFileExtensions(IEnumerable exts) => CustomSaveExtensions.AddRange(exts); + private static readonly List CustomSaveExtensions = new List + { + // THESE ARE SAVE FILE EXTENSION TYPES. SAVE STATE (RAM SNAPSHOT) EXTENSIONS DO NOT GO HERE. + "sav", // standard + "dat", // VC data + "gci", // Dolphin GameCubeImage + "dsv", // DeSmuME + "srm", // RetroArch save files + "fla", // flashcard + "SaveRAM", // BizHawk + }; + private static string ExtraSaveExtensions => ";" + string.Join(";", CustomSaveExtensions.Select(z => $"*.{z}")); + /// /// Opens a dialog to open a , file, or any other supported file. /// @@ -124,10 +138,9 @@ public static bool OpenSAVPKMDialog(IEnumerable Extensions, out string p OpenFileDialog ofd = new OpenFileDialog { Filter = "All Files|*.*" + - $"|Supported Files|main;*.sav;*.dat;*.gci;*.bin;{supported};*.bak" + - "|3DS Main Files|main" + - "|Save Files|*.sav;*.dat;*.gci" + - "|Decrypted PKM File|" + supported + + $"|Supported Files (*.*)|main;*.bin;{supported};*.bak" + ExtraSaveExtensions + + "|Save Files (*.sav)|main" + ExtraSaveExtensions + + "|Decrypted PKM File (*.pkm)|" + supported + "|Binary File|*.bin" + "|Backup File|*.bak" }; @@ -211,6 +224,7 @@ public static bool SaveSAVDialog(SaveFile SAV, int CurrentBox = 0) { Filter = SAV.Filter, FileName = SAV.FileName, + FilterIndex = 1000, // default to last, All Files RestoreDirectory = true }; if (Directory.Exists(SAV.FilePath))