]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Fix audio fades (#23684)
authormetalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Sun, 7 Jan 2024 13:23:22 +0000 (00:23 +1100)
committerGitHub <noreply@github.com>
Sun, 7 Jan 2024 13:23:22 +0000 (00:23 +1100)
Audio refactor casualty

Content.Client/Audio/ContentAudioSystem.AmbientMusic.cs
Content.Client/Audio/ContentAudioSystem.cs

index aafd0ea63073be1be7265cbaa27241fe02b77c66..89324f22252fb04d06fe28e889aa64db8b04a21c 100644 (file)
@@ -26,7 +26,6 @@ public sealed partial class ContentAudioSystem
     [Dependency] private readonly IGameTiming _timing = default!;
     [Dependency] private readonly IPlayerManager _player = default!;
     [Dependency] private readonly IPrototypeManager _proto = default!;
-    [Dependency] private readonly IResourceCache _resource = default!;
     [Dependency] private readonly IRobustRandom _random = default!;
     [Dependency] private readonly IStateManager _state = default!;
     [Dependency] private readonly RulesSystem _rules = default!;
@@ -153,8 +152,7 @@ public sealed partial class ContentAudioSystem
         // Update still runs in lobby so just ignore it.
         if (_state.CurrentState is not GameplayState)
         {
-            Audio.Stop(_ambientMusicStream);
-            _ambientMusicStream = null;
+            _ambientMusicStream = Audio.Stop(_ambientMusicStream);
             _musicProto = null;
             return;
         }
index b5d2d4bcdc58dda51cba74c0778f01e21791facb..ae881766edaceae8c3652e5e2032ec8bda525721 100644 (file)
@@ -118,7 +118,8 @@ public sealed partial class ContentAudioSystem : SharedContentAudioSystem
             }
 
             var volume = component.Volume - change * frameTime;
-            component.Volume = MathF.Max(MinVolume, volume);
+            volume = MathF.Max(MinVolume, volume);
+            _audio.SetVolume(stream, volume, component);
 
             if (component.Volume.Equals(MinVolume))
             {
@@ -144,7 +145,8 @@ public sealed partial class ContentAudioSystem : SharedContentAudioSystem
             }
 
             var volume = component.Volume + change * frameTime;
-            component.Volume = MathF.Min(target, volume);
+            volume = MathF.Max(target, volume);
+            _audio.SetVolume(stream, volume, component);
 
             if (component.Volume.Equals(target))
             {