tastudio - cleanups

This commit is contained in:
adelikat 2020-04-18 14:30:35 -05:00
parent 7a77861896
commit d946aa6145
1 changed files with 55 additions and 65 deletions

View File

@ -183,12 +183,7 @@ namespace BizHawk.Client.EmuHawk
private void InitializeSeekWorker() private void InitializeSeekWorker()
{ {
if (_seekBackgroundWorker != null) _seekBackgroundWorker?.Dispose();
{
_seekBackgroundWorker.Dispose();
_seekBackgroundWorker = null; // Idk if this line is even useful.
}
_seekBackgroundWorker = new BackgroundWorker _seekBackgroundWorker = new BackgroundWorker
{ {
WorkerReportsProgress = true, WorkerReportsProgress = true,
@ -249,6 +244,10 @@ namespace BizHawk.Client.EmuHawk
return; return;
} }
BookMarkControl.LoadedCallback = BranchLoaded;
BookMarkControl.SavedCallback = BranchSaved;
BookMarkControl.RemovedCallback = BranchRemoved;
SetColumnsFromCurrentStickies(); SetColumnsFromCurrentStickies();
if (TasView.Rotatable) if (TasView.Rotatable)
@ -376,9 +375,8 @@ namespace BizHawk.Client.EmuHawk
return true; return true;
} }
private void SetTasMovieCallbacks(TasMovie movie = null) private void SetTasMovieCallbacks(TasMovie movie)
{ {
movie ??= CurrentTasMovie;
movie.ClientSettingsForSave = ClientSettingsForSave; movie.ClientSettingsForSave = ClientSettingsForSave;
movie.GetClientSettingsOnLoad = GetClientSettingsOnLoad; movie.GetClientSettingsOnLoad = GetClientSettingsOnLoad;
} }
@ -599,7 +597,7 @@ namespace BizHawk.Client.EmuHawk
private void EngageTastudio() private void EngageTastudio()
{ {
MainForm.AddOnScreenMessage("TAStudio engaged"); MainForm.AddOnScreenMessage("TAStudio engaged");
SetTasMovieCallbacks(); SetTasMovieCallbacks(CurrentTasMovie);
SetTextProperty(); SetTextProperty();
MainForm.RelinquishControl(this); MainForm.RelinquishControl(this);
_originalEndAction = Config.MovieEndAction; _originalEndAction = Config.MovieEndAction;
@ -632,14 +630,13 @@ namespace BizHawk.Client.EmuHawk
return false; return false;
} }
TasMovie newMovie = new TasMovie(startsFromSavestate: startsFromSavestate); var newMovie = new TasMovie(startsFromSavestate: startsFromSavestate)
{
Filename = file.FullName,
BindMarkersToInput = Settings.BindMarkersToInput
};
newMovie.TasStateManager.InvalidateCallback = GreenzoneInvalidated; newMovie.TasStateManager.InvalidateCallback = GreenzoneInvalidated;
newMovie.Filename = file.FullName;
newMovie.BindMarkersToInput = Settings.BindMarkersToInput;
BookMarkControl.LoadedCallback = BranchLoaded;
BookMarkControl.SavedCallback = BranchSaved;
BookMarkControl.RemovedCallback = BranchRemoved;
if (!HandleMovieLoadStuff(newMovie)) if (!HandleMovieLoadStuff(newMovie))
{ {
@ -685,40 +682,46 @@ namespace BizHawk.Client.EmuHawk
private void StartNewTasMovie() private void StartNewTasMovie()
{ {
if (AskSaveChanges()) if (!AskSaveChanges())
{ {
MovieSession.Movie = new TasMovie(); return;
CurrentTasMovie.BindMarkersToInput = Settings.BindMarkersToInput;
var stateManager = ((TasMovie)MovieSession.Movie).TasStateManager;
stateManager.InvalidateCallback = GreenzoneInvalidated;
BookMarkControl.LoadedCallback = BranchLoaded;
BookMarkControl.SavedCallback = BranchSaved;
BookMarkControl.RemovedCallback = BranchRemoved;
CurrentTasMovie.PropertyChanged += TasMovie_OnPropertyChanged;
CurrentTasMovie.Filename = DefaultTasProjName(); // TODO don't do this, take over any mainform actions that can crash without a filename
CurrentTasMovie.PopulateWithDefaultHeaderValues(
Emulator,
Global.Game,
Global.FirmwareManager,
Config.DefaultAuthor);
SetTasMovieCallbacks();
CurrentTasMovie.ClearChanges(); // Don't ask to save changes here.
if (HandleMovieLoadStuff())
{
CurrentTasMovie.TasStateManager.Capture(); // Capture frame 0 always.
}
// clear all selections
TasView.DeselectAll();
BookMarkControl.Restart();
MarkerControl.Restart();
SetUpColumns();
RefreshDialog();
} }
var tasMovie = new TasMovie
{
BindMarkersToInput = Settings.BindMarkersToInput,
Filename = DefaultTasProjName() // TODO don't do this, take over any mainform actions that can crash without a filename
};
tasMovie.TasStateManager.InvalidateCallback = GreenzoneInvalidated;
tasMovie.PropertyChanged += TasMovie_OnPropertyChanged;
tasMovie.PopulateWithDefaultHeaderValues(
Emulator,
Global.Game,
Global.FirmwareManager,
Config.DefaultAuthor);
SetTasMovieCallbacks(tasMovie);
tasMovie.ClearChanges(); // Don't ask to save changes here.
MovieSession.Movie = tasMovie;
if (HandleMovieLoadStuff())
{
CurrentTasMovie.TasStateManager.Capture(); // Capture frame 0 always.
}
BookMarkControl.LoadedCallback = BranchLoaded;
BookMarkControl.SavedCallback = BranchSaved;
BookMarkControl.RemovedCallback = BranchRemoved;
// clear all selections
TasView.DeselectAll();
BookMarkControl.Restart();
MarkerControl.Restart();
SetUpColumns();
RefreshDialog();
} }
private bool HandleMovieLoadStuff(TasMovie movie = null) private bool HandleMovieLoadStuff(TasMovie movie = null)
@ -936,10 +939,7 @@ namespace BizHawk.Client.EmuHawk
} }
} }
public IEnumerable<int> GetSelection() public IEnumerable<int> GetSelection() => TasView.SelectedRows;
{
return TasView.SelectedRows;
}
public void RefreshDialog(bool refreshTasView = true, bool refreshBranches = true) public void RefreshDialog(bool refreshTasView = true, bool refreshBranches = true)
{ {
@ -1065,21 +1065,11 @@ namespace BizHawk.Client.EmuHawk
Emulator.ResetCounters(); Emulator.ResetCounters();
} }
_hackyDontUpdate = true; UpdateOtherTools();
Tools.UpdateToolsBefore();
Tools.UpdateToolsAfter();
_hackyDontUpdate = false;
} }
public void AddBranchExternal() public void AddBranchExternal() => BookMarkControl.AddBranchExternal();
{ public void RemoveBranchExternal() => BookMarkControl.RemoveBranchExternal();
BookMarkControl.AddBranchExternal();
}
public void RemoveBranchExternal()
{
BookMarkControl.RemoveBranchExternal();
}
private void UpdateOtherTools() // a hack probably, surely there is a better way to do this private void UpdateOtherTools() // a hack probably, surely there is a better way to do this
{ {