From 2db68df999e3bbb5d347c682b74e6c4bbdfbd88b Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Sat, 23 Dec 2017 17:20:14 +0900 Subject: [PATCH] Simplify DrawableHitObject's sample load code --- osu.Game/Audio/SampleInfo.cs | 5 +--- .../Objects/Drawables/DrawableHitObject.cs | 24 +++++++++---------- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/osu.Game/Audio/SampleInfo.cs b/osu.Game/Audio/SampleInfo.cs index 566813dd44..64a9aa50a0 100644 --- a/osu.Game/Audio/SampleInfo.cs +++ b/osu.Game/Audio/SampleInfo.cs @@ -2,9 +2,7 @@ // Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE using System; -using osu.Framework.Audio; using osu.Framework.Audio.Sample; -using osu.Framework.Configuration; namespace osu.Game.Audio { @@ -19,8 +17,7 @@ namespace osu.Game.Audio public SampleChannel GetChannel(SampleManager manager) { var channel = manager.Get($"Gameplay/{Bank}-{Name}"); - - channel.AddAdjustment(AdjustableProperty.Volume, new BindableDouble(Volume / 100.0)); + channel.Volume.Value = Volume / 100.0; return channel; } diff --git a/osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs b/osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs index 8cfdda0413..47c4c4d05c 100644 --- a/osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs +++ b/osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs @@ -84,25 +84,23 @@ namespace osu.Game.Rulesets.Objects.Drawables [BackgroundDependencyLoader] private void load(AudioManager audio) { - foreach (SampleInfo sample in HitObject.Samples) + if (HitObject.SampleControlPoint == null) + throw new ArgumentNullException(nameof(HitObject.SampleControlPoint), $"{nameof(HitObject)} must always have an attached {nameof(HitObject.SampleControlPoint)}."); + + foreach (SampleInfo s in HitObject.Samples) { - if (HitObject.SampleControlPoint == null) - throw new ArgumentNullException(nameof(HitObject.SampleControlPoint), $"{nameof(HitObject)} must always have an attached {nameof(HitObject.SampleControlPoint)}."); + SampleInfo localSampleInfo = new SampleInfo + { + Bank = s.Bank ?? HitObject.SampleControlPoint.SampleBank, + Name = s.Name, + Volume = s.Volume > 0 ? s.Volume : HitObject.SampleControlPoint.SampleVolume + }; - var bank = sample.Bank; - if (string.IsNullOrEmpty(bank)) - bank = HitObject.SampleControlPoint.SampleBank; - - int volume = sample.Volume; - if (volume == 0) - volume = HitObject.SampleControlPoint.SampleVolume; - - SampleChannel channel = audio.Sample.Get($@"Gameplay/{bank}-{sample.Name}"); + SampleChannel channel = localSampleInfo.GetChannel(audio.Sample); if (channel == null) continue; - channel.Volume.Value = volume; Samples.Add(channel); } }