From ceade5be5ad92472c6a73cc6fb2bb0165065f408 Mon Sep 17 00:00:00 2001 From: adelikat Date: Sun, 29 Nov 2020 12:13:12 -0600 Subject: [PATCH] move some logic from TAStudioLuaLibrary to TAStudio --- .../tools/Lua/Libraries/TAStudioLuaLibrary.cs | 7 ++----- .../tools/TAStudio/TAStudio.cs | 13 +++++++++++++ 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/BizHawk.Client.EmuHawk/tools/Lua/Libraries/TAStudioLuaLibrary.cs b/src/BizHawk.Client.EmuHawk/tools/Lua/Libraries/TAStudioLuaLibrary.cs index 41b5500be1..7cd70fd064 100644 --- a/src/BizHawk.Client.EmuHawk/tools/Lua/Libraries/TAStudioLuaLibrary.cs +++ b/src/BizHawk.Client.EmuHawk/tools/Lua/Libraries/TAStudioLuaLibrary.cs @@ -398,12 +398,9 @@ namespace BizHawk.Client.EmuHawk if (Engaged()) { - var branch = Tastudio.CurrentTasMovie.Branches.FirstOrDefault(b => b.Uuid.ToString() == branchId); - if (branch != null && frame < branch.InputLog.Count) + var controller = Tastudio.GetBranchInput(branchId, frame); + if (controller != null) { - var controller = GlobalWin.MovieSession.GenerateMovieController(); - controller.SetFromMnemonic(branch.InputLog[frame]); - foreach (var button in controller.Definition.BoolButtons) { table[button] = controller.IsPressed(button); diff --git a/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs b/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs index 38a1e64056..7426239495 100644 --- a/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs +++ b/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs @@ -518,6 +518,19 @@ namespace BizHawk.Client.EmuHawk public void SelectAllExternal() => SelectAllMenuItem_Click(null, null); public void ReselectClipboardExternal() => ReselectClipboardMenuItem_Click(null, null); + public IMovieController GetBranchInput(string branchId, int frame) + { + var branch = CurrentTasMovie.Branches.FirstOrDefault(b => b.Uuid.ToString() == branchId); + if (branch == null || frame >= branch.InputLog.Count) + { + return null; + } + + var controller = MovieSession.GenerateMovieController(); + controller.SetFromMnemonic(branch.InputLog[frame]); + return controller; + } + private int? FirstNonEmptySelectedFrame { get