diff --git a/osu.Game/Database/ScoreDatabase.cs b/osu.Game/Database/ScoreDatabase.cs
index 9dacf26e33..2ffe12d50e 100644
--- a/osu.Game/Database/ScoreDatabase.cs
+++ b/osu.Game/Database/ScoreDatabase.cs
@@ -2,11 +2,13 @@
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
using System;
+using System.Collections.Generic;
using System.IO;
using System.Linq;
using osu.Framework.Platform;
using osu.Game.IO.Legacy;
using osu.Game.IPC;
+using osu.Game.Rulesets.Replays;
using osu.Game.Rulesets.Scoring;
using SharpCompress.Compressors.LZMA;
using SQLite.Net;
@@ -104,13 +106,43 @@ namespace osu.Game.Database
using (var lzma = new LzmaStream(properties, replayInStream, compressedSize, outSize))
using (var reader = new StreamReader(lzma))
- score.Replay = score.CreateReplay(reader);
+ score.Replay = createReplay(reader);
}
}
return score;
}
+ ///
+ /// Creates a replay which is read from a stream.
+ ///
+ /// The stream reader.
+ /// The replay.
+ private Replay createReplay(StreamReader reader)
+ {
+ var frames = new List();
+
+ float lastTime = 0;
+
+ foreach (var l in reader.ReadToEnd().Split(','))
+ {
+ var split = l.Split('|');
+
+ if (split.Length < 4 || float.Parse(split[0]) < 0) continue;
+
+ lastTime += float.Parse(split[0]);
+
+ frames.Add(new ReplayFrame(
+ lastTime,
+ float.Parse(split[1]),
+ 384 - float.Parse(split[2]),
+ (ReplayButtonState)int.Parse(split[3])
+ ));
+ }
+
+ return new Replay { Frames = frames };
+ }
+
protected override void Prepare(bool reset = false)
{
}
diff --git a/osu.Game/Rulesets/Scoring/Score.cs b/osu.Game/Rulesets/Scoring/Score.cs
index 5496057304..a87c59606b 100644
--- a/osu.Game/Rulesets/Scoring/Score.cs
+++ b/osu.Game/Rulesets/Scoring/Score.cs
@@ -49,36 +49,6 @@ namespace osu.Game.Rulesets.Scoring
[JsonProperty(@"created_at")]
public DateTime Date;
- ///
- /// Creates a replay which is read from a stream.
- ///
- /// The stream reader.
- /// The replay.
- public virtual Replay CreateReplay(StreamReader reader)
- {
- var frames = new List();
-
- float lastTime = 0;
-
- foreach (var l in reader.ReadToEnd().Split(','))
- {
- var split = l.Split('|');
-
- if (split.Length < 4 || float.Parse(split[0]) < 0) continue;
-
- lastTime += float.Parse(split[0]);
-
- frames.Add(new ReplayFrame(
- lastTime,
- float.Parse(split[1]),
- 384 - float.Parse(split[2]),
- (ReplayButtonState)int.Parse(split[3])
- ));
- }
-
- return new Replay { Frames = frames };
- }
-
public virtual IEnumerable Statistics => new ScoreStatistic[] { };
}
}