diff --git a/BizHawk.Client.Common/movie/MovieSession.cs b/BizHawk.Client.Common/movie/MovieSession.cs index ada470d0f8..946259e503 100644 --- a/BizHawk.Client.Common/movie/MovieSession.cs +++ b/BizHawk.Client.Common/movie/MovieSession.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; using System.IO; - +using BizHawk.Client.Common.MovieConversionExtensions; using BizHawk.Emulation.Common; using BizHawk.Emulation.Cores.Nintendo.Gameboy; @@ -355,6 +355,14 @@ namespace BizHawk.Client.Common Movie = MovieService.DefaultInstance; } + public void ConvertToTasProj() + { + Movie.Save(); + Movie = Movie.ToTasMovie(); + Movie.Save(); + Movie.SwitchToPlay(); + } + private void ClearFrame() { if (Movie.IsPlaying()) diff --git a/BizHawk.Client.Common/movie/interfaces/IMovieSession.cs b/BizHawk.Client.Common/movie/interfaces/IMovieSession.cs index d121901a1f..28df9210ff 100644 --- a/BizHawk.Client.Common/movie/interfaces/IMovieSession.cs +++ b/BizHawk.Client.Common/movie/interfaces/IMovieSession.cs @@ -64,5 +64,10 @@ namespace BizHawk.Client.Common void ToggleMultitrack(); void StopMovie(bool saveChanges = true); + + /// + /// If a movie is active, it will be converted to a + /// + void ConvertToTasProj(); } } diff --git a/BizHawk.Client.EmuHawk/MainForm.Movie.cs b/BizHawk.Client.EmuHawk/MainForm.Movie.cs index 88b55cd718..9f8442b5c8 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Movie.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Movie.cs @@ -1,4 +1,5 @@ -using System.Windows.Forms; +using System; +using System.Windows.Forms; using BizHawk.Client.Common; using BizHawk.Emulation.Common; @@ -9,6 +10,11 @@ namespace BizHawk.Client.EmuHawk { public bool StartNewMovie(IMovie movie, bool record) { + if (movie == null) + { + throw new ArgumentNullException($"{nameof(movie)} cannot be null."); + } + try { MovieSession.QueueNewMovie(movie, record, Emulator); diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs index c0bb80208c..fe32ca0dc7 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs @@ -121,10 +121,12 @@ namespace BizHawk.Client.EmuHawk else if (ofd.FileName.EndsWith(Bk2Movie.Extension)) { var result1 = MessageBox.Show("This is a regular movie, a new project must be created from it, in order to use in TAStudio\nProceed?", "Convert movie", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); - if (result1 == DialogResult.OK) + if (result1.IsOk()) { + _initializing = true; // Starting a new movie causes a core reboot MainForm.StartNewMovie(MovieService.Get(ofd.FileName), false); ConvertCurrentMovieToTasproj(); + _initialized = false; StartNewMovieWrapper(false); SetUpColumns(); SetTextProperty(); diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs index 9195b08a9f..092abe9fcc 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs @@ -615,11 +615,9 @@ namespace BizHawk.Client.EmuHawk private void ConvertCurrentMovieToTasproj() { - MovieSession.Movie.Save(); - MovieSession.Movie = MovieSession.Movie.ToTasMovie(); - MovieSession.Movie.Save(); - MovieSession.Movie.SwitchToPlay(); + MovieSession.ConvertToTasProj(); Settings.RecentTas.Add(MovieSession.Movie.Filename); + MainForm.SetMainformMovieInfo(); } private bool LoadFile(FileInfo file, bool startsFromSavestate = false, int gotoFrame = 0)