From 1b85a89b66a025909f0550262f813e52bf0a3d1c Mon Sep 17 00:00:00 2001 From: kylelyk Date: Thu, 21 Aug 2014 21:24:25 +0000 Subject: [PATCH] Markers on frames to be truncated are now deleted like in TAS Editor. --- .../movie/tasproj/TasMovie.Editing.cs | 4 +++- .../movie/tasproj/TasMovieMarker.cs | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/BizHawk.Client.Common/movie/tasproj/TasMovie.Editing.cs b/BizHawk.Client.Common/movie/tasproj/TasMovie.Editing.cs index 50bbcea683..b08f3512d3 100644 --- a/BizHawk.Client.Common/movie/tasproj/TasMovie.Editing.cs +++ b/BizHawk.Client.Common/movie/tasproj/TasMovie.Editing.cs @@ -44,7 +44,9 @@ namespace BizHawk.Client.Common { Changes = true; } - // TODO: Markers? What does taseditor do? + + //Taseditor deletes markers that are in truncated portion of movie. + Markers.TruncateAt(frame); } public override void PokeFrame(int frame, IController source) diff --git a/BizHawk.Client.Common/movie/tasproj/TasMovieMarker.cs b/BizHawk.Client.Common/movie/tasproj/TasMovieMarker.cs index c98bad70cc..8e068d265b 100644 --- a/BizHawk.Client.Common/movie/tasproj/TasMovieMarker.cs +++ b/BizHawk.Client.Common/movie/tasproj/TasMovieMarker.cs @@ -72,6 +72,7 @@ namespace BizHawk.Client.Common } } + //Add functions as needed public class TasMovieMarkerList : List { private readonly TasMovie _movie; @@ -128,6 +129,24 @@ namespace BizHawk.Client.Common this.Sort((m1, m2) => m1.Frame.CompareTo(m2.Frame)); } + /// + /// Deletes all markers at or below the given start frame. + /// + /// The first frame for markers to be deleted. + /// Number of markers deleted. + public int TruncateAt(int startFrame) + { + int deletedCount = 0; + for (int i = Count - 1; i > -1; i--) + { + if(this[i].Frame >= startFrame){ + RemoveAt(i); + deletedCount++; + } + } + return deletedCount; + } + public TasMovieMarker Previous(int currentFrame) { return this