Improve logic and add previously failing test

Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
This commit is contained in:
voidedWarranties
2021-03-17 15:31:16 -07:00
parent 21e18c9f6e
commit df6570ebf5
2 changed files with 39 additions and 22 deletions

View File

@ -172,6 +172,10 @@ namespace osu.Game.Screens.Edit
public void Start()
{
ClearTransforms();
if (playbackFinished)
underlyingClock.Seek(0);
underlyingClock.Start();
}
@ -222,21 +226,15 @@ namespace osu.Game.Screens.Edit
{
underlyingClock.ProcessFrame();
if (IsRunning)
{
var playbackAlreadyStopped = playbackFinished;
playbackFinished = CurrentTime >= TrackLength;
var playbackAlreadyStopped = playbackFinished;
playbackFinished = CurrentTime >= TrackLength;
if (playbackFinished)
{
if (!playbackAlreadyStopped)
{
underlyingClock.Stop();
underlyingClock.Seek(TrackLength);
}
else
underlyingClock.Seek(0);
}
if (playbackFinished && !playbackAlreadyStopped)
{
if (IsRunning)
underlyingClock.Stop();
underlyingClock.Seek(TrackLength);
}
}