diff --git a/BizHawk.Client.Common/movie/tasproj/TasMovie.cs b/BizHawk.Client.Common/movie/tasproj/TasMovie.cs
index 127b06d7b7..375136d6fd 100644
--- a/BizHawk.Client.Common/movie/tasproj/TasMovie.cs
+++ b/BizHawk.Client.Common/movie/tasproj/TasMovie.cs
@@ -56,6 +56,7 @@ namespace BizHawk.Client.Common
BindMarkersToInput = true;
CurrentBranch = -1;
+ LastPositionFrame = -1;
}
public TasMovie(bool startsFromSavestate = false, BackgroundWorker progressReportWorker = null)
@@ -78,6 +79,7 @@ namespace BizHawk.Client.Common
BindMarkersToInput = true;
CurrentBranch = -1;
+ LastPositionFrame = -1;
}
public TasLagLog TasLagLog { get { return LagLog; } }
@@ -85,11 +87,23 @@ namespace BizHawk.Client.Common
public TasMovieMarkerList Markers { get; set; }
public bool BindMarkersToInput { get; set; }
public bool UseInputCache { get; set; }
- public bool LastPositionStable = true;
public string NewBranchText = "";
public int CurrentBranch { get; set; }
public int BranchCount { get { return Branches.Count; } }
+ ///
+ /// Separates "restore last position" logic from seeking caused by navigation.
+ /// TASEditor never kills LastPositionFrame, and it only pauses on it,
+ /// if it hasn't been greenzoned beforehand and middle mouse button was pressed.
+ ///
+ public int LastPositionFrame { get; set; }
+
+ ///
+ /// If user emulated a new frame, current edited segment may change
+ /// TASEditor lets LastPositionFrame be changed then
+ ///
+ public bool LastPositionStable = true;
+
public TasBranch GetBranch(int index)
{
if (index >= Branches.Count || index < 0)
@@ -313,7 +327,6 @@ namespace BizHawk.Client.Common
{
if (Global.Emulator.Frame > LastValidFrame)
{
- // emulated a new frame, current editing segment may change now. taseditor logic
LastPositionStable = false;
}
diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs
index c8d285a047..23bef0c134 100644
--- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs
+++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs
@@ -115,12 +115,17 @@ namespace BizHawk.Client.EmuHawk
get { return GlobalWin.MainForm; }
}
- ///
- /// Separates "restore last position" logic from seeking caused by navigation.
- /// TASEditor never kills LastPositionFrame, and it only pauses on it,
- /// if it hasn't been greenzoned beforehand and middle mouse button was pressed.
- ///
- public int LastPositionFrame { get; set; }
+ public int LastPositionFrame
+ {
+ get
+ {
+ return CurrentTasMovie.LastPositionFrame;
+ }
+ set
+ {
+ CurrentTasMovie.LastPositionFrame = value;
+ }
+ }
#region "Initializing"
@@ -169,7 +174,6 @@ namespace BizHawk.Client.EmuHawk
TasView.PointedCellChanged += TasView_PointedCellChanged;
TasView.MultiSelect = true;
TasView.MaxCharactersInHorizontal = 1;
- LastPositionFrame = -1;
}
private void AutosaveTimerEventProcessor(object sender, EventArgs e)