From 1da70c884dfe9eef044269c2dd683ce9185ac54b Mon Sep 17 00:00:00 2001 From: Morilli <35152647+Morilli@users.noreply.github.com> Date: Sun, 1 Jun 2025 20:12:39 +0200 Subject: [PATCH] refactor bk2->tasproj conversion - don't mutilate the bk2movie during the conversion - don't immediately set MovieSession.Movie without having loaded the taproj --- .../movie/MovieConversionExtensions.cs | 2 -- src/BizHawk.Client.Common/movie/MovieSession.cs | 7 ------- .../movie/interfaces/IMovieSession.cs | 5 ----- src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs | 11 ++++++----- 4 files changed, 6 insertions(+), 19 deletions(-) diff --git a/src/BizHawk.Client.Common/movie/MovieConversionExtensions.cs b/src/BizHawk.Client.Common/movie/MovieConversionExtensions.cs index 732a68c4dd..8bed017a79 100644 --- a/src/BizHawk.Client.Common/movie/MovieConversionExtensions.cs +++ b/src/BizHawk.Client.Common/movie/MovieConversionExtensions.cs @@ -16,8 +16,6 @@ namespace BizHawk.Client.Common tas.CopyLog(old.GetLogEntries()); tas.LogKey = old.LogKey; - old.Truncate(0); // Trying to minimize ram usage - tas.HeaderEntries.Clear(); foreach (var (k, v) in old.HeaderEntries) tas.HeaderEntries[k] = v; diff --git a/src/BizHawk.Client.Common/movie/MovieSession.cs b/src/BizHawk.Client.Common/movie/MovieSession.cs index 04208db279..313ecc28a8 100644 --- a/src/BizHawk.Client.Common/movie/MovieSession.cs +++ b/src/BizHawk.Client.Common/movie/MovieSession.cs @@ -294,13 +294,6 @@ namespace BizHawk.Client.Common Movie = null; } - public void ConvertToTasProj() - { - Movie = Movie.ToTasMovie(); - Movie.Save(); - Movie.SwitchToPlay(); - } - public IMovie Get(string path, bool loadMovie) { // TODO: change IMovies to take HawkFiles only and not path diff --git a/src/BizHawk.Client.Common/movie/interfaces/IMovieSession.cs b/src/BizHawk.Client.Common/movie/interfaces/IMovieSession.cs index 96aa7697e7..908f3b75ed 100644 --- a/src/BizHawk.Client.Common/movie/interfaces/IMovieSession.cs +++ b/src/BizHawk.Client.Common/movie/interfaces/IMovieSession.cs @@ -85,11 +85,6 @@ namespace BizHawk.Client.Common void StopMovie(bool saveChanges = true); - /// - /// If a movie is active, it will be converted to a - /// - void ConvertToTasProj(); - /// /// Create a new (Tas)Movie with the given path as filename. If is true, /// will also attempt to load an existing movie from . diff --git a/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs b/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs index a3c3d4268e..53e6b65de5 100644 --- a/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs +++ b/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs @@ -247,8 +247,8 @@ namespace BizHawk.Client.EmuHawk return false; } - ConvertCurrentMovieToTasproj(); - success = StartNewMovieWrapper(CurrentTasMovie, isNew: false); + var tasMovie = ConvertCurrentMovieToTasproj(); + success = LoadMovie(tasMovie); } // Start Scenario 2: A tasproj is already active @@ -473,10 +473,11 @@ namespace BizHawk.Client.EmuHawk } } - private void ConvertCurrentMovieToTasproj() + private ITasMovie ConvertCurrentMovieToTasproj() { - MovieSession.ConvertToTasProj(); - Settings.RecentTas.Add(MovieSession.Movie.Filename); + var tasMovie = MovieSession.Movie.ToTasMovie(); + tasMovie.Save(); // should this be done? + return tasMovie; } private bool LoadMovie(ITasMovie tasMovie, bool startsFromSavestate = false, int gotoFrame = 0)