From 7309957c11b38e98b758687dbf07b9e999d38791 Mon Sep 17 00:00:00 2001 From: feos Date: Thu, 8 Sep 2016 18:31:55 +0300 Subject: [PATCH] tastudio: pasting input beyond movie length extends it --- .../movie/tasproj/TasMovie.Editing.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/BizHawk.Client.Common/movie/tasproj/TasMovie.Editing.cs b/BizHawk.Client.Common/movie/tasproj/TasMovie.Editing.cs index 370b338029..271ddc13e1 100644 --- a/BizHawk.Client.Common/movie/tasproj/TasMovie.Editing.cs +++ b/BizHawk.Client.Common/movie/tasproj/TasMovie.Editing.cs @@ -268,10 +268,15 @@ namespace BizHawk.Client.Common public void CopyOverInput(int frame, IEnumerable inputStates) { - ChangeLog.AddGeneralUndo(frame, frame + inputStates.Count() - 1, "Copy Over Input: " + frame); - + ChangeLog.BeginNewBatch("Copy Over Input: " + frame); var lg = LogGeneratorInstance(); var states = inputStates.ToList(); + + if (_log.Count < states.Count + frame) + ExtendMovieForEdit(states.Count + frame - _log.Count); + + ChangeLog.AddGeneralUndo(frame, frame + inputStates.Count() - 1, "Copy Over Input: " + frame); + for (int i = 0; i < states.Count; i++) { if (_log.Count <= frame + i) @@ -280,6 +285,7 @@ namespace BizHawk.Client.Common _log[frame + i] = lg.GenerateLogEntry(); } + ChangeLog.EndBatch(); Changes = true; InvalidateAfter(frame);