diff --git a/osu.Game.Tests/Visual/Background/TestSceneUserDimBackgrounds.cs b/osu.Game.Tests/Visual/Background/TestSceneUserDimBackgrounds.cs
index 566ccd6bd5..204dea39b2 100644
--- a/osu.Game.Tests/Visual/Background/TestSceneUserDimBackgrounds.cs
+++ b/osu.Game.Tests/Visual/Background/TestSceneUserDimBackgrounds.cs
@@ -349,8 +349,9 @@ namespace osu.Game.Tests.Visual.Background
private partial class FadeAccessibleResults : ResultsScreen
{
public FadeAccessibleResults(ScoreInfo score)
- : base(score, true)
+ : base(score)
{
+ AllowRetry = true;
}
protected override BackgroundScreen CreateBackground() => new FadeAccessibleBackground(Beatmap.Value);
diff --git a/osu.Game.Tests/Visual/Playlists/TestScenePlaylistsResultsScreen.cs b/osu.Game.Tests/Visual/Playlists/TestScenePlaylistsResultsScreen.cs
index 25ee20b089..fca965052f 100644
--- a/osu.Game.Tests/Visual/Playlists/TestScenePlaylistsResultsScreen.cs
+++ b/osu.Game.Tests/Visual/Playlists/TestScenePlaylistsResultsScreen.cs
@@ -420,9 +420,10 @@ namespace osu.Game.Tests.Visual.Playlists
public new LoadingSpinner RightSpinner => base.RightSpinner;
public new ScorePanelList ScorePanelList => base.ScorePanelList;
- public TestResultsScreen([CanBeNull] ScoreInfo score, int roomId, PlaylistItem playlistItem, bool allowRetry = true)
- : base(score, roomId, playlistItem, allowRetry)
+ public TestResultsScreen([CanBeNull] ScoreInfo score, int roomId, PlaylistItem playlistItem)
+ : base(score, roomId, playlistItem)
{
+ AllowRetry = true;
}
}
}
diff --git a/osu.Game.Tests/Visual/Ranking/TestSceneResultsScreen.cs b/osu.Game.Tests/Visual/Ranking/TestSceneResultsScreen.cs
index cf4bec54ff..ffc5dbc8fb 100644
--- a/osu.Game.Tests/Visual/Ranking/TestSceneResultsScreen.cs
+++ b/osu.Game.Tests/Visual/Ranking/TestSceneResultsScreen.cs
@@ -399,8 +399,9 @@ namespace osu.Game.Tests.Visual.Ranking
public HotkeyRetryOverlay RetryOverlay;
public TestResultsScreen(ScoreInfo score)
- : base(score, true)
+ : base(score)
{
+ AllowRetry = true;
ShowUserStatistics = true;
}
@@ -470,8 +471,9 @@ namespace osu.Game.Tests.Visual.Ranking
public HotkeyRetryOverlay RetryOverlay;
public UnrankedSoloResultsScreen(ScoreInfo score)
- : base(score, true)
+ : base(score)
{
+ AllowRetry = true;
Score!.BeatmapInfo!.OnlineID = 0;
Score.BeatmapInfo.Status = BeatmapOnlineStatus.Pending;
}
diff --git a/osu.Game/OsuGame.cs b/osu.Game/OsuGame.cs
index 9ffa88947b..ec44076520 100644
--- a/osu.Game/OsuGame.cs
+++ b/osu.Game/OsuGame.cs
@@ -768,7 +768,7 @@ namespace osu.Game
break;
case ScorePresentType.Results:
- screen.Push(new SoloResultsScreen(databasedScore.ScoreInfo, false));
+ screen.Push(new SoloResultsScreen(databasedScore.ScoreInfo));
break;
}
}, validScreens: validScreens);
diff --git a/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerResultsScreen.cs b/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerResultsScreen.cs
index f665ed2d41..6ed75508dc 100644
--- a/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerResultsScreen.cs
+++ b/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerResultsScreen.cs
@@ -10,7 +10,7 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer
public partial class MultiplayerResultsScreen : PlaylistsResultsScreen
{
public MultiplayerResultsScreen(ScoreInfo score, long roomId, PlaylistItem playlistItem)
- : base(score, roomId, playlistItem, false)
+ : base(score, roomId, playlistItem)
{
}
}
diff --git a/osu.Game/Screens/OnlinePlay/Playlists/PlaylistsPlayer.cs b/osu.Game/Screens/OnlinePlay/Playlists/PlaylistsPlayer.cs
index b0e4585986..74454959a1 100644
--- a/osu.Game/Screens/OnlinePlay/Playlists/PlaylistsPlayer.cs
+++ b/osu.Game/Screens/OnlinePlay/Playlists/PlaylistsPlayer.cs
@@ -58,7 +58,10 @@ namespace osu.Game.Screens.OnlinePlay.Playlists
protected override ResultsScreen CreateResults(ScoreInfo score)
{
Debug.Assert(Room.RoomID.Value != null);
- return new PlaylistsResultsScreen(score, Room.RoomID.Value.Value, PlaylistItem, true);
+ return new PlaylistsResultsScreen(score, Room.RoomID.Value.Value, PlaylistItem)
+ {
+ AllowRetry = true,
+ };
}
protected override void Dispose(bool isDisposing)
diff --git a/osu.Game/Screens/OnlinePlay/Playlists/PlaylistsResultsScreen.cs b/osu.Game/Screens/OnlinePlay/Playlists/PlaylistsResultsScreen.cs
index 6a1924dea2..add7aee8cd 100644
--- a/osu.Game/Screens/OnlinePlay/Playlists/PlaylistsResultsScreen.cs
+++ b/osu.Game/Screens/OnlinePlay/Playlists/PlaylistsResultsScreen.cs
@@ -41,8 +41,8 @@ namespace osu.Game.Screens.OnlinePlay.Playlists
[Resolved]
private RulesetStore rulesets { get; set; }
- public PlaylistsResultsScreen([CanBeNull] ScoreInfo score, long roomId, PlaylistItem playlistItem, bool allowRetry, bool allowWatchingReplay = true)
- : base(score, allowRetry, allowWatchingReplay)
+ public PlaylistsResultsScreen([CanBeNull] ScoreInfo score, long roomId, PlaylistItem playlistItem)
+ : base(score)
{
this.roomId = roomId;
this.playlistItem = playlistItem;
diff --git a/osu.Game/Screens/OnlinePlay/Playlists/PlaylistsRoomSubScreen.cs b/osu.Game/Screens/OnlinePlay/Playlists/PlaylistsRoomSubScreen.cs
index 2460f78c96..3fb9de428a 100644
--- a/osu.Game/Screens/OnlinePlay/Playlists/PlaylistsRoomSubScreen.cs
+++ b/osu.Game/Screens/OnlinePlay/Playlists/PlaylistsRoomSubScreen.cs
@@ -114,7 +114,7 @@ namespace osu.Game.Screens.OnlinePlay.Playlists
RequestResults = item =>
{
Debug.Assert(RoomId.Value != null);
- ParentScreen?.Push(new PlaylistsResultsScreen(null, RoomId.Value.Value, item, false));
+ ParentScreen?.Push(new PlaylistsResultsScreen(null, RoomId.Value.Value, item));
}
}
},
diff --git a/osu.Game/Screens/Play/Player.cs b/osu.Game/Screens/Play/Player.cs
index 11ff5fdbef..8383936f7c 100644
--- a/osu.Game/Screens/Play/Player.cs
+++ b/osu.Game/Screens/Play/Player.cs
@@ -1224,9 +1224,10 @@ namespace osu.Game.Screens.Play
///
/// The to be displayed in the results screen.
/// The .
- protected virtual ResultsScreen CreateResults(ScoreInfo score) => new SoloResultsScreen(score, true)
+ protected virtual ResultsScreen CreateResults(ScoreInfo score) => new SoloResultsScreen(score)
{
- ShowUserStatistics = true
+ AllowRetry = true,
+ ShowUserStatistics = true,
};
private void fadeOut(bool instant = false)
diff --git a/osu.Game/Screens/Play/ReplayPlayer.cs b/osu.Game/Screens/Play/ReplayPlayer.cs
index 3c5b85662a..ff60dbc0d0 100644
--- a/osu.Game/Screens/Play/ReplayPlayer.cs
+++ b/osu.Game/Screens/Play/ReplayPlayer.cs
@@ -92,7 +92,7 @@ namespace osu.Game.Screens.Play
Scores = { BindTarget = LeaderboardScores }
};
- protected override ResultsScreen CreateResults(ScoreInfo score) => new SoloResultsScreen(score, false);
+ protected override ResultsScreen CreateResults(ScoreInfo score) => new SoloResultsScreen(score);
public bool OnPressed(KeyBindingPressEvent e)
{
diff --git a/osu.Game/Screens/Play/SpectatorResultsScreen.cs b/osu.Game/Screens/Play/SpectatorResultsScreen.cs
index 393cbddb34..5ee2a5ce0e 100644
--- a/osu.Game/Screens/Play/SpectatorResultsScreen.cs
+++ b/osu.Game/Screens/Play/SpectatorResultsScreen.cs
@@ -13,7 +13,7 @@ namespace osu.Game.Screens.Play
public partial class SpectatorResultsScreen : SoloResultsScreen
{
public SpectatorResultsScreen(ScoreInfo score)
- : base(score, false)
+ : base(score)
{
}
diff --git a/osu.Game/Screens/Ranking/ResultsScreen.cs b/osu.Game/Screens/Ranking/ResultsScreen.cs
index 69cfbed8f2..6beb4d7401 100644
--- a/osu.Game/Screens/Ranking/ResultsScreen.cs
+++ b/osu.Game/Screens/Ranking/ResultsScreen.cs
@@ -63,16 +63,21 @@ namespace osu.Game.Screens.Ranking
private bool lastFetchCompleted;
- private readonly bool allowRetry;
- private readonly bool allowWatchingReplay;
+ ///
+ /// Whether the user can retry the beatmap from the results screen.
+ ///
+ public bool AllowRetry { get; init; }
+
+ ///
+ /// Whether the user can watch the replay of the completed play from the results screen.
+ ///
+ public bool AllowWatchingReplay { get; init; } = true;
private Sample popInSample;
- protected ResultsScreen([CanBeNull] ScoreInfo score, bool allowRetry, bool allowWatchingReplay = true)
+ protected ResultsScreen([CanBeNull] ScoreInfo score)
{
Score = score;
- this.allowRetry = allowRetry;
- this.allowWatchingReplay = allowWatchingReplay;
SelectedScore.Value = score;
}
@@ -162,7 +167,7 @@ namespace osu.Game.Screens.Ranking
ScorePanelList.AddScore(Score, shouldFlair);
}
- if (allowWatchingReplay)
+ if (AllowWatchingReplay)
{
buttons.Add(new ReplayDownloadButton(SelectedScore.Value)
{
@@ -171,7 +176,7 @@ namespace osu.Game.Screens.Ranking
});
}
- if (player != null && allowRetry)
+ if (player != null && AllowRetry)
{
buttons.Add(new RetryButton { Width = 300 });
diff --git a/osu.Game/Screens/Ranking/SoloResultsScreen.cs b/osu.Game/Screens/Ranking/SoloResultsScreen.cs
index 866440bbd6..38bc13ffb9 100644
--- a/osu.Game/Screens/Ranking/SoloResultsScreen.cs
+++ b/osu.Game/Screens/Ranking/SoloResultsScreen.cs
@@ -34,8 +34,8 @@ namespace osu.Game.Screens.Ranking
private IBindable latestUpdate = null!;
private readonly Bindable statisticsUpdate = new Bindable();
- public SoloResultsScreen(ScoreInfo score, bool allowRetry)
- : base(score, allowRetry)
+ public SoloResultsScreen(ScoreInfo score)
+ : base(score)
{
}
diff --git a/osu.Game/Screens/Select/PlaySongSelect.cs b/osu.Game/Screens/Select/PlaySongSelect.cs
index 7b7b8857f3..52f49ba56a 100644
--- a/osu.Game/Screens/Select/PlaySongSelect.cs
+++ b/osu.Game/Screens/Select/PlaySongSelect.cs
@@ -54,7 +54,7 @@ namespace osu.Game.Screens.Select
}
protected void PresentScore(ScoreInfo score) =>
- FinaliseSelection(score.BeatmapInfo, score.Ruleset, () => this.Push(new SoloResultsScreen(score, false)));
+ FinaliseSelection(score.BeatmapInfo, score.Ruleset, () => this.Push(new SoloResultsScreen(score)));
protected override BeatmapDetailArea CreateBeatmapDetailArea()
{