Clean up some redundant code.
This commit is contained in:
parent
12ef0fe35b
commit
e3e2a81728
|
@ -100,7 +100,9 @@ namespace BizHawk.Client.Common
|
||||||
|
|
||||||
// States can't be easily moved over, because they contain the frame number.
|
// States can't be easily moved over, because they contain the frame number.
|
||||||
// TODO? I'm not sure how this would be done.
|
// 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.TasStateManager.Clear();
|
||||||
|
old.ClearChanges(); // avoid issue with asking to save the cleared state log
|
||||||
|
|
||||||
// Lag Log
|
// Lag Log
|
||||||
tas.LagLog.FromLagLog(old.LagLog);
|
tas.LagLog.FromLagLog(old.LagLog);
|
||||||
|
@ -138,6 +140,7 @@ namespace BizHawk.Client.Common
|
||||||
tas.TasStateManager.Settings = old.TasStateManager.Settings;
|
tas.TasStateManager.Settings = old.TasStateManager.Settings;
|
||||||
|
|
||||||
tas.Save();
|
tas.Save();
|
||||||
|
tas.ClearChanges();
|
||||||
return tas;
|
return tas;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -179,6 +182,7 @@ namespace BizHawk.Client.Common
|
||||||
tas.TasStateManager.Settings = old.TasStateManager.Settings;
|
tas.TasStateManager.Settings = old.TasStateManager.Settings;
|
||||||
|
|
||||||
tas.Save();
|
tas.Save();
|
||||||
|
tas.ClearChanges();
|
||||||
return tas;
|
return tas;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
Emulator.Frame, StatableEmulator.CloneSavestate());
|
Emulator.Frame, StatableEmulator.CloneSavestate());
|
||||||
|
|
||||||
MainForm.PauseEmulator();
|
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(
|
var newProject = CurrentTasMovie.ConvertToSaveRamAnchoredMovie(
|
||||||
SaveRamEmulator.CloneSaveRam());
|
SaveRamEmulator.CloneSaveRam());
|
||||||
MainForm.PauseEmulator();
|
MainForm.PauseEmulator();
|
||||||
LoadFile(new FileInfo(newProject.Filename), true);
|
LoadFile(new FileInfo(newProject.Filename));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -218,7 +218,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
// Start Scenario 2: A tasproj is already active
|
// Start Scenario 2: A tasproj is already active
|
||||||
else if (MovieSession.Movie.IsActive() && MovieSession.Movie is ITasMovie)
|
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)
|
if (!result)
|
||||||
{
|
{
|
||||||
TasView.AllColumns.Clear();
|
TasView.AllColumns.Clear();
|
||||||
|
@ -529,7 +529,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
MainForm.SetMainformMovieInfo();
|
MainForm.SetMainformMovieInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool LoadFile(FileInfo file, bool startsFromSavestate = false, int gotoFrame = 0)
|
private bool LoadFile(FileInfo file, int gotoFrame = 0)
|
||||||
{
|
{
|
||||||
if (!file.Exists)
|
if (!file.Exists)
|
||||||
{
|
{
|
||||||
|
@ -537,31 +537,24 @@ namespace BizHawk.Client.EmuHawk
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return LoadMovie((ITasMovie)MovieSession.Get(file.FullName), gotoFrame);
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool LoadMovie(ITasMovie newMovie, int gotoFrame)
|
||||||
|
{
|
||||||
|
if (newMovie == null) return false;
|
||||||
|
|
||||||
_engaged = false;
|
_engaged = false;
|
||||||
var newMovie = (ITasMovie)MovieSession.Get(file.FullName);
|
|
||||||
newMovie.BindMarkersToInput = Settings.BindMarkersToInput;
|
newMovie.BindMarkersToInput = Settings.BindMarkersToInput;
|
||||||
newMovie.TasStateManager.InvalidateCallback = GreenzoneInvalidated;
|
newMovie.TasStateManager.InvalidateCallback = GreenzoneInvalidated;
|
||||||
|
|
||||||
if (!HandleMovieLoadStuff(newMovie))
|
if (!HandleMovieLoadStuff(newMovie))
|
||||||
{
|
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
_engaged = true;
|
_engaged = true;
|
||||||
Settings.RecentTas.Add(newMovie.Filename); // only add if it did load
|
Settings.RecentTas.Add(newMovie.Filename); // only add if it did load
|
||||||
|
|
||||||
if (startsFromSavestate)
|
|
||||||
{
|
|
||||||
GoToFrame(0);
|
|
||||||
}
|
|
||||||
else if (gotoFrame > 0)
|
|
||||||
{
|
|
||||||
GoToFrame(gotoFrame);
|
GoToFrame(gotoFrame);
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
GoToFrame(CurrentTasMovie.TasSession.CurrentFrame);
|
|
||||||
}
|
|
||||||
|
|
||||||
// If we are loading an existing non-default movie, we will already have columns generated
|
// If we are loading an existing non-default movie, we will already have columns generated
|
||||||
// Only set up columns if needed
|
// Only set up columns if needed
|
||||||
|
@ -588,17 +581,10 @@ namespace BizHawk.Client.EmuHawk
|
||||||
private void StartNewTasMovie()
|
private void StartNewTasMovie()
|
||||||
{
|
{
|
||||||
if (!AskSaveChanges())
|
if (!AskSaveChanges())
|
||||||
{
|
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
var filename = DefaultTasProjName(); // TODO don't do this, take over any mainform actions that can crash without a filename
|
string filename = DefaultTasProjName(); // TODO don't do this, take over any mainform actions that can crash without a filename
|
||||||
var tasMovie = (ITasMovie)MovieSession.Get(filename);
|
ITasMovie tasMovie = (ITasMovie)MovieSession.Get(filename);
|
||||||
tasMovie.BindMarkersToInput = Settings.BindMarkersToInput;
|
|
||||||
|
|
||||||
|
|
||||||
tasMovie.TasStateManager.InvalidateCallback = GreenzoneInvalidated;
|
|
||||||
tasMovie.PropertyChanged += TasMovie_OnPropertyChanged;
|
|
||||||
|
|
||||||
tasMovie.PopulateWithDefaultHeaderValues(
|
tasMovie.PopulateWithDefaultHeaderValues(
|
||||||
Emulator,
|
Emulator,
|
||||||
|
@ -606,21 +592,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
GlobalWin.FirmwareManager,
|
GlobalWin.FirmwareManager,
|
||||||
Config.DefaultAuthor);
|
Config.DefaultAuthor);
|
||||||
|
|
||||||
SetTasMovieCallbacks(tasMovie);
|
LoadMovie(tasMovie, 0);
|
||||||
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();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool HandleMovieLoadStuff(ITasMovie movie)
|
private bool HandleMovieLoadStuff(ITasMovie movie)
|
||||||
|
@ -685,7 +657,6 @@ namespace BizHawk.Client.EmuHawk
|
||||||
TasView.AllColumns.Clear();
|
TasView.AllColumns.Clear();
|
||||||
WantsToControlReboot = false;
|
WantsToControlReboot = false;
|
||||||
StartNewTasMovie();
|
StartNewTasMovie();
|
||||||
_engaged = true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue