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