]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
HUD hit indicator: bound cl_hit_indicator_fade_alpha and cl_hit_indicator_fade_time...
authorterencehill <piuntn@gmail.com>
Wed, 14 Feb 2024 22:27:15 +0000 (23:27 +0100)
committerterencehill <piuntn@gmail.com>
Wed, 14 Feb 2024 22:27:15 +0000 (23:27 +0100)
qcsrc/client/view.qc
qcsrc/client/view.qh
xonotic-client.cfg

index b2524b4553b030182a3851675ef15b6747915ce5..211076f8393ad4f811464070c8039e38cc6e2863 100644 (file)
@@ -753,10 +753,12 @@ void View_EventChase(entity this)
        }
 }
 
-#define HITINDICATOR_EXPIRED(i) (time >= HitIndicator_time[i] + autocvar_cl_hit_indicator_fade_time)
+#define HITINDICATOR_EXPIRED(i) (time >= HitIndicator_time[i] + HitIndicator_fade_time)
 
 void HitIndicatorUpdate(float dmg, entity attacker)
 {
+       HitIndicator_fade_time = bound(0.1, autocvar_cl_hit_indicator_fade_time, 2);
+
        int i = 0;
        int first_free_spot = -1;
        for (i = 0; i < HITINDICATOR_MAX_COUNT; ++i)
@@ -811,8 +813,8 @@ void HitIndicatorShow()
                        ofs = -ofs;
                }
                org = scr_center + ofs;
-               float alpha = autocvar_cl_hit_indicator_fade_alpha;
-               alpha *= 1 - (time - HitIndicator_time[i]) / autocvar_cl_hit_indicator_fade_time;
+               float alpha = bound(0, autocvar_cl_hit_indicator_fade_alpha, 1);
+               alpha *= 1 - (time - HitIndicator_time[i]) / HitIndicator_fade_time;
                float size = autocvar_cl_hit_indicator_size;
                size = map_bound_ranges(HitIndicator_damage[i], 30, 90, size, size * 2);
                drawspritearrow(org, ang, '1 0 0', alpha, size, true);
index 73412793e5e4b512a828c5db4487e606f9251392..758653d6abbca45ad4afe4cb980b2ace1897b0b7 100644 (file)
@@ -103,6 +103,7 @@ const int HITINDICATOR_MAX_COUNT = 10;
 entity HitIndicator_attacker[HITINDICATOR_MAX_COUNT];
 float HitIndicator_damage[HITINDICATOR_MAX_COUNT];
 int HitIndicator_time[HITINDICATOR_MAX_COUNT];
+float HitIndicator_fade_time;
 
 void calc_followmodel_ofs(entity view);
 
index 3815bdddaf176b90d349b6ebda0b8733a4676f21..be016c423235efc63436322215860a024ae2a7c9 100644 (file)
@@ -202,7 +202,7 @@ seta cl_voice_directional 1 "0 = all voices are non-directional, 1 = all voices
 seta cl_voice_directional_taunt_attenuation 0.5 "this defines the distance from which taunts can be heard"
 
 seta cl_hit_indicator 1 "show a 2d directional indicator around the screen center when a player hits you"
-seta cl_hit_indicator_fade_time 1.5 "how long hit indicator takes to fade away"
+seta cl_hit_indicator_fade_time 1.5 "how long hit indicator takes to fade away in seconds (max 2 seconds)"
 seta cl_hit_indicator_fade_alpha 0.8 "initial hit indicator alpha"
 seta cl_hit_indicator_radius 0.15 "show the directional indicator at this percentage of the screen from the center"
 seta cl_hit_indicator_size 1.1 "hit indicator size"