1
0
mirror of https://github.com/ppy/osu.git synced 2024-09-21 18:07:23 +08:00

Fix crash on exiting player during results transition

This commit is contained in:
Dean Herbert 2018-12-13 16:17:24 +09:00
parent f29c6987d2
commit 71e5ce59da

View File

@ -170,7 +170,7 @@ namespace osu.Game.Screens.Play
{
Retries = RestartCount,
OnRetry = Restart,
OnQuit = Exit,
OnQuit = performUserRequestedExit,
CheckCanPause = () => AllowPause && ValidForResume && !HasFailed && !RulesetContainer.HasReplayLoaded,
Children = new[]
{
@ -211,7 +211,7 @@ namespace osu.Game.Screens.Play
failOverlay = new FailOverlay
{
OnRetry = Restart,
OnQuit = Exit,
OnQuit = performUserRequestedExit,
},
new HotkeyRetryOverlay
{
@ -225,7 +225,7 @@ namespace osu.Game.Screens.Play
}
};
hudOverlay.HoldToQuit.Action = Exit;
hudOverlay.HoldToQuit.Action = performUserRequestedExit;
hudOverlay.KeyCounter.Visible.BindTo(RulesetContainer.HasReplayLoaded);
RulesetContainer.IsPaused.BindTo(pauseContainer.IsPaused);
@ -250,8 +250,16 @@ namespace osu.Game.Screens.Play
mod.ApplyToClock(sourceClock);
}
private void performUserRequestedExit()
{
if (!IsCurrentScreen) return;
Exit();
}
public void Restart()
{
if (!IsCurrentScreen) return;
sampleRestart?.Play();
ValidForResume = false;
RestartRequested?.Invoke();