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
-