diff --git a/osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs b/osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs index f8986b2ecd..e26dcac16b 100644 --- a/osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs +++ b/osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs @@ -36,7 +36,8 @@ namespace osu.Game.Beatmaps.Drawables new DelayedLoadContainer { RelativeSizeAxes = Axes.Both, - TimeBeforeLoad = 100, + TimeBeforeLoad = 300, + FinishedLoading = d => d.FadeInFromZero(400, EasingTypes.Out), Children = new[] { new PanelBackground(beatmap) diff --git a/osu.Game/OsuGame.cs b/osu.Game/OsuGame.cs index fdcc250d0f..66196670b8 100644 --- a/osu.Game/OsuGame.cs +++ b/osu.Game/OsuGame.cs @@ -199,7 +199,7 @@ namespace osu.Game { Depth = -3, OnHome = delegate { intro?.ChildScreen?.MakeCurrent(); }, - OnPlayModeChange = delegate (PlayMode m) { PlayMode.Value = m; }, + OnPlayModeChange = m => PlayMode.Value = m, }).LoadAsync(this, t => { PlayMode.ValueChanged += delegate { Toolbar.SetGameMode(PlayMode.Value); }; diff --git a/osu.Game/Overlays/Toolbar/ToolbarModeSelector.cs b/osu.Game/Overlays/Toolbar/ToolbarModeSelector.cs index be28857de6..d20564bd03 100644 --- a/osu.Game/Overlays/Toolbar/ToolbarModeSelector.cs +++ b/osu.Game/Overlays/Toolbar/ToolbarModeSelector.cs @@ -65,14 +65,13 @@ namespace osu.Game.Overlays.Toolbar foreach (PlayMode m in Ruleset.PlayModes) { - var localMode = m; modeButtons.Add(new ToolbarModeButton { Mode = m, Action = delegate { - SetGameMode(localMode); - OnPlayModeChange?.Invoke(localMode); + SetGameMode(m); + OnPlayModeChange?.Invoke(m); } }); } diff --git a/osu.Game/Screens/Select/BeatmapCarousel.cs b/osu.Game/Screens/Select/BeatmapCarousel.cs index e947d12f22..7443603c8b 100644 --- a/osu.Game/Screens/Select/BeatmapCarousel.cs +++ b/osu.Game/Screens/Select/BeatmapCarousel.cs @@ -181,7 +181,8 @@ namespace osu.Game.Screens.Select { if (!IsLoaded) return; - criteria = newCriteria ?? criteria ?? new FilterCriteria(); + if (newCriteria != null) + criteria = newCriteria; Action perform = delegate { @@ -202,6 +203,8 @@ namespace osu.Game.Screens.Select if (selectedGroup == null || selectedGroup.State == BeatmapGroupState.Hidden) SelectNext(); + else + selectGroup(selectedGroup); }; filterTask?.Cancel(); diff --git a/osu.Game/Screens/Select/FilterControl.cs b/osu.Game/Screens/Select/FilterControl.cs index d6537ca0d6..5445847da5 100644 --- a/osu.Game/Screens/Select/FilterControl.cs +++ b/osu.Game/Screens/Select/FilterControl.cs @@ -175,6 +175,7 @@ namespace osu.Game.Screens.Select if (osu != null) playMode.BindTo(osu.PlayMode); + playMode.ValueChanged += (s, e) => FilterChanged?.Invoke(CreateCriteria()); } protected override bool OnMouseDown(InputState state, MouseDownEventArgs args) => true; diff --git a/osu.Game/Screens/Select/SongSelect.cs b/osu.Game/Screens/Select/SongSelect.cs index 6eb26d22cb..656adf0d62 100644 --- a/osu.Game/Screens/Select/SongSelect.cs +++ b/osu.Game/Screens/Select/SongSelect.cs @@ -276,7 +276,7 @@ namespace osu.Game.Screens.Select initialAddSetsTask.Cancel(); } - private void playMode_ValueChanged(object sender, EventArgs e) => carousel.Filter(); + private void playMode_ValueChanged(object sender, EventArgs e) => Beatmap.PreferredPlayMode = playMode; private void changeBackground(WorkingBeatmap beatmap) {