diff --git a/osu.Game/Screens/OnlinePlay/OnlinePlayFreestyleSelectV2.cs b/osu.Game/Screens/OnlinePlay/OnlinePlayFreestyleSelectV2.cs index 751c23d526..b5b53e51af 100644 --- a/osu.Game/Screens/OnlinePlay/OnlinePlayFreestyleSelectV2.cs +++ b/osu.Game/Screens/OnlinePlay/OnlinePlayFreestyleSelectV2.cs @@ -33,6 +33,8 @@ namespace osu.Game.Screens.OnlinePlay this.item = item; Padding = new MarginPadding { Horizontal = HORIZONTAL_OVERFLOW_PADDING }; + + SupportScoping = false; } [BackgroundDependencyLoader] diff --git a/osu.Game/Screens/SelectV2/PanelBeatmapSet.SpreadDisplay.cs b/osu.Game/Screens/SelectV2/PanelBeatmapSet.SpreadDisplay.cs index 08ea270e1f..89916b13d8 100644 --- a/osu.Game/Screens/SelectV2/PanelBeatmapSet.SpreadDisplay.cs +++ b/osu.Game/Screens/SelectV2/PanelBeatmapSet.SpreadDisplay.cs @@ -108,6 +108,7 @@ namespace osu.Game.Screens.SelectV2 showConvertedBeatmaps.BindValueChanged(_ => updateBeatmapSet(), true); Expanded.BindValueChanged(_ => updateEnabled()); scopedBeatmapSet.BindValueChanged(_ => updateEnabled(), true); + scopedBeatmapSet.BindDisabledChanged(_ => updateEnabled(), true); Enabled.BindValueChanged(_ => updateAppearance(), true); FinishTransforms(true); } @@ -210,7 +211,7 @@ namespace osu.Game.Screens.SelectV2 private void updateEnabled() { - Enabled.Value = Expanded.Value && scopedBeatmapSet.Value == null; + Enabled.Value = Expanded.Value && !scopedBeatmapSet.Disabled && scopedBeatmapSet.Value == null; } protected override bool OnMouseDown(MouseDownEvent e) diff --git a/osu.Game/Screens/SelectV2/SongSelect.cs b/osu.Game/Screens/SelectV2/SongSelect.cs index d144daad7b..a535d827d6 100644 --- a/osu.Game/Screens/SelectV2/SongSelect.cs +++ b/osu.Game/Screens/SelectV2/SongSelect.cs @@ -93,6 +93,12 @@ namespace osu.Game.Screens.SelectV2 /// protected bool ControlGlobalMusic { get; init; } = true; + /// + /// Whether this song select instance should allow scoping down to a specific beatmap set, + /// exposing other difficulties that are otherwise hidden by filter criteria. + /// + protected bool SupportScoping { init => scopedBeatmapSet.Disabled = !value; } + /// /// Whether the osu! logo should be shown at the bottom-right of the screen. ///