From 3b8f08b1b089bb51f6b5915efe6e3da1c690e85c Mon Sep 17 00:00:00 2001 From: YoshiRulz Date: Thu, 25 Mar 2021 15:10:38 +1000 Subject: [PATCH] Create and use helper for changing core pref. when importing movies --- .../movie/import/IMovieImport.cs | 11 +++++++++++ src/BizHawk.Client.Common/movie/import/LsmvImport.cs | 2 +- src/BizHawk.Client.Common/movie/import/SmvImport.cs | 4 ++-- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/BizHawk.Client.Common/movie/import/IMovieImport.cs b/src/BizHawk.Client.Common/movie/import/IMovieImport.cs index c67fccc3bd..a8247df728 100644 --- a/src/BizHawk.Client.Common/movie/import/IMovieImport.cs +++ b/src/BizHawk.Client.Common/movie/import/IMovieImport.cs @@ -25,6 +25,17 @@ namespace BizHawk.Client.Common protected IDialogParent _dialogParent; + protected void MaybeSetCorePreference(string sysID, string coreName, string fileExt) + { + if (Config.PreferredCores[sysID] != coreName + && _dialogParent.ModalMessageBox2( + $"{fileExt} movies will have a better chance of syncing using the {coreName} core. Change your core preference for {sysID} roms to {coreName} now?", + icon: EMsgBoxIcon.Question)) + { + Config.PreferredCores[sysID] = coreName; + } + } + public ImportResult Import( IDialogParent dialogParent, IMovieSession session, diff --git a/src/BizHawk.Client.Common/movie/import/LsmvImport.cs b/src/BizHawk.Client.Common/movie/import/LsmvImport.cs index a8dce2510e..0e92ff8701 100644 --- a/src/BizHawk.Client.Common/movie/import/LsmvImport.cs +++ b/src/BizHawk.Client.Common/movie/import/LsmvImport.cs @@ -259,7 +259,7 @@ namespace BizHawk.Client.Common.movie.import Result.Movie.HeaderEntries[HeaderKeys.Platform] = platform; Result.Movie.SyncSettingsJson = ConfigService.SaveWithType(ss); - Config.PreferredCores["SNES"] = CoreNames.Bsnes; // TODO: convert to snes9x if it is the user's preference + MaybeSetCorePreference(sysID: "SNES", CoreNames.Bsnes, fileExt: ".lsmv"); } private IController EmptyLmsvFrame() diff --git a/src/BizHawk.Client.Common/movie/import/SmvImport.cs b/src/BizHawk.Client.Common/movie/import/SmvImport.cs index 95eb781b2a..21f054c745 100644 --- a/src/BizHawk.Client.Common/movie/import/SmvImport.cs +++ b/src/BizHawk.Client.Common/movie/import/SmvImport.cs @@ -15,7 +15,7 @@ namespace BizHawk.Client.Common.movie.import protected override void RunImport() { - Result.Movie.HeaderEntries[HeaderKeys.Core] = CoreNames.Bsnes; + Result.Movie.HeaderEntries[HeaderKeys.Core] = CoreNames.Bsnes; //TODO set to Snes9x instead? or give the user the choice? using var fs = SourceFile.Open(FileMode.Open, FileAccess.Read); using var r = new BinaryReader(fs); @@ -311,7 +311,7 @@ namespace BizHawk.Client.Common.movie.import Result.Movie.AppendFrame(controllers); Result.Movie.SyncSettingsJson = ConfigService.SaveWithType(ss); - Config.PreferredCores["SNES"] = CoreNames.Bsnes; // TODO: convert to snes9x if it is the user's preference + MaybeSetCorePreference(sysID: "SNES", CoreNames.Bsnes, fileExt: ".smv"); } } }