From eb505303bbb71e0d9311e2d474dd384d3a53a6f2 Mon Sep 17 00:00:00 2001 From: Kurt Date: Sun, 28 Jan 2018 00:03:49 -0800 Subject: [PATCH] Fix vc backups acting like gb era saves ends with .dat only works if the real file ends with dat load the filename data after stripping off the bak filename data #1787 --- PKHeX.Core/Saves/SaveUtil.cs | 20 ++++++++++++++++++++ PKHeX.WinForms/MainWindow/Main.cs | 20 ++++++-------------- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/PKHeX.Core/Saves/SaveUtil.cs b/PKHeX.Core/Saves/SaveUtil.cs index c52afea2d..84ba95a44 100644 --- a/PKHeX.Core/Saves/SaveUtil.cs +++ b/PKHeX.Core/Saves/SaveUtil.cs @@ -1137,5 +1137,25 @@ public static bool IsPKMCompatibleWithModifications(SaveFile SAV, PKM pk) return true; } + + /// + /// Sets the details of a path to a object. + /// + /// Save File to set path details to. + /// Full Path of the file + public static void SetFileInfo(this SaveFile sav, string path) + { + if (!sav.Exportable) // Blank save file + { + sav.FilePath = null; + sav.FileName = "Blank Save File"; + return; + } + + sav.FilePath = Path.GetDirectoryName(path); + sav.FileName = Path.GetExtension(path) == ".bak" + ? Path.GetFileName(path).Split(new[] { " [" }, StringSplitOptions.None)[0] + : Path.GetFileName(path); + } } } diff --git a/PKHeX.WinForms/MainWindow/Main.cs b/PKHeX.WinForms/MainWindow/Main.cs index 6cf065fd9..b1dd46972 100644 --- a/PKHeX.WinForms/MainWindow/Main.cs +++ b/PKHeX.WinForms/MainWindow/Main.cs @@ -736,7 +736,8 @@ private void OpenSAV(SaveFile sav, string path) if (sav == null || sav.Version == GameVersion.Invalid) { WinFormsUtil.Error("Invalid save file loaded. Aborting.", path); return; } - if (!SanityCheckSAV(ref sav, path)) + sav.SetFileInfo(path); + if (!SanityCheckSAV(ref sav)) return; StoreLegalSaveGameData(sav); PKMUtil.Initialize(sav); // refresh sprite generator @@ -751,7 +752,7 @@ private void OpenSAV(SaveFile sav, string path) ResetSAVPKMEditors(sav); - Text = GetProgramTitle(sav, path); + Text = GetProgramTitle(sav); TryBackupExportCheck(sav, path); PKMConverter.UpdateConfig(sav.SubRegion, sav.Country, sav.ConsoleRegion, sav.OT, sav.Gender, sav.Language); @@ -783,7 +784,7 @@ private void ResetSAVPKMEditors(SaveFile sav) PKME_Tabs.TemplateFields(LoadTemplate(sav)); sav.Edited = false; } - private static string GetProgramTitle(SaveFile sav, string path) + private static string GetProgramTitle(SaveFile sav) { #if DEBUG var d = File.GetLastWriteTime(System.Reflection.Assembly.GetEntryAssembly().Location); @@ -793,16 +794,7 @@ private static string GetProgramTitle(SaveFile sav, string path) #endif string title = $"PKH{(HaX ? "a" : "e")}X ({date}) - {sav.GetType().Name}: "; if (!sav.Exportable) // Blank save file - { - sav.FilePath = null; - sav.FileName = "Blank Save File"; return title + $"{sav.FileName} [{sav.OT} ({sav.Version})]"; - } - - sav.FilePath = Path.GetDirectoryName(path); - sav.FileName = Path.GetExtension(path) == ".bak" - ? Path.GetFileName(path).Split(new[] {" ["}, StringSplitOptions.None)[0] - : Path.GetFileName(path); return title + $"{Path.GetFileNameWithoutExtension(Util.CleanFileName(sav.BAKName))}"; // more descriptive } private static bool TryBackupExportCheck(SaveFile sav, string path) @@ -827,12 +819,12 @@ private static bool TryBackupExportCheck(SaveFile sav, string path) "If the path is a removable disk (SD card), please ensure the write protection switch is not set."); return false; } - private static bool SanityCheckSAV(ref SaveFile sav, string path) + private static bool SanityCheckSAV(ref SaveFile sav) { // Finish setting up the save file. if (sav.Generation < 3) { - bool vc = path.EndsWith("dat"); + bool vc = sav.FileName.EndsWith("dat"); Legal.AllowGBCartEra = !vc; // physical cart selected Legal.AllowGen1Tradeback = true; if (Legal.AllowGBCartEra && sav.Generation == 1)