From f5746a7b8f97bd679b9a7ad93e74892333caa9ae Mon Sep 17 00:00:00 2001 From: feos Date: Sun, 17 Apr 2016 13:52:58 +0300 Subject: [PATCH] tastudio: stop updating splicer after every new cell is appended. quick fix to #597. fix crash when pasting input beyond movie length. todo: make input log append like PasteInsert does. --- BizHawk.Client.Common/movie/tasproj/TasMovie.Editing.cs | 2 ++ BizHawk.Client.EmuHawk/CustomControls/InputRoll.cs | 2 +- BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs | 1 + BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs | 6 ++++-- 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/BizHawk.Client.Common/movie/tasproj/TasMovie.Editing.cs b/BizHawk.Client.Common/movie/tasproj/TasMovie.Editing.cs index a9b552e1ea..f7ee10d123 100644 --- a/BizHawk.Client.Common/movie/tasproj/TasMovie.Editing.cs +++ b/BizHawk.Client.Common/movie/tasproj/TasMovie.Editing.cs @@ -266,6 +266,8 @@ namespace BizHawk.Client.Common var states = inputStates.ToList(); for (int i = 0; i < states.Count; i++) { + if (_log.Count <= frame + i) + break; lg.SetSource(states[i]); _log[frame + i] = lg.GenerateLogEntry(); } diff --git a/BizHawk.Client.EmuHawk/CustomControls/InputRoll.cs b/BizHawk.Client.EmuHawk/CustomControls/InputRoll.cs index 12f8744bb0..f0fe8a9163 100644 --- a/BizHawk.Client.EmuHawk/CustomControls/InputRoll.cs +++ b/BizHawk.Client.EmuHawk/CustomControls/InputRoll.cs @@ -1646,7 +1646,7 @@ namespace BizHawk.Client.EmuHawk if (SelectedIndexChanged != null) { - SelectedIndexChanged(this, new EventArgs()); + //SelectedIndexChanged(this, new EventArgs()); } } } diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs index 48122a60df..a854e22687 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs @@ -704,6 +704,7 @@ namespace BizHawk.Client.EmuHawk { TasView.SelectRow(i, _selectionDragState); } + SetSplicer(); } } diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs index 3bf28f55d2..ebb5997472 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs @@ -258,7 +258,7 @@ namespace BizHawk.Client.EmuHawk { TasView.SelectRow(i, true); } - + SetSplicer(); RefreshTasView(); } } @@ -270,7 +270,7 @@ namespace BizHawk.Client.EmuHawk { TasView.SelectRow(item.Frame, true); } - + SetSplicer(); RefreshTasView(); } @@ -285,6 +285,8 @@ namespace BizHawk.Client.EmuHawk foreach (var index in list) { var input = CurrentTasMovie.GetInputState(index); + if (input == null) + break; _tasClipboard.Add(new TasClipboardEntry(index, input)); var lg = CurrentTasMovie.LogGeneratorInstance(); lg.SetSource(input);