diff --git a/BizHawk.Client.EmuHawk/IControlMainform.cs b/BizHawk.Client.EmuHawk/IControlMainform.cs index f74bdc7e0c..11edd127e5 100644 --- a/BizHawk.Client.EmuHawk/IControlMainform.cs +++ b/BizHawk.Client.EmuHawk/IControlMainform.cs @@ -32,5 +32,9 @@ /// /// bool Rewind(); + + bool WantsToControlRestartMovie { get; } + + void RestartMovie(); } } diff --git a/BizHawk.Client.EmuHawk/MainForm.Movie.cs b/BizHawk.Client.EmuHawk/MainForm.Movie.cs index 5e1b715c34..e0d733d511 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Movie.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Movie.cs @@ -85,10 +85,17 @@ namespace BizHawk.Client.EmuHawk public void RestartMovie() { - if (Global.MovieSession.Movie.IsActive) + if (IsSlave && master.WantsToControlRestartMovie) { - GlobalWin.MainForm.StartNewMovie(Global.MovieSession.Movie, false); - GlobalWin.OSD.AddMessage("Replaying movie file in read-only mode"); + master.RestartMovie(); + } + else + { + if (Global.MovieSession.Movie.IsActive) + { + GlobalWin.MainForm.StartNewMovie(Global.MovieSession.Movie, false); + GlobalWin.OSD.AddMessage("Replaying movie file in read-only mode"); + } } } } diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.IControlMainForm.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.IControlMainForm.cs index 8ebacf2820..b03c39b7cb 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.IControlMainForm.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.IControlMainForm.cs @@ -2,6 +2,7 @@ { public partial class TAStudio : IControlMainform { + public bool WantsToControlReadOnly { get { return false; } } public void ToggleReadOnly() { @@ -26,8 +27,20 @@ public bool Rewind() { GoToPreviousFrame(); - return true; } + + public bool WantsToControlRestartMovie { get; private set; } + + public void RestartMovie() + { + if (AskSaveChanges()) + { + WantsToControlStopMovie = false; + StartNewMovieWrapper(false); + WantsToControlStopMovie = true; + RefreshDialog(); + } + } } } diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs index 2a5e7031e1..5f82b54a2f 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs @@ -53,6 +53,7 @@ namespace BizHawk.Client.EmuHawk TasView.PointedCellChanged += TasView_PointedCellChanged; TasView.MultiSelect = true; TasView.MaxCharactersInHorizontal = 1; + WantsToControlRestartMovie = true; } private void TastudioToStopMovie() @@ -529,16 +530,8 @@ namespace BizHawk.Client.EmuHawk var result = MessageBox.Show("In order to use Tastudio, a new project must be created from the current movie\nThe current movie will be saved and closed, and a new project file will be created\nProceed?", "Convert movie", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if (result == DialogResult.OK) { - var previousAutoloadTAStudio = Global.Config.AutoloadTAStudio; - var previousAutoloadTAStudioProject = Global.Config.AutoloadTAStudioProject; - ConvertCurrentMovieToTasproj(); - Global.Config.AutoloadTAStudio = true; - Global.Config.AutoloadTAStudioProject = true; - GlobalWin.MainForm.RestartMovie(); - - Global.Config.AutoloadTAStudio = previousAutoloadTAStudio; - Global.Config.AutoloadTAStudioProject = previousAutoloadTAStudioProject; + StartNewMovieWrapper(false); } else {