diff --git a/osu.Game/Screens/Play/Player.cs b/osu.Game/Screens/Play/Player.cs
index c8ba554c5f..5913e46836 100644
--- a/osu.Game/Screens/Play/Player.cs
+++ b/osu.Game/Screens/Play/Player.cs
@@ -665,9 +665,6 @@ namespace osu.Game.Screens.Play
return;
}
- if (resultsDisplayDelegate != null)
- throw new InvalidOperationException(@$"{nameof(scoreCompletionChanged)} should never be fired more than once.");
-
// Only show the completion screen if the player hasn't failed
if (HealthProcessor.HasFailed)
return;
@@ -703,6 +700,7 @@ namespace osu.Game.Screens.Play
///
///
/// A final display will only occur once all work is completed in .
+ /// This means that even after calling this method, the results screen will never be shown until ScoreProcessor.HasCompleted becomes .
///
/// Whether a minimum delay () should be added before the screen is displayed.
private void progressToResults(bool withDelay)
@@ -756,30 +754,6 @@ namespace osu.Game.Screens.Play
return Score.ScoreInfo;
}
- private void scheduleCompletion() => resultsDisplayDelegate = Schedule(() =>
- {
- if (!prepareScoreForDisplayTask.IsCompleted)
- {
- resultsDisplayDelegate = Schedule(() =>
- {
- if (!prepareScoreForDisplayTask.IsCompleted)
- {
- scheduleCompletion();
- return;
- }
-
- // screen may be in the exiting transition phase.
- if (this.IsCurrentScreen())
- this.Push(CreateResults(prepareScoreForDisplayTask.Result));
- });
- return;
- }
-
- // screen may be in the exiting transition phase.
- if (this.IsCurrentScreen())
- this.Push(CreateResults(prepareScoreForDisplayTask.Result));
- });
-
protected override bool OnScroll(ScrollEvent e) => mouseWheelDisabled.Value && !GameplayClockContainer.IsPaused.Value;
#region Fail Logic