From 7c0e99c5a86c0c28e1399e36c8cdf5a32271c143 Mon Sep 17 00:00:00 2001 From: Dan Balasescu Date: Wed, 7 Sep 2022 00:11:51 +0900 Subject: [PATCH] Decode Geki/Katu from legacy taiko scores into LargeBonus --- .../Formats/LegacyScoreDecoderTest.cs | 18 +++++++++++ .../Resources/Replays/taiko-replay.osr | Bin 0 -> 237 bytes .../Scoring/Legacy/ScoreInfoExtensions.cs | 28 +++++++++++++++--- 3 files changed, 42 insertions(+), 4 deletions(-) create mode 100644 osu.Game.Tests/Resources/Replays/taiko-replay.osr diff --git a/osu.Game.Tests/Beatmaps/Formats/LegacyScoreDecoderTest.cs b/osu.Game.Tests/Beatmaps/Formats/LegacyScoreDecoderTest.cs index aa6fc1f309..cd6e5e7919 100644 --- a/osu.Game.Tests/Beatmaps/Formats/LegacyScoreDecoderTest.cs +++ b/osu.Game.Tests/Beatmaps/Formats/LegacyScoreDecoderTest.cs @@ -67,6 +67,24 @@ namespace osu.Game.Tests.Beatmaps.Formats } } + [Test] + public void TestDecodeTaikoReplay() + { + var decoder = new TestLegacyScoreDecoder(); + + using (var resourceStream = TestResources.OpenResource("Replays/taiko-replay.osr")) + { + var score = decoder.Parse(resourceStream); + + Assert.AreEqual(1, score.ScoreInfo.Ruleset.OnlineID); + Assert.AreEqual(4, score.ScoreInfo.Statistics[HitResult.Great]); + Assert.AreEqual(2, score.ScoreInfo.Statistics[HitResult.LargeBonus]); + Assert.AreEqual(4, score.ScoreInfo.MaxCombo); + + Assert.That(score.Replay.Frames, Is.Not.Empty); + } + } + [TestCase(3, true)] [TestCase(6, false)] [TestCase(LegacyBeatmapDecoder.LATEST_VERSION, false)] diff --git a/osu.Game.Tests/Resources/Replays/taiko-replay.osr b/osu.Game.Tests/Resources/Replays/taiko-replay.osr new file mode 100644 index 0000000000000000000000000000000000000000..986b3116ab25f62dcb67514b8f52941cddab9b75 GIT binary patch literal 237 zcmZSN=rUpCRxmU*PqQ>jN;EJ_HcqxoN;FS4NKLXxNl8jJvox|WwB+W>P0h|uOvx`U zRpeGMNi{Y$H#9XgPc=7Av^2LcO*A!6v@}XiG&3+yPE9gmVE_RpF!@23fdRzlU|`@D zG%_?ct})OvHr6pUG%%?#)JZt7C`od{EsiLlidY5)1qLgKE(Qj%9;dkG`r7Op-o=T* z*CL8GF^jI?N!zpE@#WrB&!a^VpByr7JWzVO{9Crhvo#`$>L1#cZ&WQ%Oui9fe{Qpf Vr?FkmyS