diff --git a/BizHawk.Client.EmuHawk/IControlMainform.cs b/BizHawk.Client.EmuHawk/IControlMainform.cs index d965f6b958..d66dba5655 100644 --- a/BizHawk.Client.EmuHawk/IControlMainform.cs +++ b/BizHawk.Client.EmuHawk/IControlMainform.cs @@ -2,6 +2,10 @@ { public interface IControlMainform { + bool WantsToControlReadOnly { get; } void ToggleReadOnly(); + + bool WantsToCOntrolStopMovie { get; } + void StopMovie(); } } diff --git a/BizHawk.Client.EmuHawk/MainForm.Movie.cs b/BizHawk.Client.EmuHawk/MainForm.Movie.cs index 5b806ca422..eec23d2e91 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Movie.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Movie.cs @@ -163,8 +163,15 @@ namespace BizHawk.Client.EmuHawk public void StopMovie(bool saveChanges = true) { - Global.MovieSession.StopMovie(saveChanges); - SetMainformMovieInfo(); + if (IsSlave && _master.WantsToCOntrolStopMovie) + { + _master.StopMovie(); + } + else + { + Global.MovieSession.StopMovie(saveChanges); + SetMainformMovieInfo(); + } } } } diff --git a/BizHawk.Client.EmuHawk/MainForm.cs b/BizHawk.Client.EmuHawk/MainForm.cs index 686d2303b6..b67fc197fb 100644 --- a/BizHawk.Client.EmuHawk/MainForm.cs +++ b/BizHawk.Client.EmuHawk/MainForm.cs @@ -1896,7 +1896,7 @@ namespace BizHawk.Client.EmuHawk private void ToggleReadOnly() { - if (IsSlave) + if (IsSlave && _master.WantsToControlReadOnly) { _master.ToggleReadOnly(); } diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.IControlMainForm.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.IControlMainForm.cs index a1c1ffcd8f..316896fd06 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.IControlMainForm.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.IControlMainForm.cs @@ -2,9 +2,17 @@ { public partial class TAStudio : IControlMainform { + public bool WantsToControlReadOnly { get { return true; } } public void ToggleReadOnly() { GlobalWin.OSD.AddMessage("TAStudio does not allow manual readonly toggle"); } + + public bool WantsToCOntrolStopMovie { get { return true; } } + public void StopMovie() + { + this.Focus(); + NewTasMenuItem_Click(null, null); + } } } diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs index 3d55186566..dba41bd96a 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs @@ -46,7 +46,7 @@ namespace BizHawk.Client.EmuHawk if (AskSave()) { SaveConfigSettings(); - GlobalWin.MainForm.StopMovie(saveChanges: true); + GlobalWin.MainForm.StopMovie(saveChanges: false); DisengageTastudio(); } else @@ -138,11 +138,12 @@ namespace BizHawk.Client.EmuHawk PathManager.FilesystemSafeName(Global.Game) + "." + TasMovie.Extension); } - private void StartSessionFromTasMovie() + private void StartNewTasMovie() { if (AskSave()) { - GlobalWin.MainForm.StartNewMovie(_tas, record: false); + NewTasMovie(); + GlobalWin.MainForm.StartNewMovie(_tas, record: true); RefreshDialog(); } } @@ -295,7 +296,7 @@ namespace BizHawk.Client.EmuHawk private void NewTasMenuItem_Click(object sender, EventArgs e) { GlobalWin.OSD.AddMessage("new TAStudio session started"); - StartSessionFromTasMovie(); + StartNewTasMovie(); } private void OpenTasMenuItem_Click(object sender, EventArgs e)