tastudio should own tastudio logic

This commit is contained in:
SuuperW 2025-06-05 01:17:20 -05:00
parent fe9f876d55
commit e2acfa61ea
2 changed files with 25 additions and 23 deletions

View File

@ -177,32 +177,11 @@ namespace BizHawk.Client.EmuHawk
};
}
private void LoadBranch(TasBranch branch)
{
if (Tastudio.Settings.OldControlSchemeForBranches && !Tastudio.TasPlaybackBox.RecordingMode)
{
JumpToBranchToolStripMenuItem_Click(null, null);
return;
}
Movie.LoadBranch(branch);
Tastudio.LoadState(new(branch.Frame, new MemoryStream(branch.CoreData, false)));
Movie.TasStateManager.Capture(Tastudio.Emulator.Frame, Tastudio.Emulator.AsStatable());
QuickBmpFile.Copy(new BitmapBufferVideoProvider(branch.CoreFrameBuffer), Tastudio.VideoProvider);
if (Tastudio.Settings.OldControlSchemeForBranches && Tastudio.TasPlaybackBox.RecordingMode)
Movie.Truncate(branch.Frame);
MainForm.PauseOnFrame = null;
Tastudio.RefreshDialog();
}
private bool LoadSelectedBranch()
{
if (SelectedBranch == null) return false;
Branches.Current = BranchView.FirstSelectedRowIndex;
LoadBranch(SelectedBranch);
Tastudio.LoadBranch(SelectedBranch);
BranchView.Refresh();
Tastudio.MainForm.AddOnScreenMessage($"Loaded branch {Branches.Current + 1}");
return true;
@ -352,7 +331,7 @@ namespace BizHawk.Client.EmuHawk
{
if (_branchUndo == BranchUndo.Load)
{
LoadBranch(_backupBranch);
Tastudio.LoadBranch(_backupBranch);
Tastudio.BranchLoadedCallback?.Invoke(Branches.IndexOf(_backupBranch));
Tastudio.MainForm.AddOnScreenMessage("Branch Load canceled");
}

View File

@ -1250,5 +1250,28 @@ namespace BizHawk.Client.EmuHawk
TasView.AllColumns.ColumnsChanged();
}
public void LoadBranch(TasBranch branch)
{
if (Settings.OldControlSchemeForBranches && !TasPlaybackBox.RecordingMode)
{
GoToFrame(branch.Frame);
return;
}
CurrentTasMovie.LoadBranch(branch);
LoadState(new(branch.Frame, new MemoryStream(branch.CoreData, false)));
CurrentTasMovie.TasStateManager.Capture(Emulator.Frame, Emulator.AsStatable());
QuickBmpFile.Copy(new BitmapBufferVideoProvider(branch.CoreFrameBuffer), VideoProvider);
if (Settings.OldControlSchemeForBranches && TasPlaybackBox.RecordingMode)
{
CurrentTasMovie.Truncate(branch.Frame);
}
MainForm.PauseOnFrame = null;
RefreshDialog();
}
}
}