Clean up some redundant code.

This commit is contained in:
SuuperW 2020-08-03 12:52:57 -05:00
parent 12ef0fe35b
commit e3e2a81728
3 changed files with 19 additions and 44 deletions

View File

@ -100,7 +100,9 @@ namespace BizHawk.Client.Common
// States can't be easily moved over, because they contain the frame number.
// TODO? I'm not sure how this would be done.
// Also TODO: Properly manage disposal of the old movie/TasStateManager instead of clearing it here.
old.TasStateManager.Clear();
old.ClearChanges(); // avoid issue with asking to save the cleared state log
// Lag Log
tas.LagLog.FromLagLog(old.LagLog);
@ -138,6 +140,7 @@ namespace BizHawk.Client.Common
tas.TasStateManager.Settings = old.TasStateManager.Settings;
tas.Save();
tas.ClearChanges();
return tas;
}
@ -179,6 +182,7 @@ namespace BizHawk.Client.Common
tas.TasStateManager.Settings = old.TasStateManager.Settings;
tas.Save();
tas.ClearChanges();
return tas;
}

View File

@ -43,7 +43,7 @@ namespace BizHawk.Client.EmuHawk
Emulator.Frame, StatableEmulator.CloneSavestate());
MainForm.PauseEmulator();
LoadFile(new FileInfo(newProject.Filename), true);
LoadFile(new FileInfo(newProject.Filename));
}
}
@ -63,7 +63,7 @@ namespace BizHawk.Client.EmuHawk
var newProject = CurrentTasMovie.ConvertToSaveRamAnchoredMovie(
SaveRamEmulator.CloneSaveRam());
MainForm.PauseEmulator();
LoadFile(new FileInfo(newProject.Filename), true);
LoadFile(new FileInfo(newProject.Filename));
}
else
{

View File

@ -218,7 +218,7 @@ namespace BizHawk.Client.EmuHawk
// Start Scenario 2: A tasproj is already active
else if (MovieSession.Movie.IsActive() && MovieSession.Movie is ITasMovie)
{
bool result = LoadFile(new FileInfo(CurrentTasMovie.Filename), gotoFrame: Emulator.Frame);
bool result = LoadFile(new FileInfo(CurrentTasMovie.Filename), Emulator.Frame);
if (!result)
{
TasView.AllColumns.Clear();
@ -529,7 +529,7 @@ namespace BizHawk.Client.EmuHawk
MainForm.SetMainformMovieInfo();
}
private bool LoadFile(FileInfo file, bool startsFromSavestate = false, int gotoFrame = 0)
private bool LoadFile(FileInfo file, int gotoFrame = 0)
{
if (!file.Exists)
{
@ -537,31 +537,24 @@ namespace BizHawk.Client.EmuHawk
return false;
}
return LoadMovie((ITasMovie)MovieSession.Get(file.FullName), gotoFrame);
}
private bool LoadMovie(ITasMovie newMovie, int gotoFrame)
{
if (newMovie == null) return false;
_engaged = false;
var newMovie = (ITasMovie)MovieSession.Get(file.FullName);
newMovie.BindMarkersToInput = Settings.BindMarkersToInput;
newMovie.TasStateManager.InvalidateCallback = GreenzoneInvalidated;
if (!HandleMovieLoadStuff(newMovie))
{
return false;
}
_engaged = true;
Settings.RecentTas.Add(newMovie.Filename); // only add if it did load
if (startsFromSavestate)
{
GoToFrame(0);
}
else if (gotoFrame > 0)
{
GoToFrame(gotoFrame);
}
else
{
GoToFrame(CurrentTasMovie.TasSession.CurrentFrame);
}
GoToFrame(gotoFrame);
// If we are loading an existing non-default movie, we will already have columns generated
// Only set up columns if needed
@ -588,39 +581,18 @@ namespace BizHawk.Client.EmuHawk
private void StartNewTasMovie()
{
if (!AskSaveChanges())
{
return;
}
var filename = DefaultTasProjName(); // TODO don't do this, take over any mainform actions that can crash without a filename
var tasMovie = (ITasMovie)MovieSession.Get(filename);
tasMovie.BindMarkersToInput = Settings.BindMarkersToInput;
string filename = DefaultTasProjName(); // TODO don't do this, take over any mainform actions that can crash without a filename
ITasMovie tasMovie = (ITasMovie)MovieSession.Get(filename);
tasMovie.TasStateManager.InvalidateCallback = GreenzoneInvalidated;
tasMovie.PropertyChanged += TasMovie_OnPropertyChanged;
tasMovie.PopulateWithDefaultHeaderValues(
Emulator,
Game,
GlobalWin.FirmwareManager,
Config.DefaultAuthor);
SetTasMovieCallbacks(tasMovie);
tasMovie.ClearChanges(); // Don't ask to save changes here.
tasMovie.Save();
if (HandleMovieLoadStuff(tasMovie))
{
CurrentTasMovie.TasStateManager.Capture(); // Capture frame 0 always.
}
// clear all selections
TasView.DeselectAll();
BookMarkControl.Restart();
MarkerControl.Restart();
SetUpColumns();
RefreshDialog();
TasView.Refresh();
LoadMovie(tasMovie, 0);
}
private bool HandleMovieLoadStuff(ITasMovie movie)
@ -685,7 +657,6 @@ namespace BizHawk.Client.EmuHawk
TasView.AllColumns.Clear();
WantsToControlReboot = false;
StartNewTasMovie();
_engaged = true;
}
}