diff --git a/osu.Game.Tests/Visual/TestCasePlaySongSelect.cs b/osu.Game.Tests/Visual/TestCasePlaySongSelect.cs
index d87a8d0056..29060ceb12 100644
--- a/osu.Game.Tests/Visual/TestCasePlaySongSelect.cs
+++ b/osu.Game.Tests/Visual/TestCasePlaySongSelect.cs
@@ -87,10 +87,7 @@ namespace osu.Game.Tests.Visual
usage.Migrate();
Dependencies.Cache(rulesets = new RulesetStore(factory));
- Dependencies.Cache(manager = new BeatmapManager(LocalStorage, factory, rulesets, null, null)
- {
- DefaultBeatmap = defaultBeatmap = Beatmap.Default
- });
+ Dependencies.Cache(manager = new BeatmapManager(LocalStorage, factory, rulesets, null, null, null, defaultBeatmap = Beatmap.Default));
Beatmap.SetDefault();
}
diff --git a/osu.Game/Beatmaps/BeatmapManager.cs b/osu.Game/Beatmaps/BeatmapManager.cs
index 58c0819075..73fd5da22c 100644
--- a/osu.Game/Beatmaps/BeatmapManager.cs
+++ b/osu.Game/Beatmaps/BeatmapManager.cs
@@ -59,7 +59,7 @@ namespace osu.Game.Beatmaps
///
/// A default representation of a WorkingBeatmap to use when no beatmap is available.
///
- public WorkingBeatmap DefaultBeatmap { get; set; }
+ public readonly WorkingBeatmap DefaultBeatmap;
public override string[] HandledExtensions => new[] { ".osz" };
@@ -77,16 +77,19 @@ namespace osu.Game.Beatmaps
private readonly List currentDownloads = new List();
- public BeatmapManager(Storage storage, IDatabaseContextFactory contextFactory, RulesetStore rulesets, APIAccess api, AudioManager audioManager, IIpcHost importHost = null)
+ public BeatmapManager(Storage storage, IDatabaseContextFactory contextFactory, RulesetStore rulesets, APIAccess api, AudioManager audioManager, IIpcHost importHost = null,
+ WorkingBeatmap defaultBeatmap = null)
: base(storage, contextFactory, new BeatmapStore(contextFactory), importHost)
{
- beatmaps = (BeatmapStore)ModelStore;
- beatmaps.BeatmapHidden += b => BeatmapHidden?.Invoke(b);
- beatmaps.BeatmapRestored += b => BeatmapRestored?.Invoke(b);
-
this.rulesets = rulesets;
this.api = api;
this.audioManager = audioManager;
+
+ DefaultBeatmap = defaultBeatmap;
+
+ beatmaps = (BeatmapStore)ModelStore;
+ beatmaps.BeatmapHidden += b => BeatmapHidden?.Invoke(b);
+ beatmaps.BeatmapRestored += b => BeatmapRestored?.Invoke(b);
}
protected override void Populate(BeatmapSetInfo beatmapSet, ArchiveReader archive)
diff --git a/osu.Game/OsuGameBase.cs b/osu.Game/OsuGameBase.cs
index 0f1819d55b..002ef6ec32 100644
--- a/osu.Game/OsuGameBase.cs
+++ b/osu.Game/OsuGameBase.cs
@@ -153,9 +153,12 @@ namespace osu.Game
dependencies.Cache(API);
dependencies.CacheAs(API);
+ var defaultBeatmap = new DummyWorkingBeatmap(this);
+ beatmap = new OsuBindableBeatmap(defaultBeatmap, Audio);
+
dependencies.Cache(RulesetStore = new RulesetStore(contextFactory));
dependencies.Cache(FileStore = new FileStore(contextFactory, Host.Storage));
- dependencies.Cache(BeatmapManager = new BeatmapManager(Host.Storage, contextFactory, RulesetStore, API, Audio, Host));
+ dependencies.Cache(BeatmapManager = new BeatmapManager(Host.Storage, contextFactory, RulesetStore, API, Audio, Host, defaultBeatmap));
dependencies.Cache(ScoreManager = new ScoreManager(RulesetStore, BeatmapManager, Host.Storage, contextFactory, Host));
dependencies.Cache(KeyBindingStore = new KeyBindingStore(contextFactory, RulesetStore));
dependencies.Cache(SettingsStore = new SettingsStore(contextFactory));
@@ -166,10 +169,6 @@ namespace osu.Game
fileImporters.Add(ScoreManager);
fileImporters.Add(SkinManager);
- var defaultBeatmap = new DummyWorkingBeatmap(this);
- beatmap = new OsuBindableBeatmap(defaultBeatmap, Audio);
- BeatmapManager.DefaultBeatmap = defaultBeatmap;
-
// tracks play so loud our samples can't keep up.
// this adds a global reduction of track volume for the time being.
Audio.Track.AddAdjustment(AdjustableProperty.Volume, new BindableDouble(0.8));