]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Fix invalid UI hover/click sounds breaking client (#30067)
authorPieter-Jan Briers <pieterjan.briers+git@gmail.com>
Mon, 15 Jul 2024 14:55:05 +0000 (16:55 +0200)
committerGitHub <noreply@github.com>
Mon, 15 Jul 2024 14:55:05 +0000 (16:55 +0200)
fixes #29561

Content.Client/Audio/AudioUIController.cs

index ef903672fd0d7229802f02c6f759dc752031abb3..16e1edd252371dc4667b1465d6b12aeaef8e4dd8 100644 (file)
@@ -54,7 +54,7 @@ public sealed class AudioUIController : UIController
     {
         if (!string.IsNullOrEmpty(value))
         {
-            var resource = _cache.GetResource<AudioResource>(value);
+            var resource = GetSoundOrFallback(value, CCVars.UIClickSound.DefaultValue);
             var source =
                 _audioManager.CreateAudioSource(resource);
 
@@ -77,7 +77,7 @@ public sealed class AudioUIController : UIController
     {
         if (!string.IsNullOrEmpty(value))
         {
-            var hoverResource = _cache.GetResource<AudioResource>(value);
+            var hoverResource = GetSoundOrFallback(value, CCVars.UIHoverSound.DefaultValue);
             var hoverSource =
                 _audioManager.CreateAudioSource(hoverResource);
 
@@ -95,4 +95,12 @@ public sealed class AudioUIController : UIController
             UIManager.SetHoverSound(null);
         }
     }
+
+    private AudioResource GetSoundOrFallback(string path, string fallback)
+    {
+        if (!_cache.TryGetResource(path, out AudioResource? resource))
+            return _cache.GetResource<AudioResource>(fallback);
+
+        return resource;
+    }
 }