From fa7fd6efe30a738675bfd438da53a989a6284caa Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Wed, 29 Mar 2017 19:47:53 +0900 Subject: [PATCH 1/3] Fix mode selector not invoking a re-filter. --- osu.Game/OsuGame.cs | 2 +- osu.Game/Overlays/Toolbar/ToolbarModeSelector.cs | 5 ++--- osu.Game/Screens/Select/BeatmapCarousel.cs | 3 ++- osu.Game/Screens/Select/FilterControl.cs | 1 + osu.Game/Screens/Select/SongSelect.cs | 2 +- 5 files changed, 7 insertions(+), 6 deletions(-) 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..24251439ce 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 { 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) { From a6c8be363782605543f9bcdfbbeed3ef33316e23 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Wed, 29 Mar 2017 19:52:16 +0900 Subject: [PATCH 2/3] Increase load delay on panel backgrounds; add back missing fade. --- osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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) From 6afa6f30cc19ac5bce67428eaa548346e2425675 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Wed, 29 Mar 2017 20:01:46 +0900 Subject: [PATCH 3/3] Keep selected beatmap in centre of screen post-filter. --- osu.Game/Screens/Select/BeatmapCarousel.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/osu.Game/Screens/Select/BeatmapCarousel.cs b/osu.Game/Screens/Select/BeatmapCarousel.cs index 24251439ce..7443603c8b 100644 --- a/osu.Game/Screens/Select/BeatmapCarousel.cs +++ b/osu.Game/Screens/Select/BeatmapCarousel.cs @@ -203,6 +203,8 @@ namespace osu.Game.Screens.Select if (selectedGroup == null || selectedGroup.State == BeatmapGroupState.Hidden) SelectNext(); + else + selectGroup(selectedGroup); }; filterTask?.Cancel();