]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Add audio multipliers back (#22260)
authormetalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Sat, 9 Dec 2023 04:18:15 +0000 (15:18 +1100)
committerGitHub <noreply@github.com>
Sat, 9 Dec 2023 04:18:15 +0000 (15:18 +1100)
Content.Client/Audio/ContentAudioSystem.cs
Content.Client/Options/UI/Tabs/AudioTab.xaml.cs

index 3bba6864a456c62b126a8dc8cee7c5ce86aaf2fb..2dc950ee265c860091b5a7bb853ccdaa24b080a2 100644 (file)
@@ -20,6 +20,18 @@ public sealed partial class ContentAudioSystem : SharedContentAudioSystem
     private const float MinVolume = -32f;
     private const float DefaultDuration = 2f;
 
+    /*
+     * Gain multipliers for specific audio sliders.
+     * The float value will get multiplied by this when setting
+     * i.e. a gain of 0.5f x 3 will equal 1.5f which is supported in OpenAL.
+     */
+
+    public const float MasterVolumeMultiplier = 3f;
+    public const float MidiVolumeMultiplier = 0.25f;
+    public const float AmbienceMultiplier = 3f;
+    public const float AmbientMusicMultiplier = 3f;
+    public const float LobbyMultiplier = 3f;
+
     public override void Initialize()
     {
         base.Initialize();
index bb7c10c696f192efc9e46ae855c65c669730983c..80e13d4a43ed355a981f9a9fd613b7fc70bac55d 100644 (file)
@@ -1,3 +1,4 @@
+using Content.Client.Audio;
 using Content.Shared.CCVar;
 using Robust.Client.Audio;
 using Robust.Client.AutoGenerated;
@@ -83,7 +84,7 @@ namespace Content.Client.Options.UI.Tabs
 
         private void OnMasterVolumeSliderChanged(Range range)
         {
-            _audio.SetMasterGain(MasterVolumeSlider.Value / 100f);
+            _audio.SetMasterGain(MasterVolumeSlider.Value / 100f * ContentAudioSystem.MasterVolumeMultiplier);
             UpdateChanges();
         }
 
@@ -112,13 +113,13 @@ namespace Content.Client.Options.UI.Tabs
 
         private void OnApplyButtonPressed(BaseButton.ButtonEventArgs args)
         {
-            _cfg.SetCVar(CVars.AudioMasterVolume, MasterVolumeSlider.Value / 100f);
+            _cfg.SetCVar(CVars.AudioMasterVolume, MasterVolumeSlider.Value / 100f * ContentAudioSystem.MasterVolumeMultiplier);
             // Want the CVar updated values to have the multiplier applied
             // For the UI we just display 0-100 still elsewhere
-            _cfg.SetCVar(CVars.MidiVolume, MidiVolumeSlider.Value / 100f);
-            _cfg.SetCVar(CCVars.AmbienceVolume, AmbienceVolumeSlider.Value / 100f);
-            _cfg.SetCVar(CCVars.AmbientMusicVolume, AmbientMusicVolumeSlider.Value / 100f);
-            _cfg.SetCVar(CCVars.LobbyMusicVolume, LobbyVolumeSlider.Value / 100f);
+            _cfg.SetCVar(CVars.MidiVolume, MidiVolumeSlider.Value / 100f * ContentAudioSystem.MidiVolumeMultiplier);
+            _cfg.SetCVar(CCVars.AmbienceVolume, AmbienceVolumeSlider.Value / 100f * ContentAudioSystem.AmbienceMultiplier);
+            _cfg.SetCVar(CCVars.AmbientMusicVolume, AmbientMusicVolumeSlider.Value / 100f * ContentAudioSystem.AmbientMusicMultiplier);
+            _cfg.SetCVar(CCVars.LobbyMusicVolume, LobbyVolumeSlider.Value / 100f * ContentAudioSystem.LobbyMultiplier);
 
             _cfg.SetCVar(CCVars.MaxAmbientSources, (int)AmbienceSoundsSlider.Value);
 
@@ -137,11 +138,11 @@ namespace Content.Client.Options.UI.Tabs
 
         private void Reset()
         {
-            MasterVolumeSlider.Value = _cfg.GetCVar(CVars.AudioMasterVolume) * 100f;
-            MidiVolumeSlider.Value = _cfg.GetCVar(CVars.MidiVolume) * 100f;
-            AmbienceVolumeSlider.Value = _cfg.GetCVar(CCVars.AmbienceVolume) * 100f;
-            AmbientMusicVolumeSlider.Value = _cfg.GetCVar(CCVars.AmbientMusicVolume) * 100f;
-            LobbyVolumeSlider.Value = _cfg.GetCVar(CCVars.LobbyMusicVolume) * 100f;
+            MasterVolumeSlider.Value = _cfg.GetCVar(CVars.AudioMasterVolume) * 100f / ContentAudioSystem.MasterVolumeMultiplier;
+            MidiVolumeSlider.Value = _cfg.GetCVar(CVars.MidiVolume) * 100f / ContentAudioSystem.MidiVolumeMultiplier;
+            AmbienceVolumeSlider.Value = _cfg.GetCVar(CCVars.AmbienceVolume) * 100f / ContentAudioSystem.AmbienceMultiplier;
+            AmbientMusicVolumeSlider.Value = _cfg.GetCVar(CCVars.AmbientMusicVolume) * 100f / ContentAudioSystem.AmbientMusicMultiplier;
+            LobbyVolumeSlider.Value = _cfg.GetCVar(CCVars.LobbyMusicVolume) * 100f / ContentAudioSystem.LobbyMultiplier;
 
             AmbienceSoundsSlider.Value = _cfg.GetCVar(CCVars.MaxAmbientSources);
 
@@ -152,24 +153,19 @@ namespace Content.Client.Options.UI.Tabs
             UpdateChanges();
         }
 
-        private float GetGain(float value)
-        {
-            return value;
-        }
-
         private void UpdateChanges()
         {
             // y'all need jesus.
             var isMasterVolumeSame =
-                Math.Abs(MasterVolumeSlider.Value - _cfg.GetCVar(CVars.AudioMasterVolume) * 100f) < 0.01f;
+                Math.Abs(MasterVolumeSlider.Value - _cfg.GetCVar(CVars.AudioMasterVolume) * 100f / ContentAudioSystem.MasterVolumeMultiplier) < 0.01f;
             var isMidiVolumeSame =
-                Math.Abs(MidiVolumeSlider.Value - _cfg.GetCVar(CVars.MidiVolume) * 100f) < 0.01f;
+                Math.Abs(MidiVolumeSlider.Value - _cfg.GetCVar(CVars.MidiVolume) * 100f / ContentAudioSystem.MidiVolumeMultiplier) < 0.01f;
             var isAmbientVolumeSame =
-                Math.Abs(AmbienceVolumeSlider.Value - _cfg.GetCVar(CCVars.AmbienceVolume) * 100f) < 0.01f;
+                Math.Abs(AmbienceVolumeSlider.Value - _cfg.GetCVar(CCVars.AmbienceVolume) * 100f / ContentAudioSystem.AmbienceMultiplier) < 0.01f;
             var isAmbientMusicVolumeSame =
-                Math.Abs(AmbientMusicVolumeSlider.Value - _cfg.GetCVar(CCVars.AmbientMusicVolume) * 100f) < 0.01f;
+                Math.Abs(AmbientMusicVolumeSlider.Value - _cfg.GetCVar(CCVars.AmbientMusicVolume) * 100f / ContentAudioSystem.AmbientMusicMultiplier) < 0.01f;
             var isLobbyVolumeSame =
-                Math.Abs(LobbyVolumeSlider.Value - _cfg.GetCVar(CCVars.LobbyMusicVolume) * 100f) < 0.01f;
+                Math.Abs(LobbyVolumeSlider.Value - _cfg.GetCVar(CCVars.LobbyMusicVolume) * 100f / ContentAudioSystem.LobbyMultiplier) < 0.01f;
 
             var isAmbientSoundsSame = (int)AmbienceSoundsSlider.Value == _cfg.GetCVar(CCVars.MaxAmbientSources);
             var isLobbySame = LobbyMusicCheckBox.Pressed == _cfg.GetCVar(CCVars.LobbyMusicEnabled);