diff --git a/BizHawk.Client.Common/movie/tasproj/TasMovie.Editing.cs b/BizHawk.Client.Common/movie/tasproj/TasMovie.Editing.cs index 541165ecb6..bead4dccb7 100644 --- a/BizHawk.Client.Common/movie/tasproj/TasMovie.Editing.cs +++ b/BizHawk.Client.Common/movie/tasproj/TasMovie.Editing.cs @@ -29,8 +29,17 @@ namespace BizHawk.Client.Common { base.Truncate(frame); - LagLog.RemoveRange(frame + 2, LagLog.Count - frame - 1); + if (frame < LagLog.Count) + { + LagLog.RemoveRange(frame + 2, LagLog.Count - frame - 1); + } + StateManager.Invalidate(frame + 1); + + if (frame < _log.Count - 1) + { + Changes = true; + } // TODO: Markers? What does taseditor do? } diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Designer.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Designer.cs index 46da547f2d..86c3639077 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Designer.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Designer.cs @@ -407,10 +407,10 @@ namespace BizHawk.Client.EmuHawk // // TruncateMenuItem // - this.TruncateMenuItem.Enabled = false; this.TruncateMenuItem.Name = "TruncateMenuItem"; this.TruncateMenuItem.Size = new System.Drawing.Size(240, 22); this.TruncateMenuItem.Text = "&Truncate Movie"; + this.TruncateMenuItem.Click += new System.EventHandler(this.TruncateMenuItem_Click); // // ConfigSubMenu // diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs index 99e2ae179b..c4cb00a7c2 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs @@ -1,5 +1,4 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Drawing; using System.IO; @@ -55,7 +54,7 @@ namespace BizHawk.Client.EmuHawk } } - private IEnumerable SelectedIndices + private IEnumerable SelectedIndices { get { @@ -461,9 +460,7 @@ namespace BizHawk.Client.EmuHawk private void CutMenuItem_Click(object sender, EventArgs e) { _tasClipboard.Clear(); - var list = TasView.SelectedIndices - .OfType() - .ToArray(); + var list = SelectedIndices.ToArray(); var sb = new StringBuilder(); for (var i = 0; i < list.Length; i++) { @@ -485,10 +482,7 @@ namespace BizHawk.Client.EmuHawk private void ClearMenuItem_Click(object sender, EventArgs e) { - var list = TasView.SelectedIndices - .OfType(); - - foreach (var frame in list) + foreach (var frame in SelectedIndices) { _tas.ClearFrame(frame); } @@ -499,12 +493,7 @@ namespace BizHawk.Client.EmuHawk private void DeleteFramesMenuItem_Click(object sender, EventArgs e) { _tasClipboard.Clear(); - var list = TasView.SelectedIndices - .OfType() - .ToArray(); - - _tas.RemoveFrames(list); - + _tas.RemoveFrames(SelectedIndices.ToArray()); SetSplicer(); TasView.DeselectAll(); RefreshDialog(); @@ -512,14 +501,10 @@ namespace BizHawk.Client.EmuHawk private void CloneMenuItem_Click(object sender, EventArgs e) { - var framesToInsert = TasView.SelectedIndices - .OfType() - .OrderBy(frame => frame) - .ToList(); - - var insertionFrame = framesToInsert.Last() + 1; - + var framesToInsert = SelectedIndices.ToList(); + var insertionFrame = LastSelectedIndex + 1; var inputLog = new List(); + foreach (var frame in framesToInsert) { inputLog.Add(_tas.GetInput(frame)); @@ -532,15 +517,17 @@ namespace BizHawk.Client.EmuHawk private void InsertFrameMenuItem_Click(object sender, EventArgs e) { - var insertionFrame = TasView.SelectedIndices - .OfType() - .Last() + 1; - - _tas.InsertEmptyFrame(insertionFrame); - + _tas.InsertEmptyFrame(LastSelectedIndex + 1); RefreshDialog(); } + private void TruncateMenuItem_Click(object sender, EventArgs e) + { + _tas.Truncate(LastSelectedIndex + 1); + RefreshDialog(); + } + + #endregion #region Config