diff --git a/osu.Desktop/osu!.res b/osu.Desktop/osu!.res index 72bbe57578..7c70e30401 100644 Binary files a/osu.Desktop/osu!.res and b/osu.Desktop/osu!.res differ diff --git a/osu.Game/Beatmaps/Drawable/BeatmapGroup.cs b/osu.Game/Beatmaps/Drawable/BeatmapGroup.cs index 1e433922a6..c66a6ad259 100644 --- a/osu.Game/Beatmaps/Drawable/BeatmapGroup.cs +++ b/osu.Game/Beatmaps/Drawable/BeatmapGroup.cs @@ -51,11 +51,15 @@ namespace osu.Game.Beatmaps.Drawable difficulties.Show(); header.State = PanelSelectedState.Selected; + if (SelectedPanel != null) + SelectedPanel.State = PanelSelectedState.Selected; break; case BeatmapGroupState.Collapsed: FadeTo(0.8f, 250); header.State = PanelSelectedState.NotSelected; + if (SelectedPanel != null) + SelectedPanel.State = PanelSelectedState.NotSelected; difficulties.Hide(); break; } diff --git a/osu.Game/OsuGame.cs b/osu.Game/OsuGame.cs index 85c4f19431..c80562fc11 100644 --- a/osu.Game/OsuGame.cs +++ b/osu.Game/OsuGame.cs @@ -109,10 +109,7 @@ namespace osu.Game } }); - (modeStack = new Intro - { - Beatmap = Beatmap - }).Preload(this, d => + (modeStack = new Intro()).Preload(this, d => { mainContent.Add(d); diff --git a/osu.Game/Overlays/MusicController.cs b/osu.Game/Overlays/MusicController.cs index e1d12fa6dd..5f7ffe6243 100644 --- a/osu.Game/Overlays/MusicController.cs +++ b/osu.Game/Overlays/MusicController.cs @@ -229,7 +229,7 @@ namespace osu.Game.Overlays void preferUnicode_changed(object sender, EventArgs e) { - updateDisplay(current, false); + updateDisplay(current, TransformDirection.None); } private void workingChanged(object sender = null, EventArgs e = null) @@ -237,7 +237,7 @@ namespace osu.Game.Overlays if (beatmapSource.Value == current) return; bool audioEquals = current?.BeatmapInfo.AudioEquals(beatmapSource.Value.BeatmapInfo) ?? false; current = beatmapSource.Value; - updateDisplay(current, audioEquals ? null : (bool?)true); + updateDisplay(current, audioEquals ? TransformDirection.None : TransformDirection.Next); appendToHistory(current.BeatmapInfo); } @@ -298,10 +298,10 @@ namespace osu.Game.Overlays current.Track.Start(); beatmapSource.Value = current; }); - updateDisplay(current, isNext); + updateDisplay(current, isNext ? TransformDirection.Next : TransformDirection.Prev); } - private void updateDisplay(WorkingBeatmap beatmap, bool? isNext) + private void updateDisplay(WorkingBeatmap beatmap, TransformDirection direction) { if (beatmap.Beatmap == null) //todo: we may need to display some default text here (currently in the constructor). @@ -315,20 +315,21 @@ namespace osu.Game.Overlays Add(newBackground); - if (isNext == true) + switch (direction) { - newBackground.Position = new Vector2(400, 0); - newBackground.MoveToX(0, 500, EasingTypes.OutCubic); - backgroundSprite.MoveToX(-400, 500, EasingTypes.OutCubic); + case TransformDirection.Next: + newBackground.Position = new Vector2(400, 0); + newBackground.MoveToX(0, 500, EasingTypes.OutCubic); + backgroundSprite.MoveToX(-400, 500, EasingTypes.OutCubic); + break; + case TransformDirection.Prev: + newBackground.Position = new Vector2(-400, 0); + newBackground.MoveToX(0, 500, EasingTypes.OutCubic); + backgroundSprite.MoveToX(400, 500, EasingTypes.OutCubic); + break; } - else if (isNext == false) - { - newBackground.Position = new Vector2(-400, 0); - newBackground.MoveToX(0, 500, EasingTypes.OutCubic); - backgroundSprite.MoveToX(400, 500, EasingTypes.OutCubic); - } - backgroundSprite.Expire(); + backgroundSprite.Expire(); backgroundSprite = newBackground; } @@ -354,6 +355,8 @@ namespace osu.Game.Overlays protected override void PopOut() => FadeOut(100); + private enum TransformDirection { None, Next, Prev } + private class MusicControllerBackground : BufferedContainer { private Sprite sprite;