refactor bk2->tasproj conversion

- don't mutilate the bk2movie during the conversion
- don't immediately set MovieSession.Movie without having loaded the taproj
This commit is contained in:
Morilli 2025-06-01 20:12:39 +02:00
parent 10f57bad2c
commit 1da70c884d
4 changed files with 6 additions and 19 deletions

View File

@ -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;

View File

@ -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

View File

@ -85,11 +85,6 @@ namespace BizHawk.Client.Common
void StopMovie(bool saveChanges = true);
/// <summary>
/// If a movie is active, it will be converted to a <see cref="ITasMovie" />
/// </summary>
void ConvertToTasProj();
/// <summary>
/// Create a new (Tas)Movie with the given path as filename. If <paramref name="loadMovie"/> is true,
/// will also attempt to load an existing movie from <paramref name="path"/>.

View File

@ -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)