]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Add patch from Juhu/strafehud-features branch: "strafehud: add exponent cvar for...
authorJuhu <5894800-Juhu_@users.noreply.gitlab.com>
Fri, 20 Jan 2023 21:43:43 +0000 (22:43 +0100)
committerJuhu <5894800-Juhu_@users.noreply.gitlab.com>
Fri, 20 Jan 2023 21:43:43 +0000 (22:43 +0100)
_hud_common.cfg
qcsrc/client/hud/panel/strafehud.qc
qcsrc/client/hud/panel/strafehud.qh

index 1089cac6463bf98dfefedc81d959ebb2af293af8..fc1a41d16411ac8d95507b0a58bbfefb4eea1c51 100644 (file)
@@ -209,10 +209,13 @@ 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_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_interval_exponent "1" "exponent of the dynamic sound interval range of the strafe sonar"
 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_volume_exponent "1" "exponent of the dynamic volume range of the strafe sonar"
 seta hud_panel_strafehud_sonar_pitch_start "0.9" "playback speed of the strafe sonar"
 seta hud_panel_strafehud_sonar_pitch_range "0.1" "dynamic playback speed range of the strafe sonar as you approach the optimal angle"
+seta hud_panel_strafehud_sonar_pitch_exponent "1" "exponent of the dynamic playback speed range of the strafe sonar"
 seta hud_panel_strafehud_vangle "0" "set to \"1\" to enable the vertical angle indicator"
 seta hud_panel_strafehud_vangle_color "0.75 0.75 0.75" "color of the vertical angle text"
 seta hud_panel_strafehud_vangle_size "1" "size of the vertical angle text (relative to the panel height)"
index 6d82481272e82ed452a1d469bdd9db494fb9647e..1774422476257663ce37282529c9bf51b66ad577 100644 (file)
@@ -896,16 +896,16 @@ void HUD_StrafeHUD()
                 sonar_ratio = 1;
 
             float sonar_interval = max(0, autocvar_hud_panel_strafehud_sonar_interval_start);
-            sonar_interval += autocvar_hud_panel_strafehud_sonar_interval_range * sonar_ratio;
+            sonar_interval += autocvar_hud_panel_strafehud_sonar_interval_range * sonar_ratio ** max(1, autocvar_hud_panel_strafehud_sonar_interval_exponent);
             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;
 
                 float sonar_volume = bound(0, autocvar_hud_panel_strafehud_sonar_volume_start, 1);
-                sonar_volume += autocvar_hud_panel_strafehud_sonar_volume_range * sonar_ratio;
+                sonar_volume += autocvar_hud_panel_strafehud_sonar_volume_range * sonar_ratio ** max(1, autocvar_hud_panel_strafehud_sonar_volume_exponent);
 
                 float sonar_pitch = max(0, autocvar_hud_panel_strafehud_sonar_pitch_start);
-                sonar_pitch += autocvar_hud_panel_strafehud_sonar_pitch_range * sonar_ratio;
+                sonar_pitch += autocvar_hud_panel_strafehud_sonar_pitch_range * sonar_ratio ** max(1, autocvar_hud_panel_strafehud_sonar_pitch_exponent);
 
                 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 afa53f5d4d0f97953328ed1cfe467128cabe41d1..d24d30832931f8cfc389c6a633a8989f18fba7ae 100644 (file)
@@ -64,10 +64,13 @@ AUTOCVAR_SAVE(hud_panel_strafehud_sonar_audio, string, "misc/talk", "audio to pl
 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_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_interval_exponent, float, 1, "exponent of the dynamic sound interval range of the strafe sonar");
 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_volume_exponent, float, 1, "exponent of the dynamic volume range of the strafe sonar");
 AUTOCVAR_SAVE(hud_panel_strafehud_sonar_pitch_start, float, 0.9, "playback speed of the strafe sonar");
 AUTOCVAR_SAVE(hud_panel_strafehud_sonar_pitch_range, float, 0.1, "dynamic playback speed range of the strafe sonar as you approach the optimal angle");
+AUTOCVAR_SAVE(hud_panel_strafehud_sonar_pitch_exponent, float, 1, "exponent of the dynamic playback speed range of the strafe sonar");
 AUTOCVAR_SAVE(hud_panel_strafehud_vangle, bool, false, "set to \"1\" to enable the vertical angle indicator");
 AUTOCVAR_SAVE(hud_panel_strafehud_vangle_color, vector, '0.75 0.75 0.75', "color of the vertical angle text");
 AUTOCVAR_SAVE(hud_panel_strafehud_vangle_size, float, 1, "size of the vertical angle text (relative to the panel height)");