]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Add patch from Juhu/strafehud-features branch: "strafehud: make sonar sound interval...
authorJuhu <5894800-Juhu_@users.noreply.gitlab.com>
Wed, 18 Jan 2023 12:11:43 +0000 (13:11 +0100)
committerJuhu <5894800-Juhu_@users.noreply.gitlab.com>
Wed, 18 Jan 2023 12:20:59 +0000 (13:20 +0100)
_hud_common.cfg
qcsrc/client/hud/panel/strafehud.qc
qcsrc/client/hud/panel/strafehud.qh

index 827d405d4b50b6b3e4fe9befff923cb61b1f736c..6439c6662273f7d61cdb917a96e98b1a7bad65b5 100644 (file)
@@ -202,7 +202,8 @@ seta hud_panel_strafehud_fps_update "0.5" "update interval (in seconds) of the f
 seta hud_panel_strafehud_sonar "0" "set to \"1\" to enable the strafe sonar"
 seta hud_panel_strafehud_sonar_audio "misc/talk" "audio to play for sonar"
 seta hud_panel_strafehud_sonar_start "0.5" "how optimal from 0 to 1 your strafing angle has to be for the strafe sonar to activate"
-seta hud_panel_strafehud_sonar_interval "0.333333" "strafe sonar sound interval in seconds"
+seta hud_panel_strafehud_sonar_interval_start "0.333333" "strafe sonar sound interval in seconds"
+seta hud_panel_strafehud_sonar_interval_range "-0.222222" "dynamic sound interval range in seconds of the strafe sonar as you approach the optimal angle"
 seta hud_panel_strafehud_sonar_volume_start "0.333333" "sound volume of the strafe sonar"
 seta hud_panel_strafehud_sonar_volume_range "0.666666" "dynamic volume range of the strafe sonar as you approach the optimal angle"
 seta hud_panel_strafehud_sonar_pitch_start "0.9" "playback speed of the strafe sonar"
index 07f7cf140fabb05a16753c6126f8079dd02ae679..c4e156457ac56fd4c07ff73206d299efbff34424 100644 (file)
@@ -872,27 +872,28 @@ void HUD_StrafeHUD()
 
             // reuse strafe ratio for strafe sonar
             static float sonar_time = 0;
-            bool sonar_ready = ((time - sonar_time) >= autocvar_hud_panel_strafehud_sonar_interval) || (sonar_time == 0);
-            if(autocvar_hud_panel_strafehud_sonar && sonar_ready) {
-                float sonar_start = bound(0, autocvar_hud_panel_strafehud_sonar_start, 1);
-                if(strafe_ratio >= sonar_start) {
-                    sonar_time = time;
-
-                    float sonar_ratio = strafe_ratio - sonar_start;
-                    if(sonar_start != 1)
-                        sonar_ratio /= 1 - sonar_start;
-                    else
-                        sonar_ratio = 1;
 
-                    float sonar_volume = bound(0, autocvar_hud_panel_strafehud_sonar_volume_start, 1);
-                    sonar_volume += autocvar_hud_panel_strafehud_sonar_volume_range * sonar_ratio;
+            float sonar_start = bound(0, autocvar_hud_panel_strafehud_sonar_start, 1);
+            float sonar_ratio = strafe_ratio - sonar_start;
+            if(sonar_start != 1)
+                sonar_ratio /= 1 - sonar_start;
+            else
+                sonar_ratio = 1;
 
-                    float sonar_pitch = max(0, autocvar_hud_panel_strafehud_sonar_pitch_start);
-                    sonar_pitch += autocvar_hud_panel_strafehud_sonar_pitch_range * sonar_ratio;
+            float sonar_interval = max(0, autocvar_hud_panel_strafehud_sonar_interval_start);
+            sonar_interval += autocvar_hud_panel_strafehud_sonar_interval_range * sonar_ratio;
+            bool sonar_ready = (sonar_time == 0) || ((time - sonar_time) >= sonar_interval);
+            if(autocvar_hud_panel_strafehud_sonar && sonar_ready && (strafe_ratio >= sonar_start)) {
+                sonar_time = time;
 
-                    if(sonar_volume > 0) {
-                        sound7(csqcplayer, CH_INFO, sonarsound, bound(0, sonar_volume, 1) * VOL_BASE, ATTN_NONE, max(0.000001, sonar_pitch * 100), 0);
-                    }
+                float sonar_volume = bound(0, autocvar_hud_panel_strafehud_sonar_volume_start, 1);
+                sonar_volume += autocvar_hud_panel_strafehud_sonar_volume_range * sonar_ratio;
+
+                float sonar_pitch = max(0, autocvar_hud_panel_strafehud_sonar_pitch_start);
+                sonar_pitch += autocvar_hud_panel_strafehud_sonar_pitch_range * sonar_ratio;
+
+                if(sonar_volume > 0) {
+                    sound7(csqcplayer, CH_INFO, sonarsound, bound(0, sonar_volume, 1) * VOL_BASE, ATTN_NONE, max(0.000001, sonar_pitch * 100), 0);
                 }
             }
         }
index 4dfff4507cfb4f2a2519c320e0e2c024b4a09e98..5eaa93dbbb526befbb909f0022acc1225b09a287 100644 (file)
@@ -57,7 +57,8 @@ AUTOCVAR_SAVE(hud_panel_strafehud_fps_update, float, 0.5, "update interval (in s
 AUTOCVAR_SAVE(hud_panel_strafehud_sonar, bool, false, "set to \"1\" to enable the strafe sonar");
 AUTOCVAR_SAVE(hud_panel_strafehud_sonar_audio, string, "misc/talk", "audio to play for sonar");
 AUTOCVAR_SAVE(hud_panel_strafehud_sonar_start, float, 0.5, "how optimal from 0 to 1 your strafing angle has to be for the strafe sonar to activate");
-AUTOCVAR_SAVE(hud_panel_strafehud_sonar_interval, float, 0.333333, "strafe sonar sound interval in seconds");
+AUTOCVAR_SAVE(hud_panel_strafehud_sonar_interval_start, float, 0.333333, "strafe sonar sound interval in seconds");
+AUTOCVAR_SAVE(hud_panel_strafehud_sonar_interval_range, float, -0.222222, "dynamic sound interval range in seconds of the strafe sonar as you approach the optimal angle");
 AUTOCVAR_SAVE(hud_panel_strafehud_sonar_volume_start, float, 0.333333, "sound volume of the strafe sonar");
 AUTOCVAR_SAVE(hud_panel_strafehud_sonar_volume_range, float, 0.666666, "dynamic volume range of the strafe sonar as you approach the optimal angle");
 AUTOCVAR_SAVE(hud_panel_strafehud_sonar_pitch_start, float, 0.9, "playback speed of the strafe sonar");