diff --git a/src/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs b/src/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs index a915dd6028..6d6f50e365 100644 --- a/src/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs +++ b/src/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs @@ -359,8 +359,14 @@ namespace BizHawk.Client.EmuHawk private void SaveAsMenuItem_Click(object sender, EventArgs e) { + var fileName = CurrentFileName; + if (string.IsNullOrWhiteSpace(fileName)) + { + fileName = Game.FilesystemSafeName(); + } + var file = SaveFileDialog( - CurrentFileName, + fileName, Config.PathEntries.ToolsAbsolutePath(), "Bot files", "bot", diff --git a/src/BizHawk.Client.EmuHawk/tools/CDL.cs b/src/BizHawk.Client.EmuHawk/tools/CDL.cs index 45ddaf7211..a160dc4d70 100644 --- a/src/BizHawk.Client.EmuHawk/tools/CDL.cs +++ b/src/BizHawk.Client.EmuHawk/tools/CDL.cs @@ -384,8 +384,14 @@ namespace BizHawk.Client.EmuHawk /// private bool RunSaveAs() { + var fileName = _currentFilename; + if (string.IsNullOrWhiteSpace(fileName)) + { + fileName = Game.FilesystemSafeName(); + } + var file = SaveFileDialog( - _currentFilename, + fileName, Config.PathEntries.LogAbsolutePath(), "Code Data Logger Files", "cdl", diff --git a/src/BizHawk.Client.EmuHawk/tools/Cheats/Cheats.cs b/src/BizHawk.Client.EmuHawk/tools/Cheats/Cheats.cs index 4db05222b9..1a28a87c9f 100644 --- a/src/BizHawk.Client.EmuHawk/tools/Cheats/Cheats.cs +++ b/src/BizHawk.Client.EmuHawk/tools/Cheats/Cheats.cs @@ -139,8 +139,14 @@ namespace BizHawk.Client.EmuHawk private bool SaveAs() { + var fileName = MainForm.CheatList.CurrentFileName; + if (string.IsNullOrWhiteSpace(fileName)) + { + fileName = Game.FilesystemSafeName(); + } + var file = SaveFileDialog( - MainForm.CheatList.CurrentFileName, + fileName, Config.PathEntries.CheatsAbsolutePath(Game.System), "Cheat Files", "cht", diff --git a/src/BizHawk.Client.EmuHawk/tools/ToolFormBase.cs b/src/BizHawk.Client.EmuHawk/tools/ToolFormBase.cs index 8bad2c197c..8cdf0e9af9 100644 --- a/src/BizHawk.Client.EmuHawk/tools/ToolFormBase.cs +++ b/src/BizHawk.Client.EmuHawk/tools/ToolFormBase.cs @@ -86,9 +86,7 @@ namespace BizHawk.Client.EmuHawk using var sfd = new SaveFileDialog { - FileName = !string.IsNullOrWhiteSpace(currentFile) - ? Path.GetFileName(currentFile) - : $"{GlobalWin.Game.FilesystemSafeName()}.{fileExt}", + FileName = Path.GetFileName(currentFile), InitialDirectory = path, Filter = new FilesystemFilterSet(new FilesystemFilter(fileType, new[] { fileExt })).ToString(), RestoreDirectory = true diff --git a/src/BizHawk.Client.EmuHawk/tools/Watch/RamSearch.cs b/src/BizHawk.Client.EmuHawk/tools/Watch/RamSearch.cs index 56ef111337..a0a646edd9 100644 --- a/src/BizHawk.Client.EmuHawk/tools/Watch/RamSearch.cs +++ b/src/BizHawk.Client.EmuHawk/tools/Watch/RamSearch.cs @@ -975,6 +975,13 @@ namespace BizHawk.Client.EmuHawk sender == TruncateFromFileMenuItem); } + private string CurrentFileName() + { + return !string.IsNullOrWhiteSpace(_currentFileName) + ? _currentFileName + : Game.FilesystemSafeName(); + } + private void SaveMenuItem_Click(object sender, EventArgs e) { if (!string.IsNullOrWhiteSpace(_currentFileName)) @@ -996,7 +1003,7 @@ namespace BizHawk.Client.EmuHawk } else { - var result = watches.SaveAs(GetWatchSaveFileFromUser(watches.CurrentFileName)); + var result = watches.SaveAs(GetWatchSaveFileFromUser(CurrentFileName())); if (result) { MessageLabel.Text = $"{Path.GetFileName(_currentFileName)} saved"; @@ -1014,7 +1021,7 @@ namespace BizHawk.Client.EmuHawk watches.Add(_searches[i]); } - if (watches.SaveAs(GetWatchSaveFileFromUser(watches.CurrentFileName))) + if (watches.SaveAs(GetWatchSaveFileFromUser(CurrentFileName()))) { _currentFileName = watches.CurrentFileName; MessageLabel.Text = $"{Path.GetFileName(_currentFileName)} saved"; diff --git a/src/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs b/src/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs index 35c4ab656c..fbb544c633 100644 --- a/src/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs +++ b/src/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs @@ -525,9 +525,16 @@ namespace BizHawk.Client.EmuHawk WatchListView.Refresh(); } + private string CurrentFileName() + { + return !string.IsNullOrWhiteSpace(_watches.CurrentFileName) + ? _watches.CurrentFileName + : Game.FilesystemSafeName(); + } + private void SaveAs() { - var result = _watches.SaveAs(GetWatchSaveFileFromUser(_watches.CurrentFileName)); + var result = _watches.SaveAs(GetWatchSaveFileFromUser(CurrentFileName())); if (result) { UpdateStatusBar(saved: true);