diff --git a/osu.Game.Tests/Visual/Gameplay/TestSceneReplayPlayer.cs b/osu.Game.Tests/Visual/Gameplay/TestSceneReplayPlayer.cs index 4a0f5fec6c..6be8f7d185 100644 --- a/osu.Game.Tests/Visual/Gameplay/TestSceneReplayPlayer.cs +++ b/osu.Game.Tests/Visual/Gameplay/TestSceneReplayPlayer.cs @@ -24,6 +24,14 @@ namespace osu.Game.Tests.Visual.Gameplay { protected TestReplayPlayer Player = null!; + [Test] + public void TestFailedBeatmapLoad() + { + loadPlayerWithBeatmap(new TestBeatmap(new OsuRuleset().RulesetInfo, withHitObjects: false)); + + AddUntilStep("wait for exit", () => Player.IsCurrentScreen()); + } + [Test] public void TestPauseViaSpace() { diff --git a/osu.Game/Screens/Play/ReplayPlayer.cs b/osu.Game/Screens/Play/ReplayPlayer.cs index 51cfb9a9f3..1c583609d9 100644 --- a/osu.Game/Screens/Play/ReplayPlayer.cs +++ b/osu.Game/Screens/Play/ReplayPlayer.cs @@ -32,7 +32,9 @@ namespace osu.Game.Screens.Play [Cached(typeof(IGameplayLeaderboardProvider))] private readonly SoloGameplayLeaderboardProvider leaderboardProvider = new SoloGameplayLeaderboardProvider(); - protected override UserActivity? InitialActivity => new UserActivity.WatchingReplay(Score.ScoreInfo); + protected override UserActivity? InitialActivity => + // score may be null if LoadedBeatmapSuccessfully is false. + Score == null ? null : new UserActivity.WatchingReplay(Score.ScoreInfo); private bool isAutoplayPlayback => GameplayState.Mods.OfType().Any();