diff --git a/src/BizHawk.Client.EmuHawk/tools/TAStudio/BookmarksBranchesBox.cs b/src/BizHawk.Client.EmuHawk/tools/TAStudio/BookmarksBranchesBox.cs index 17ad218b94..6085159feb 100644 --- a/src/BizHawk.Client.EmuHawk/tools/TAStudio/BookmarksBranchesBox.cs +++ b/src/BizHawk.Client.EmuHawk/tools/TAStudio/BookmarksBranchesBox.cs @@ -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"); } diff --git a/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs b/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs index 903b8cfa94..6a8c07e49a 100644 --- a/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs +++ b/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs @@ -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(); + } } }