diff --git a/osu.Game/GameModes/Play/PlaySongSelect.cs b/osu.Game/GameModes/Play/PlaySongSelect.cs index b4d675fc0b..b7c107ca98 100644 --- a/osu.Game/GameModes/Play/PlaySongSelect.cs +++ b/osu.Game/GameModes/Play/PlaySongSelect.cs @@ -107,7 +107,7 @@ namespace osu.Game.GameModes.Play Colour = new Color4(238, 51, 153, 255), Action = () => Push(new Player { BeatmapInfo = selectedBeatmapGroup.SelectedPanel.Beatmap, - PlayMode = playMode.Value + PreferredPlayMode = playMode.Value }), }, } diff --git a/osu.Game/GameModes/Play/Player.cs b/osu.Game/GameModes/Play/Player.cs index 2f948201ad..2302c026f3 100644 --- a/osu.Game/GameModes/Play/Player.cs +++ b/osu.Game/GameModes/Play/Player.cs @@ -24,7 +24,7 @@ namespace osu.Game.GameModes.Play public BeatmapInfo BeatmapInfo; public WorkingBeatmap Beatmap; - public PlayMode PlayMode; + public PlayMode PreferredPlayMode; protected override IFrameBasedClock Clock => playerClock; @@ -80,7 +80,18 @@ namespace osu.Game.GameModes.Play HitRenderer hitRenderer; ScoreOverlay scoreOverlay; - switch (PlayMode) + if (Beatmap.Beatmap.BeatmapInfo?.Mode > PlayMode.Osu) + { + //we only support osu! mode for now because the hitobject parsing is crappy and needs a refactor. + Exit(); + return; + } + + PlayMode usablePlayMode = Beatmap.Beatmap.BeatmapInfo?.Mode > PlayMode.Osu ? Beatmap.Beatmap.BeatmapInfo.Mode : PreferredPlayMode; + + + + switch (usablePlayMode) { default: scoreOverlay = new ScoreOverlayOsu();