diff --git a/osu.Game/Rulesets/Objects/Legacy/HitObjectParser.cs b/osu.Game/Rulesets/Objects/Legacy/HitObjectParser.cs index c915e67ead..5031128a79 100644 --- a/osu.Game/Rulesets/Objects/Legacy/HitObjectParser.cs +++ b/osu.Game/Rulesets/Objects/Legacy/HitObjectParser.cs @@ -108,43 +108,8 @@ namespace osu.Game.Rulesets.Objects.Legacy result.StartTime = Convert.ToDouble(split[2], CultureInfo.InvariantCulture); var soundType = (LegacySoundType)int.Parse(split[4]); - - result.Samples.Add(new SampleInfo - { - Bank = normalSampleBank, - Name = SampleInfo.HIT_NORMAL, - Volume = sampleVolume - }); - - if ((soundType & LegacySoundType.Finish) > 0) - { - result.Samples.Add(new SampleInfo - { - Bank = addSampleBank, - Name = SampleInfo.HIT_FINISH, - Volume = sampleVolume - }); - } - - if ((soundType & LegacySoundType.Whistle) > 0) - { - result.Samples.Add(new SampleInfo - { - Bank = addSampleBank, - Name = SampleInfo.HIT_WHISTLE, - Volume = sampleVolume - }); - } - - if ((soundType & LegacySoundType.Clap) > 0) - { - result.Samples.Add(new SampleInfo - { - Bank = addSampleBank, - Name = SampleInfo.HIT_CLAP, - Volume = sampleVolume - }); - } + result.Samples = convertSoundType(soundType, normalSampleBank, addSampleBank); + result.Samples.ForEach(s => s.Volume = sampleVolume); return result; } @@ -202,6 +167,49 @@ namespace osu.Game.Rulesets.Objects.Legacy /// The hit object. protected abstract HitObject CreateSpinner(Vector2 position, double endTime); + private List convertSoundType(LegacySoundType type, string normalSampleBank, string addSampleBank) + { + List soundTypes = new List(); + + if ((type & LegacySoundType.Normal) > 0) + { + soundTypes.Add(new SampleInfo + { + Bank = normalSampleBank, + Name = SampleInfo.HIT_NORMAL + }); + } + + if ((type & LegacySoundType.Finish) > 0) + { + soundTypes.Add(new SampleInfo + { + Bank = addSampleBank, + Name = SampleInfo.HIT_FINISH + }); + } + + if ((type & LegacySoundType.Whistle) > 0) + { + soundTypes.Add(new SampleInfo + { + Bank = addSampleBank, + Name = SampleInfo.HIT_WHISTLE + }); + } + + if ((type & LegacySoundType.Clap) > 0) + { + soundTypes.Add(new SampleInfo + { + Bank = addSampleBank, + Name = SampleInfo.HIT_CLAP + }); + } + + return soundTypes; + } + [Flags] private enum LegacySoundType {