diff --git a/isometric-park-fna/Engines/SoundEffectsEngine.cs b/isometric-park-fna/Engines/SoundEffectsEngine.cs --- a/isometric-park-fna/Engines/SoundEffectsEngine.cs +++ b/isometric-park-fna/Engines/SoundEffectsEngine.cs @@ -55,10 +55,11 @@ in ReadMessages()) { var sound = sounds[message.SoundName]; + var volume = message.Volume ?? this.volume; + if (!muted) { - sound.Play(this.volume, this.pitch, this.pan); + sound.Play(volume, this.pitch, this.pan); } - } } diff --git a/isometric-park-fna/Messages/PlaySoundMessage.cs b/isometric-park-fna/Messages/PlaySoundMessage.cs --- a/isometric-park-fna/Messages/PlaySoundMessage.cs +++ b/isometric-park-fna/Messages/PlaySoundMessage.cs @@ -2,11 +2,14 @@ using Encompass; +#nullable enable + namespace isometricparkfna.Messages { public struct PlaySoundMessage : IMessage { public string SoundName; + public float? Volume; } } diff --git a/isometric-park-fna/UI/OptionsWindow.cs b/isometric-park-fna/UI/OptionsWindow.cs --- a/isometric-park-fna/UI/OptionsWindow.cs +++ b/isometric-park-fna/UI/OptionsWindow.cs @@ -158,7 +158,7 @@ ImGui.DragFloat("##Sfx", ref newSoundEffectVolume, 0.005f, 0.0f, 1.0f, "%.2f"); if ((newSoundEffectVolume != prevSoundEffectVolume) && ImGui.IsItemDeactivatedAfterEdit()) { - bridgeEngine.playSoundMessages.Add(new PlaySoundMessage { SoundName = "Bell" }); + bridgeEngine.playSoundMessages.Add(new PlaySoundMessage { SoundName = "Bell", Volume = newSoundEffectVolume}); prevSoundEffectVolume = newSoundEffectVolume; }