Set inputdisplay correctly on LoadState (#3747)
* Set inputdisplay correctly on LoadState * Add explanatory comment for future generations
This commit is contained in:
parent
ebf1950873
commit
c57657bbd4
|
@ -154,7 +154,9 @@ namespace BizHawk.Client.Common
|
|||
}
|
||||
else if (Movie.IsPlayingOrFinished())
|
||||
{
|
||||
LatchInputToLog();
|
||||
// set the controller state to the previous frame for input display purposes
|
||||
int previousFrame = Movie.Emulator.Frame - 1;
|
||||
Movie.Session.MovieController.SetFrom(Movie.GetInputState(previousFrame));
|
||||
}
|
||||
else if (Movie.IsFinished())
|
||||
{
|
||||
|
|
|
@ -92,10 +92,10 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public IMovieController GetInputState(int frame)
|
||||
{
|
||||
if (frame < FrameCount && frame >= 0)
|
||||
if (frame < FrameCount && frame >= -1)
|
||||
{
|
||||
_adapter ??= new Bk2Controller(LogKey, Session.MovieController.Definition);
|
||||
_adapter.SetFromMnemonic(Log[frame]);
|
||||
_adapter.SetFromMnemonic(frame >= 0 ? Log[frame] : Session.Movie.LogGeneratorInstance(Session.MovieController).EmptyEntry);
|
||||
return _adapter;
|
||||
}
|
||||
|
||||
|
|
|
@ -219,6 +219,10 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
Movie.LoadBranch(branch);
|
||||
Tastudio.LoadState(new(branch.Frame, new MemoryStream(branch.CoreData, false)));
|
||||
// set the controller state to the previous frame for input display purposes
|
||||
int previousFrame = Movie.Emulator.Frame - 1;
|
||||
Tastudio.MovieSession.MovieController.SetFrom(Movie.GetInputState(previousFrame));
|
||||
|
||||
Movie.TasStateManager.Capture(Tastudio.Emulator.Frame, Tastudio.Emulator.AsStatable());
|
||||
QuickBmpFile.Copy(new BitmapBufferVideoProvider(branch.CoreFrameBuffer), Tastudio.VideoProvider);
|
||||
|
||||
|
|
Loading…
Reference in New Issue