From f66c8d10e0dd5606880243811d91c9ff57acdcbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Tue, 30 Sep 2025 13:22:45 +0200 Subject: [PATCH] Fix song select not changing global beatmap correctly when switching rulesets Closes https://github.com/ppy/osu/issues/35113. Regressed in dfed564bda7408ec4fd1c82ab15f90f410cdd444 - setting `Carousel.CurrentSelection` was not all that `requestRecommendedSelection()` was doing there... A potential point of discussion is whether this global beatmap switch should be debounced or instant. I'm not sure I have a particularly well-formed opinion on that. One argument in favour of not debouncing is that if you look closely at the left side of the screen while the debounce is in progress, you can still sort of see the broken behaviour happen - it just doesn't stay there forever. Thankfully `ensureGlobalBeatmapValid()` being called in every scenario on screen suspension prevented this bug from being any worse than it is right now. --- osu.Game/Screens/SelectV2/SongSelect.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/osu.Game/Screens/SelectV2/SongSelect.cs b/osu.Game/Screens/SelectV2/SongSelect.cs index 9947ffc6bc..f5588bcda4 100644 --- a/osu.Game/Screens/SelectV2/SongSelect.cs +++ b/osu.Game/Screens/SelectV2/SongSelect.cs @@ -600,7 +600,9 @@ namespace osu.Game.Screens.SelectV2 if (validBeatmaps.Any()) { - carousel.CurrentBeatmap = difficultyRecommender?.GetRecommendedBeatmap(validBeatmaps) ?? validBeatmaps.First(); + var beatmap = difficultyRecommender?.GetRecommendedBeatmap(validBeatmaps) ?? validBeatmaps.First(); + carousel.CurrentBeatmap = beatmap; + debounceQueueSelection(beatmap); return true; } }