diff --git a/osu.Desktop.Deploy/App.config b/osu.Desktop.Deploy/App.config index bd464a0453..d1da144f50 100644 --- a/osu.Desktop.Deploy/App.config +++ b/osu.Desktop.Deploy/App.config @@ -21,16 +21,4 @@ Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/maste - - - - - - - - - - - - \ No newline at end of file diff --git a/osu.Desktop.Tests/app.config b/osu.Desktop.Tests/app.config deleted file mode 100644 index 855da39b10..0000000000 --- a/osu.Desktop.Tests/app.config +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/osu.Desktop.Tests/osu.Desktop.Tests.csproj b/osu.Desktop.Tests/osu.Desktop.Tests.csproj index 07495311e0..e89308bbb9 100644 --- a/osu.Desktop.Tests/osu.Desktop.Tests.csproj +++ b/osu.Desktop.Tests/osu.Desktop.Tests.csproj @@ -100,7 +100,6 @@ osu.licenseheader - diff --git a/osu.Desktop.VisualTests/app.config b/osu.Desktop.VisualTests/app.config deleted file mode 100644 index 855da39b10..0000000000 --- a/osu.Desktop.VisualTests/app.config +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/osu.Desktop.VisualTests/osu.Desktop.VisualTests.csproj b/osu.Desktop.VisualTests/osu.Desktop.VisualTests.csproj index bea56b5cd0..81ee7185bb 100644 --- a/osu.Desktop.VisualTests/osu.Desktop.VisualTests.csproj +++ b/osu.Desktop.VisualTests/osu.Desktop.VisualTests.csproj @@ -23,6 +23,7 @@ false LocalIntranet v4.5 + true publish\ true Disk @@ -114,7 +115,6 @@ osu.licenseheader - diff --git a/osu.Desktop/OsuGameDesktop.cs b/osu.Desktop/OsuGameDesktop.cs index 3b827f2809..27f58c27e1 100644 --- a/osu.Desktop/OsuGameDesktop.cs +++ b/osu.Desktop/OsuGameDesktop.cs @@ -30,9 +30,9 @@ namespace osu.Desktop base.LoadComplete(); versionManager.LoadAsync(this); - ModeChanged += m => + ScreenChanged += s => { - if (!versionManager.IsAlive && m is Intro) + if (!versionManager.IsAlive && s is Intro) Add(versionManager); }; } diff --git a/osu.Desktop/app.config b/osu.Desktop/app.config deleted file mode 100644 index 1ff0a7f133..0000000000 --- a/osu.Desktop/app.config +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/osu.Desktop/osu.Desktop.csproj b/osu.Desktop/osu.Desktop.csproj index 7e85f09d8c..48e0db1d99 100644 --- a/osu.Desktop/osu.Desktop.csproj +++ b/osu.Desktop/osu.Desktop.csproj @@ -23,6 +23,7 @@ false LocalIntranet v4.5 + true publish\ true Disk @@ -153,7 +154,6 @@ osu.licenseheader - diff --git a/osu.Game.Modes.Catch/Objects/CatchConverter.cs b/osu.Game.Modes.Catch/Objects/CatchConverter.cs deleted file mode 100644 index 31ddc73f61..0000000000 --- a/osu.Game.Modes.Catch/Objects/CatchConverter.cs +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright (c) 2007-2017 ppy Pty Ltd . -// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE - -using System.Collections.Generic; -using osu.Game.Modes.Objects; -using osu.Game.Modes.Osu.Objects; -using osu.Game.Beatmaps; - -namespace osu.Game.Modes.Catch.Objects -{ - internal class CatchConverter : HitObjectConverter - { - public override List Convert(Beatmap beatmap) - { - List output = new List(); - - foreach (HitObject i in beatmap.HitObjects) - { - CatchBaseHit h = i as CatchBaseHit; - - if (h == null) - { - OsuHitObject o = i as OsuHitObject; - - if (o == null) throw new HitObjectConvertException(@"Catch", i); - - h = new Fruit - { - StartTime = o.StartTime, - Position = o.Position.X, - }; - } - - output.Add(h); - } - - return output; - } - } -} diff --git a/osu.Game.Modes.Catch/osu.Game.Modes.Catch.csproj b/osu.Game.Modes.Catch/osu.Game.Modes.Catch.csproj index 10abb312fc..4646d0cd6c 100644 --- a/osu.Game.Modes.Catch/osu.Game.Modes.Catch.csproj +++ b/osu.Game.Modes.Catch/osu.Game.Modes.Catch.csproj @@ -50,7 +50,6 @@ - diff --git a/osu.Game.Modes.Mania/Objects/ManiaConverter.cs b/osu.Game.Modes.Mania/Objects/ManiaConverter.cs deleted file mode 100644 index 7e1183c0e3..0000000000 --- a/osu.Game.Modes.Mania/Objects/ManiaConverter.cs +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright (c) 2007-2017 ppy Pty Ltd . -// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE - -using System; -using System.Collections.Generic; -using osu.Game.Modes.Objects; -using osu.Game.Modes.Osu.Objects; -using osu.Game.Beatmaps; - -namespace osu.Game.Modes.Mania.Objects -{ - internal class ManiaConverter : HitObjectConverter - { - private readonly int columns; - - public ManiaConverter(int columns) - { - this.columns = columns; - } - - public override List Convert(Beatmap beatmap) - { - List output = new List(); - - foreach (HitObject i in beatmap.HitObjects) - { - ManiaBaseHit h = i as ManiaBaseHit; - - if (h == null) - { - OsuHitObject o = i as OsuHitObject; - - if (o == null) throw new HitObjectConvertException(@"Mania", i); - - h = new Note - { - StartTime = o.StartTime, - Column = (int)Math.Round(o.Position.X / 512 * columns) - }; - } - - output.Add(h); - } - - return output; - } - } -} diff --git a/osu.Game.Modes.Mania/app.config b/osu.Game.Modes.Mania/app.config deleted file mode 100644 index 855da39b10..0000000000 --- a/osu.Game.Modes.Mania/app.config +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/osu.Game.Modes.Mania/osu.Game.Modes.Mania.csproj b/osu.Game.Modes.Mania/osu.Game.Modes.Mania.csproj index 66e46f9e48..2e281f54bb 100644 --- a/osu.Game.Modes.Mania/osu.Game.Modes.Mania.csproj +++ b/osu.Game.Modes.Mania/osu.Game.Modes.Mania.csproj @@ -52,7 +52,6 @@ - @@ -82,7 +81,6 @@ osu.licenseheader - diff --git a/osu.Game.Modes.Osu/app.config b/osu.Game.Modes.Osu/app.config deleted file mode 100644 index 88af66254d..0000000000 --- a/osu.Game.Modes.Osu/app.config +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - diff --git a/osu.Game.Modes.Osu/osu.Game.Modes.Osu.csproj b/osu.Game.Modes.Osu/osu.Game.Modes.Osu.csproj index c214c881d8..47f94b1026 100644 --- a/osu.Game.Modes.Osu/osu.Game.Modes.Osu.csproj +++ b/osu.Game.Modes.Osu/osu.Game.Modes.Osu.csproj @@ -100,7 +100,6 @@ osu.licenseheader - diff --git a/osu.Game.Modes.Taiko/Objects/TaikoConverter.cs b/osu.Game.Modes.Taiko/Objects/TaikoConverter.cs deleted file mode 100644 index 3a0e07e390..0000000000 --- a/osu.Game.Modes.Taiko/Objects/TaikoConverter.cs +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright (c) 2007-2017 ppy Pty Ltd . -// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE - -using System.Collections.Generic; -using osu.Game.Modes.Objects; -using osu.Game.Modes.Osu.Objects; -using osu.Game.Beatmaps; - -namespace osu.Game.Modes.Taiko.Objects -{ - internal class TaikoConverter : HitObjectConverter - { - public override List Convert(Beatmap beatmap) - { - List output = new List(); - - foreach (HitObject i in beatmap.HitObjects) - { - TaikoBaseHit h = i as TaikoBaseHit; - - if (h == null) - { - OsuHitObject o = i as OsuHitObject; - - if (o == null) throw new HitObjectConvertException(@"Taiko", i); - - h = new TaikoBaseHit - { - StartTime = o.StartTime, - }; - } - - output.Add(h); - } - - return output; - } - } -} diff --git a/osu.Game.Modes.Taiko/osu.Game.Modes.Taiko.csproj b/osu.Game.Modes.Taiko/osu.Game.Modes.Taiko.csproj index 0089e84532..2cc45682ef 100644 --- a/osu.Game.Modes.Taiko/osu.Game.Modes.Taiko.csproj +++ b/osu.Game.Modes.Taiko/osu.Game.Modes.Taiko.csproj @@ -51,7 +51,6 @@ - diff --git a/osu.Game.Tests/app.config b/osu.Game.Tests/app.config deleted file mode 100644 index 855da39b10..0000000000 --- a/osu.Game.Tests/app.config +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/osu.Game.Tests/osu.Game.Tests.csproj b/osu.Game.Tests/osu.Game.Tests.csproj index 96682dd1ce..d01aa77e02 100644 --- a/osu.Game.Tests/osu.Game.Tests.csproj +++ b/osu.Game.Tests/osu.Game.Tests.csproj @@ -52,7 +52,6 @@ osu.licenseheader - diff --git a/osu.Game/Modes/Objects/HitObjectConverter.cs b/osu.Game/Modes/Objects/HitObjectConverter.cs deleted file mode 100644 index d7c6113af1..0000000000 --- a/osu.Game/Modes/Objects/HitObjectConverter.cs +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (c) 2007-2017 ppy Pty Ltd . -// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE - -using osu.Game.Beatmaps; -using System; -using System.Collections.Generic; - -namespace osu.Game.Modes.Objects -{ - public abstract class HitObjectConverter - where T : HitObject - { - public abstract List Convert(Beatmap beatmap); - } - - public class HitObjectConvertException : Exception - { - public HitObject Input { get; } - public HitObjectConvertException(string modeName, HitObject input) - : base($@"Can't convert from {input.GetType().Name} to {modeName} HitObject!") - { - Input = input; - } - } -} diff --git a/osu.Game/OsuGame.cs b/osu.Game/OsuGame.cs index 79ffcfcadf..8aa3a63d26 100644 --- a/osu.Game/OsuGame.cs +++ b/osu.Game/OsuGame.cs @@ -258,13 +258,13 @@ namespace osu.Game return false; } - public event Action ModeChanged; + public event Action ScreenChanged; private Container mainContent; private Container overlayContent; - private void modeChanged(Screen newScreen) + private void screenChanged(Screen newScreen) { //central game mode change logic. if ((newScreen as OsuScreen)?.ShowOverlays != true) @@ -281,7 +281,7 @@ namespace osu.Game if (newScreen is MainMenu) Cursor.FadeIn(100); - ModeChanged?.Invoke(newScreen); + ScreenChanged?.Invoke(newScreen); if (newScreen == null) Exit(); @@ -315,12 +315,12 @@ namespace osu.Game newScreen.ModePushed += screenAdded; newScreen.Exited += screenRemoved; - modeChanged(newScreen); + screenChanged(newScreen); } private void screenRemoved(Screen newScreen) { - modeChanged(newScreen); + screenChanged(newScreen); } } } diff --git a/osu.Game/Overlays/MusicController.cs b/osu.Game/Overlays/MusicController.cs index 1b4692f50e..5c9adb6b20 100644 --- a/osu.Game/Overlays/MusicController.cs +++ b/osu.Game/Overlays/MusicController.cs @@ -210,7 +210,7 @@ namespace osu.Game.Overlays } } }; - + this.beatmaps = beatmaps; trackManager = osuGame.Audio.Track; preferUnicode = config.GetBindable(OsuConfig.ShowUnicode); @@ -247,6 +247,8 @@ namespace osu.Game.Overlays if (current.Track.HasCompleted && !current.Track.Looping) next(); } + else + playButton.Icon = FontAwesome.fa_play_circle_o; } private void preferUnicode_changed(object sender, EventArgs e) @@ -337,12 +339,16 @@ namespace osu.Game.Overlays Task.Run(() => { if (beatmap?.Beatmap == null) - //todo: we may need to display some default text here (currently in the constructor). - return; - - BeatmapMetadata metadata = beatmap.Beatmap.BeatmapInfo.Metadata; - title.Text = unicodeString(metadata.Title, metadata.TitleUnicode); - artist.Text = unicodeString(metadata.Artist, metadata.ArtistUnicode); + { + title.Text = @"Nothing to play"; + artist.Text = @"Nothing to play"; + } + else + { + BeatmapMetadata metadata = beatmap.Beatmap.BeatmapInfo.Metadata; + title.Text = unicodeString(metadata.Title, metadata.TitleUnicode); + artist.Text = unicodeString(metadata.Artist, metadata.ArtistUnicode); + } }); MusicControllerBackground newBackground; diff --git a/osu.Game/Screens/Select/BeatmapInfoWedge.cs b/osu.Game/Screens/Select/BeatmapInfoWedge.cs index bc3b16079c..eac12f7370 100644 --- a/osu.Game/Screens/Select/BeatmapInfoWedge.cs +++ b/osu.Game/Screens/Select/BeatmapInfoWedge.cs @@ -16,7 +16,6 @@ using osu.Game.Database; using osu.Framework.Graphics.Colour; using osu.Game.Beatmaps.Drawables; using System.Linq; -using osu.Framework.Extensions.IEnumerableExtensions; using osu.Framework.MathUtils; using osu.Game.Graphics; using osu.Game.Graphics.Sprites; @@ -56,8 +55,15 @@ namespace osu.Game.Screens.Select public void UpdateBeatmap(WorkingBeatmap beatmap) { if (beatmap?.BeatmapInfo == null) + { + FadeOut(250); + beatmapInfoContainer?.FadeOut(250); + beatmapInfoContainer?.Expire(); + beatmapInfoContainer = null; return; + } + FadeIn(250); var lastContainer = beatmapInfoContainer; float newDepth = lastContainer?.Depth + 1 ?? 0; @@ -84,7 +90,7 @@ namespace osu.Game.Screens.Select })); //get statistics fromt he current ruleset. - Ruleset.GetRuleset(beatmap.BeatmapInfo.Mode).GetBeatmapStatistics(beatmap).ForEach(s => labels.Add(new InfoLabel(s))); + labels.AddRange(Ruleset.GetRuleset(beatmap.BeatmapInfo.Mode).GetBeatmapStatistics(beatmap).Select(s => new InfoLabel(s))); } (beatmapInfoContainer = new BufferedContainer @@ -191,7 +197,7 @@ namespace osu.Game.Screens.Select private string getBPMRange(Beatmap beatmap) { - double bpmMax = beatmap.BPMMaximum; + double bpmMax = beatmap.BPMMaximum; double bpmMin = beatmap.BPMMinimum; if (Precision.AlmostEquals(bpmMin, bpmMax)) return Math.Round(bpmMin) + "bpm"; diff --git a/osu.Game/Screens/Select/CarouselContainer.cs b/osu.Game/Screens/Select/CarouselContainer.cs index e7fba05036..6a5bb2dc94 100644 --- a/osu.Game/Screens/Select/CarouselContainer.cs +++ b/osu.Game/Screens/Select/CarouselContainer.cs @@ -57,6 +57,7 @@ namespace osu.Game.Screens.Select public void RemoveGroup(BeatmapGroup group) { groups.Remove(group); + panels.Remove(group.Header); foreach (var p in group.BeatmapPanels) panels.Remove(p); diff --git a/osu.Game/Screens/Select/PlaySongSelect.cs b/osu.Game/Screens/Select/PlaySongSelect.cs index 86f9bc30cf..09ba794122 100644 --- a/osu.Game/Screens/Select/PlaySongSelect.cs +++ b/osu.Game/Screens/Select/PlaySongSelect.cs @@ -326,8 +326,7 @@ namespace osu.Game.Screens.Select backgroundModeBeatmap.FadeTo(1, 250); } - if (beatmap != null) - beatmapInfoWedge.UpdateBeatmap(beatmap); + beatmapInfoWedge.UpdateBeatmap(beatmap); } /// @@ -337,11 +336,11 @@ namespace osu.Game.Screens.Select { base.OnBeatmapChanged(beatmap); - beatmap.Mods.BindTo(modSelect.SelectedMods); + beatmap?.Mods.BindTo(modSelect.SelectedMods); //todo: change background in selectionChanged instead; support per-difficulty backgrounds. changeBackground(beatmap); - carousel.SelectBeatmap(beatmap.BeatmapInfo); + carousel.SelectBeatmap(beatmap?.BeatmapInfo); } /// diff --git a/osu.Game/app.config b/osu.Game/app.config deleted file mode 100644 index 855da39b10..0000000000 --- a/osu.Game/app.config +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/osu.Game/osu.Game.csproj b/osu.Game/osu.Game.csproj index 3d4a763cb8..4a8f41b1ac 100644 --- a/osu.Game/osu.Game.csproj +++ b/osu.Game/osu.Game.csproj @@ -114,7 +114,6 @@ - @@ -342,7 +341,6 @@ osu.licenseheader -