From 8a6ddfbf3fced71e5d298527658135d72991a713 Mon Sep 17 00:00:00 2001 From: feos Date: Tue, 8 Dec 2015 23:38:00 +0300 Subject: [PATCH] tastudio: actually use initial state from anchored movies. don't seek to whatever frame such a movie was created from. --- BizHawk.Client.Common/movie/tasproj/TasStateManager.cs | 4 ++++ .../tools/TAStudio/TAStudio.MenuItems.cs | 4 ++-- BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs | 9 ++++++--- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/BizHawk.Client.Common/movie/tasproj/TasStateManager.cs b/BizHawk.Client.Common/movie/tasproj/TasStateManager.cs index 7e9118efe0..5d1d317eca 100644 --- a/BizHawk.Client.Common/movie/tasproj/TasStateManager.cs +++ b/BizHawk.Client.Common/movie/tasproj/TasStateManager.cs @@ -138,6 +138,10 @@ namespace BizHawk.Client.Common { get { + if (frame == 0) { + return new KeyValuePair(0, InitialState); + } + if (States.ContainsKey(frame)) { StateAccessed(frame); diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs index c1f431efbc..de81acd338 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs @@ -1097,7 +1097,7 @@ namespace BizHawk.Client.EmuHawk index, (byte[])StatableEmulator.SaveStateBinary().Clone()); GlobalWin.MainForm.PauseEmulator(); - LoadFile(new FileInfo(newProject.Filename)); + LoadFile(new FileInfo(newProject.Filename), true); } } @@ -1112,7 +1112,7 @@ namespace BizHawk.Client.EmuHawk SaveRamEmulator.CloneSaveRam()); GlobalWin.MainForm.PauseEmulator(); - LoadFile(new FileInfo(newProject.Filename)); + LoadFile(new FileInfo(newProject.Filename), true); } } diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs index 36644401a9..06c933f017 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs @@ -421,7 +421,7 @@ namespace BizHawk.Client.EmuHawk Settings.RecentTas.Add(Global.MovieSession.Movie.Filename); } - private bool LoadFile(FileInfo file) + private bool LoadFile(FileInfo file, bool startsFromSavestate = false) { if (!file.Exists) { @@ -429,7 +429,7 @@ namespace BizHawk.Client.EmuHawk return false; } - TasMovie newMovie = new TasMovie(false, _saveBackgroundWorker); + TasMovie newMovie = new TasMovie(startsFromSavestate, _saveBackgroundWorker); newMovie.TasStateManager.InvalidateCallback = GreenzoneInvalidated; newMovie.Filename = file.FullName; @@ -440,7 +440,10 @@ namespace BizHawk.Client.EmuHawk if (TasView.AllColumns.Count() == 0) SetUpColumns(); - GoToFrame(CurrentTasMovie.Session.CurrentFrame); + if (startsFromSavestate) + GoToFrame(0); + else + GoToFrame(CurrentTasMovie.Session.CurrentFrame); CurrentTasMovie.CurrentBranch = CurrentTasMovie.Session.CurrentBranch; // clear all selections