diff --git a/osu.Game.Tests/Beatmaps/Formats/OsuLegacyDecoderTest.cs b/osu.Game.Tests/Beatmaps/Formats/OsuLegacyDecoderTest.cs index d5b9e46183..7eddb2a7dc 100644 --- a/osu.Game.Tests/Beatmaps/Formats/OsuLegacyDecoderTest.cs +++ b/osu.Game.Tests/Beatmaps/Formats/OsuLegacyDecoderTest.cs @@ -1,8 +1,10 @@ using System; using System.IO; using NUnit.Framework; +using OpenTK; using OpenTK.Graphics; using osu.Game.Beatmaps.Formats; +using osu.Game.Beatmaps.Objects.Osu; using osu.Game.Beatmaps.Samples; using osu.Game.GameModes.Play; using osu.Game.Tests.Resources; @@ -37,8 +39,8 @@ namespace osu.Game.Tests.Beatmaps.Formats Assert.AreEqual("Renatus", meta.Title); Assert.AreEqual("Renatus", meta.TitleUnicode); } - } - + } + [Test] public void TestDecodeGeneral() { @@ -55,8 +57,8 @@ namespace osu.Game.Tests.Beatmaps.Formats Assert.AreEqual(false, beatmap.LetterboxInBreaks); Assert.AreEqual(false, beatmap.WidescreenStoryboard); } - } - + } + [Test] public void TestDecodeEditor() { @@ -78,8 +80,8 @@ namespace osu.Game.Tests.Beatmaps.Formats Assert.AreEqual(4, beatmap.GridSize); Assert.AreEqual(2, beatmap.TimelineZoom); } - } - + } + [Test] public void TestDecodeDifficulty() { @@ -95,8 +97,8 @@ namespace osu.Game.Tests.Beatmaps.Formats Assert.AreEqual(1.8f, difficulty.SliderMultiplier); Assert.AreEqual(2, difficulty.SliderTickRate); } - } - + } + [Test] public void TestDecodeColors() { @@ -117,6 +119,25 @@ namespace osu.Game.Tests.Beatmaps.Formats for (int i = 0; i < expected.Length; i++) Assert.AreEqual(expected[i], beatmap.ComboColors[i]); } + } + + [Test] public void TestDecodeHitObjects() + { + var decoder = new OsuLegacyDecoder(); + using (var stream = Resource.OpenResource("Soleily - Renatus (Gamu) [Insane].osu")) + { + var beatmap = decoder.Decode(new StreamReader(stream)); + var slider = beatmap.HitObjects[0] as Slider; + Assert.IsNotNull(slider); + Assert.AreEqual(new Vector2(192, 168), slider.Position); + Assert.AreEqual(956, slider.StartTime); + Assert.AreEqual(SampleType.None, slider.Sample.Type); + var circle = beatmap.HitObjects[1] as Circle; + Assert.IsNotNull(circle); + Assert.AreEqual(new Vector2(304, 56), circle.Position); + Assert.AreEqual(1285, circle.StartTime); + Assert.AreEqual(SampleType.Clap, circle.Sample.Type); + } } } } \ No newline at end of file diff --git a/osu.Game/Beatmaps/Objects/Osu/OsuBaseHit.cs b/osu.Game/Beatmaps/Objects/Osu/OsuBaseHit.cs index 1f069677c9..7db848eeaf 100644 --- a/osu.Game/Beatmaps/Objects/Osu/OsuBaseHit.cs +++ b/osu.Game/Beatmaps/Objects/Osu/OsuBaseHit.cs @@ -44,7 +44,7 @@ namespace osu.Game.Beatmaps.Objects.Osu } result.Position = new Vector2(int.Parse(split[0]), int.Parse(split[1])); result.StartTime = double.Parse(split[2]); - result.Sample = new HitSampleInfo { Type = (SampleType)int.Parse(split[3]) }; + result.Sample = new HitSampleInfo { Type = (SampleType)int.Parse(split[4]) }; result.NewCombo = combo; // TODO: "addition" field return result;