From e989752e34b78ae4ed2e0d92e4c403a6d8936995 Mon Sep 17 00:00:00 2001 From: Kurt Date: Mon, 6 Apr 2020 15:36:52 -0700 Subject: [PATCH] Use openfiledialog for load decrypted Reload all fields when loading a decrypted save file --- NHSE.WinForms/Editor.cs | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/NHSE.WinForms/Editor.cs b/NHSE.WinForms/Editor.cs index 2bb4093..6a045d7 100644 --- a/NHSE.WinForms/Editor.cs +++ b/NHSE.WinForms/Editor.cs @@ -44,10 +44,28 @@ private void Menu_DumpDecrypted_Click(object sender, EventArgs e) private void Menu_LoadDecrypted_Click(object sender, EventArgs e) { - using var fbd = new FolderBrowserDialog(); - if (fbd.ShowDialog() != DialogResult.OK) + using var ofd = new OpenFileDialog + { + Title = "Open main.dat ...", + Filter = "New Horizons Save File (main.dat)|main.dat", + FileName = "main.dat", + }; + + if (ofd.ShowDialog() == DialogResult.OK) + LoadDecryptedFromPath(ofd.FileName); + } + + private void LoadDecryptedFromPath(string main) + { + var dir = Path.GetDirectoryName(main); + if (dir is null || !Directory.Exists(dir)) + { + WinFormsUtil.Alert("Directory does not exist!"); return; - SAV.Load(fbd.SelectedPath); + } + + SAV.Load(dir); + LoadAll(); // reload all fields System.Media.SystemSounds.Asterisk.Play(); } @@ -96,18 +114,23 @@ private void SaveAll() #region Player Editing private void LoadPlayers() { + CB_Players.Items.Clear(); var playerList = SAV.Players.Select(z => z.DirectoryName); foreach (var p in playerList) CB_Players.Items.Add(p); + PlayerIndex = -1; CB_Players.SelectedIndex = 0; } private void LoadVillagers() { + CB_Personality.Items.Clear(); var personalities = Enum.GetNames(typeof(VillagerPersonality)); foreach (var p in personalities) CB_Personality.Items.Add(p); + + VillagerIndex = -1; LoadVillager(0); }