Fix clock not incrementing beyond last frame of replay

This commit is contained in:
Dean Herbert 2018-02-01 18:49:07 +09:00
parent 9cc95e6e14
commit 1d687c470c
1 changed files with 8 additions and 6 deletions

View File

@ -102,8 +102,14 @@ protected Vector2? Position
if (hasFrames)
{
//if we changed frames, we want to execute once *exactly* on the frame's time.
if (currentDirection == time.CompareTo(NextFrame.Time) && advanceFrame())
// check if the next frame is in the "future" for the current playback direction
if (currentDirection != time.CompareTo(NextFrame.Time))
{
// if we didn't change frames, we need to ensure we are allowed to run frames in between, else return null.
if (inImportantSection)
return null;
}
else if (advanceFrame())
{
// If going backwards, we need to execute once _before_ the frame time to reverse any judgements
// that would occur as a result of this frame in forward playback
@ -111,10 +117,6 @@ protected Vector2? Position
return currentTime = CurrentFrame.Time - 1;
return currentTime = CurrentFrame.Time;
}
//if we didn't change frames, we need to ensure we are allowed to run frames in between, else return null.
if (inImportantSection)
return null;
}
return currentTime = time;