diff --git a/BizHawk.Client.Common/movie/MovieSession.cs b/BizHawk.Client.Common/movie/MovieSession.cs index 32f0a6ffea..2e0476c770 100644 --- a/BizHawk.Client.Common/movie/MovieSession.cs +++ b/BizHawk.Client.Common/movie/MovieSession.cs @@ -16,6 +16,10 @@ namespace BizHawk.Client.Common private readonly Action _messageCallback; private readonly Action _popupCallback; + // Previous saved core preferences. Stored here so that when a movie + // overrides the values, they can be restored to user preferences + private readonly IDictionary _preferredCores = new Dictionary(); + public MovieSession( Action messageCallback, Action popupCallback, @@ -68,8 +72,6 @@ namespace BizHawk.Client.Common } } - public IDictionary PreferredCores { get; } = new Dictionary(); - public void RecreateMovieController(ControllerDefinition definition) { MovieController = new Bk2Controller(definition); @@ -258,7 +260,7 @@ namespace BizHawk.Client.Common if (Global.Config.PreferredCores.ContainsKey(preference)) { - PreferredCores[preference] = Global.Config.PreferredCores[preference]; + _preferredCores[preference] = Global.Config.PreferredCores[preference]; Global.Config.PreferredCores[preference] = movie.Core; } } @@ -277,6 +279,11 @@ namespace BizHawk.Client.Common public void RunQueuedMovie(bool recordMode) { + foreach (var previousPref in _preferredCores) + { + Global.Config.PreferredCores[previousPref.Key] = previousPref.Value; + } + Movie = QueuedMovie; QueuedMovie = null; MultiTrack.Restart(Global.Emulator.ControllerDefinition.PlayerCount); diff --git a/BizHawk.Client.Common/movie/interfaces/IMovieSession.cs b/BizHawk.Client.Common/movie/interfaces/IMovieSession.cs index 2157b2b55c..b2c3380e32 100644 --- a/BizHawk.Client.Common/movie/interfaces/IMovieSession.cs +++ b/BizHawk.Client.Common/movie/interfaces/IMovieSession.cs @@ -29,11 +29,6 @@ namespace BizHawk.Client.Common IController PreviousFrame { get; } - /// - /// Previous saved core preferences. Stored so that they can be stored after a movie overrides the value - /// - IDictionary PreferredCores { get; } - /// /// Recreates MovieController with the given controller definition /// with an empty controller state diff --git a/BizHawk.Client.EmuHawk/MainForm.Movie.cs b/BizHawk.Client.EmuHawk/MainForm.Movie.cs index 145dd11652..4c83128c9b 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Movie.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Movie.cs @@ -1,5 +1,4 @@ -using System; -using System.IO; +using System.IO; using System.Windows.Forms; using BizHawk.Client.Common; @@ -24,11 +23,6 @@ namespace BizHawk.Client.EmuHawk RebootCore(); - foreach (var previousPref in MovieSession.PreferredCores) - { - Config.PreferredCores[previousPref.Key] = previousPref.Value; - } - Config.RecentMovies.Add(movie.Filename); if (Emulator.HasSavestates() && movie.StartsFromSavestate)