From 7fdc3f992d6e424210872f65059a436d300079e2 Mon Sep 17 00:00:00 2001 From: YoshiRulz Date: Wed, 7 Dec 2022 03:09:38 +1000 Subject: [PATCH] Propagate success through to caller for movie load/restart --- .../IControlMainform.cs | 2 +- src/BizHawk.Client.EmuHawk/MainForm.Events.cs | 4 +- .../MainForm.FileLoader.cs | 25 +++------ src/BizHawk.Client.EmuHawk/MainForm.Hotkey.cs | 2 +- src/BizHawk.Client.EmuHawk/MainForm.Movie.cs | 16 +++--- .../GenericDebugger.IControlMainform.cs | 4 +- .../TAStudio/TAStudio.IControlMainForm.cs | 15 +++--- .../tools/TAStudio/TAStudio.MenuItems.cs | 51 ++++++++++--------- 8 files changed, 53 insertions(+), 66 deletions(-) diff --git a/src/BizHawk.Client.EmuHawk/IControlMainform.cs b/src/BizHawk.Client.EmuHawk/IControlMainform.cs index 0b14d204b5..c923ed5d28 100644 --- a/src/BizHawk.Client.EmuHawk/IControlMainform.cs +++ b/src/BizHawk.Client.EmuHawk/IControlMainform.cs @@ -55,6 +55,6 @@ bool WantsToControlRestartMovie { get; } - void RestartMovie(); + bool RestartMovie(); } } diff --git a/src/BizHawk.Client.EmuHawk/MainForm.Events.cs b/src/BizHawk.Client.EmuHawk/MainForm.Events.cs index f369e88c9e..36d4310911 100644 --- a/src/BizHawk.Client.EmuHawk/MainForm.Events.cs +++ b/src/BizHawk.Client.EmuHawk/MainForm.Events.cs @@ -484,9 +484,7 @@ namespace BizHawk.Client.EmuHawk } private void PlayFromBeginningMenuItem_Click(object sender, EventArgs e) - { - RestartMovie(); - } + => _ = RestartMovie(); private void ImportMovieMenuItem_Click(object sender, EventArgs e) { diff --git a/src/BizHawk.Client.EmuHawk/MainForm.FileLoader.cs b/src/BizHawk.Client.EmuHawk/MainForm.FileLoader.cs index 2735eb0e93..2c0f47e541 100644 --- a/src/BizHawk.Client.EmuHawk/MainForm.FileLoader.cs +++ b/src/BizHawk.Client.EmuHawk/MainForm.FileLoader.cs @@ -87,25 +87,16 @@ namespace BizHawk.Client.EmuHawk } } - private void LoadMovie(string filename, string archive = null) + private bool LoadMovie(string filename, string archive = null) { if (Emulator.IsNull()) { OpenRom(); - if (Emulator.IsNull()) - { - return; - } - } - - if (Tools.IsLoaded()) - { - Tools.TAStudio.LoadMovieFile(filename); - } - else - { - StartNewMovie(MovieSession.Get(filename), false); + if (Emulator.IsNull()) return false; } + return Tools.IsLoaded() + ? Tools.TAStudio.LoadMovieFile(filename) + : StartNewMovie(MovieSession.Get(filename), false); } private void LoadRom(string filename, string archive = null) @@ -299,10 +290,8 @@ namespace BizHawk.Client.EmuHawk if (sortedFiles[LoadOrdering.MovieFile].Count + sortedFiles[LoadOrdering.LegacyMovieFile].Count > 1) break; - if (value == LoadOrdering.MovieFile) - LoadMovie(filename, fileInformation.ArchiveName); - else - LoadLegacyMovie(filename, fileInformation.ArchiveName); + if (value == LoadOrdering.MovieFile) _ = LoadMovie(filename, fileInformation.ArchiveName); + else LoadLegacyMovie(filename, fileInformation.ArchiveName); break; } break; diff --git a/src/BizHawk.Client.EmuHawk/MainForm.Hotkey.cs b/src/BizHawk.Client.EmuHawk/MainForm.Hotkey.cs index 4f5c70bcb0..22ebd10a2c 100644 --- a/src/BizHawk.Client.EmuHawk/MainForm.Hotkey.cs +++ b/src/BizHawk.Client.EmuHawk/MainForm.Hotkey.cs @@ -278,7 +278,7 @@ namespace BizHawk.Client.EmuHawk StopMovie(); break; case "Play from beginning": - RestartMovie(); + _ = RestartMovie(); break; case "Save Movie": SaveMovie(); diff --git a/src/BizHawk.Client.EmuHawk/MainForm.Movie.cs b/src/BizHawk.Client.EmuHawk/MainForm.Movie.cs index e87ec85a88..ace23e9d49 100644 --- a/src/BizHawk.Client.EmuHawk/MainForm.Movie.cs +++ b/src/BizHawk.Client.EmuHawk/MainForm.Movie.cs @@ -99,17 +99,13 @@ namespace BizHawk.Client.EmuHawk } } - private void RestartMovie() + private bool RestartMovie() { - if (IsSlave && Master.WantsToControlRestartMovie) - { - Master.RestartMovie(); - } - else if (MovieSession.Movie.IsActive()) - { - StartNewMovie(MovieSession.Movie, false); - AddOnScreenMessage("Replaying movie file in read-only mode"); - } + if (IsSlave && Master.WantsToControlRestartMovie) return Master.RestartMovie(); + if (!MovieSession.Movie.IsActive()) return false; + var success = StartNewMovie(MovieSession.Movie, false); + if (success) AddOnScreenMessage("Replaying movie file in read-only mode"); + return success; } private void ToggleReadOnly() diff --git a/src/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.IControlMainform.cs b/src/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.IControlMainform.cs index 10d24d0e35..c5fa581bad 100644 --- a/src/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.IControlMainform.cs +++ b/src/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.IControlMainform.cs @@ -32,7 +32,9 @@ public bool Rewind() => false; public bool WantsToControlRestartMovie => false; - public void RestartMovie() { } + + public bool RestartMovie() + => false; // TODO: We want to prevent movies and probably other things } diff --git a/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.IControlMainForm.cs b/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.IControlMainForm.cs index 84aecd899e..32f41d35cf 100644 --- a/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.IControlMainForm.cs +++ b/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.IControlMainForm.cs @@ -120,15 +120,14 @@ namespace BizHawk.Client.EmuHawk public bool WantsToControlRestartMovie { get; } - public void RestartMovie() + public bool RestartMovie() { - if (AskSaveChanges()) - { - WantsToControlStopMovie = false; - StartNewMovieWrapper(CurrentTasMovie); - WantsToControlStopMovie = true; - RefreshDialog(); - } + if (!AskSaveChanges()) return false; + WantsToControlStopMovie = false; + var success = StartNewMovieWrapper(CurrentTasMovie); + WantsToControlStopMovie = true; + RefreshDialog(); + return success; } public bool WantsToControlReboot { get; private set; } = true; diff --git a/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs b/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs index 729761b633..1536ddff3f 100644 --- a/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs +++ b/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs @@ -95,39 +95,42 @@ namespace BizHawk.Client.EmuHawk /// /// Load the movie with the given filename within TAStudio. /// - public void LoadMovieFile(string filename, bool askToSave = true) + public bool LoadMovieFile(string filename, bool askToSave = true) { - if (askToSave && !AskSaveChanges()) - { - return; - } - + if (askToSave && !AskSaveChanges()) return false; if (filename.EndsWith(MovieService.TasMovieExtension)) { LoadFileWithFallback(filename); + return true; //TODO should this return false if it fell back to a new project? } - else if (filename.EndsWith(MovieService.StandardMovieExtension)) + if (filename.EndsWith(MovieService.StandardMovieExtension)) { - var result1 = DialogController.ShowMessageBox2("This is a regular movie, a new project must be created from it to use in TAStudio\nProceed?", "Convert movie", EMsgBoxIcon.Question, useOKCancel: true); - if (result1) + if (!DialogController.ShowMessageBox2( + caption: "Convert movie", + icon: EMsgBoxIcon.Question, + text: "This is a regular movie, a new project must be created from it to use in TAStudio\nProceed?", + useOKCancel: true)) { - _initializing = true; // Starting a new movie causes a core reboot - WantsToControlReboot = false; - _engaged = false; - MainForm.StartNewMovie(MovieSession.Get(filename), false); - ConvertCurrentMovieToTasproj(); - _initializing = false; - StartNewMovieWrapper(CurrentTasMovie); - _engaged = true; - WantsToControlReboot = true; - SetUpColumns(); - UpdateWindowTitle(); + return false; } + _initializing = true; // Starting a new movie causes a core reboot + WantsToControlReboot = false; + _engaged = false; + MainForm.StartNewMovie(MovieSession.Get(filename), false); + ConvertCurrentMovieToTasproj(); + _initializing = false; + var success = StartNewMovieWrapper(CurrentTasMovie); + _engaged = true; + WantsToControlReboot = true; + SetUpColumns(); + UpdateWindowTitle(); + return success; //TODO is this correct? } - else - { - DialogController.ShowMessageBox("This is not a BizHawk movie!", "Movie load error", EMsgBoxIcon.Error); - } + DialogController.ShowMessageBox( + caption: "Movie load error", + icon: EMsgBoxIcon.Error, + text: "This is not a BizHawk movie!"); + return false; } private void SaveTasMenuItem_Click(object sender, EventArgs e)