diff --git a/osu.Desktop.VisualTests/Tests/TestCaseGamefield.cs b/osu.Desktop.VisualTests/Tests/TestCaseGamefield.cs index ede430478e..767fb0dffb 100644 --- a/osu.Desktop.VisualTests/Tests/TestCaseGamefield.cs +++ b/osu.Desktop.VisualTests/Tests/TestCaseGamefield.cs @@ -8,6 +8,8 @@ using osu.Framework.MathUtils; using osu.Framework.Screens.Testing; using osu.Framework.Timing; using osu.Game.Beatmaps; +using osu.Game.Beatmaps.IO; +using osu.Game.Database; using osu.Game.Modes.Catch.UI; using osu.Game.Modes.Mania.UI; using osu.Game.Modes.Objects; @@ -41,10 +43,19 @@ namespace osu.Desktop.VisualTests.Tests time += RNG.Next(50, 500); } - Beatmap beatmap = new Beatmap + WorkingBeatmap beatmap = new TestWorkingBeatmap(new Beatmap { - HitObjects = objects - }; + HitObjects = objects, + BeatmapInfo = new BeatmapInfo + { + Metadata = new BeatmapMetadata + { + Artist = @"Unknown", + Title = @"Sample Beatmap", + Author = @"peppy", + } + } + }); Add(new Drawable[] { @@ -83,5 +94,16 @@ namespace osu.Desktop.VisualTests.Tests } }); } + + private class TestWorkingBeatmap : WorkingBeatmap + { + public TestWorkingBeatmap(Beatmap beatmap) + : base(beatmap.BeatmapInfo, beatmap.BeatmapInfo.BeatmapSet) + { + Beatmap = beatmap; + } + + protected override ArchiveReader GetReader() => null; + } } } diff --git a/osu.Game.Modes.Catch/CatchRuleset.cs b/osu.Game.Modes.Catch/CatchRuleset.cs index 2cdd35cf3a..31599bbc44 100644 --- a/osu.Game.Modes.Catch/CatchRuleset.cs +++ b/osu.Game.Modes.Catch/CatchRuleset.cs @@ -15,7 +15,7 @@ namespace osu.Game.Modes.Catch { public class CatchRuleset : Ruleset { - public override HitRenderer CreateHitRendererWith(Beatmap beatmap) => new CatchHitRenderer(beatmap); + public override HitRenderer CreateHitRendererWith(WorkingBeatmap beatmap) => new CatchHitRenderer(beatmap); public override IEnumerable GetModsFor(ModType type) { diff --git a/osu.Game.Modes.Catch/UI/CatchHitRenderer.cs b/osu.Game.Modes.Catch/UI/CatchHitRenderer.cs index 1537227d8f..a8b2d48760 100644 --- a/osu.Game.Modes.Catch/UI/CatchHitRenderer.cs +++ b/osu.Game.Modes.Catch/UI/CatchHitRenderer.cs @@ -11,7 +11,7 @@ namespace osu.Game.Modes.Catch.UI { public class CatchHitRenderer : HitRenderer { - public CatchHitRenderer(Beatmap beatmap) + public CatchHitRenderer(WorkingBeatmap beatmap) : base(beatmap) { } diff --git a/osu.Game.Modes.Mania/ManiaRuleset.cs b/osu.Game.Modes.Mania/ManiaRuleset.cs index 0aef44cd7b..015df0c961 100644 --- a/osu.Game.Modes.Mania/ManiaRuleset.cs +++ b/osu.Game.Modes.Mania/ManiaRuleset.cs @@ -14,7 +14,7 @@ namespace osu.Game.Modes.Mania { public class ManiaRuleset : Ruleset { - public override HitRenderer CreateHitRendererWith(Beatmap beatmap) => new ManiaHitRenderer(beatmap); + public override HitRenderer CreateHitRendererWith(WorkingBeatmap beatmap) => new ManiaHitRenderer(beatmap); public override IEnumerable GetModsFor(ModType type) { diff --git a/osu.Game.Modes.Mania/UI/ManiaHitRenderer.cs b/osu.Game.Modes.Mania/UI/ManiaHitRenderer.cs index 911742b222..d29a088225 100644 --- a/osu.Game.Modes.Mania/UI/ManiaHitRenderer.cs +++ b/osu.Game.Modes.Mania/UI/ManiaHitRenderer.cs @@ -13,7 +13,7 @@ namespace osu.Game.Modes.Mania.UI { private readonly int columns; - public ManiaHitRenderer(Beatmap beatmap, int columns = 5) + public ManiaHitRenderer(WorkingBeatmap beatmap, int columns = 5) : base(beatmap) { this.columns = columns; diff --git a/osu.Game.Modes.Osu/OsuRuleset.cs b/osu.Game.Modes.Osu/OsuRuleset.cs index a61bda5bb3..1b06d704f1 100644 --- a/osu.Game.Modes.Osu/OsuRuleset.cs +++ b/osu.Game.Modes.Osu/OsuRuleset.cs @@ -17,7 +17,7 @@ namespace osu.Game.Modes.Osu { public class OsuRuleset : Ruleset { - public override HitRenderer CreateHitRendererWith(Beatmap beatmap) => new OsuHitRenderer(beatmap); + public override HitRenderer CreateHitRendererWith(WorkingBeatmap beatmap) => new OsuHitRenderer(beatmap); public override IEnumerable GetBeatmapStatistics(WorkingBeatmap beatmap) => new[] { diff --git a/osu.Game.Modes.Osu/UI/OsuHitRenderer.cs b/osu.Game.Modes.Osu/UI/OsuHitRenderer.cs index 8b7606e61e..414bfd2afa 100644 --- a/osu.Game.Modes.Osu/UI/OsuHitRenderer.cs +++ b/osu.Game.Modes.Osu/UI/OsuHitRenderer.cs @@ -12,7 +12,7 @@ namespace osu.Game.Modes.Osu.UI { public class OsuHitRenderer : HitRenderer { - public OsuHitRenderer(Beatmap beatmap) + public OsuHitRenderer(WorkingBeatmap beatmap) : base(beatmap) { } diff --git a/osu.Game.Modes.Taiko/TaikoRuleset.cs b/osu.Game.Modes.Taiko/TaikoRuleset.cs index 3765862229..e8a8dcdd64 100644 --- a/osu.Game.Modes.Taiko/TaikoRuleset.cs +++ b/osu.Game.Modes.Taiko/TaikoRuleset.cs @@ -15,7 +15,7 @@ namespace osu.Game.Modes.Taiko { public class TaikoRuleset : Ruleset { - public override HitRenderer CreateHitRendererWith(Beatmap beatmap) => new TaikoHitRenderer(beatmap); + public override HitRenderer CreateHitRendererWith(WorkingBeatmap beatmap) => new TaikoHitRenderer(beatmap); public override IEnumerable GetModsFor(ModType type) { diff --git a/osu.Game.Modes.Taiko/UI/TaikoHitRenderer.cs b/osu.Game.Modes.Taiko/UI/TaikoHitRenderer.cs index dc0276aacc..fb5e38d4dc 100644 --- a/osu.Game.Modes.Taiko/UI/TaikoHitRenderer.cs +++ b/osu.Game.Modes.Taiko/UI/TaikoHitRenderer.cs @@ -11,7 +11,7 @@ namespace osu.Game.Modes.Taiko.UI { public class TaikoHitRenderer : HitRenderer { - public TaikoHitRenderer(Beatmap beatmap) + public TaikoHitRenderer(WorkingBeatmap beatmap) : base(beatmap) { } diff --git a/osu.Game/Modes/Ruleset.cs b/osu.Game/Modes/Ruleset.cs index 54137b2402..1dcd452541 100644 --- a/osu.Game/Modes/Ruleset.cs +++ b/osu.Game/Modes/Ruleset.cs @@ -31,7 +31,7 @@ namespace osu.Game.Modes public abstract ScoreProcessor CreateScoreProcessor(int hitObjectCount = 0); - public abstract HitRenderer CreateHitRendererWith(Beatmap beatmap); + public abstract HitRenderer CreateHitRendererWith(WorkingBeatmap beatmap); public abstract HitObjectParser CreateHitObjectParser(); diff --git a/osu.Game/Modes/UI/HitRenderer.cs b/osu.Game/Modes/UI/HitRenderer.cs index e08570522f..27d2cf693f 100644 --- a/osu.Game/Modes/UI/HitRenderer.cs +++ b/osu.Game/Modes/UI/HitRenderer.cs @@ -55,9 +55,9 @@ namespace osu.Game.Modes.UI private Container content; - protected HitRenderer(Beatmap beatmap) + protected HitRenderer(WorkingBeatmap beatmap) { - Beatmap = CreateBeatmapConverter().Convert(beatmap); + Beatmap = CreateBeatmapConverter().Convert(beatmap.Beatmap); RelativeSizeAxes = Axes.Both; diff --git a/osu.Game/Screens/Play/Player.cs b/osu.Game/Screens/Play/Player.cs index 1a71543786..71ac67601a 100644 --- a/osu.Game/Screens/Play/Player.cs +++ b/osu.Game/Screens/Play/Player.cs @@ -128,7 +128,7 @@ namespace osu.Game.Screens.Play OnQuit = Exit }; - hitRenderer = ruleset.CreateHitRendererWith(beatmap); + hitRenderer = ruleset.CreateHitRendererWith(Beatmap); if (ReplayInputHandler != null) {