seta hud_dynamic_follow_scale_xyz "1 1 1" "HUD following scale for the x, y and z axis"
seta hud_dynamic_shake 1 "shake the HUD when hurt"
-seta hud_dynamic_shake_damage_max 90 "damage value at which the HUD shake effect is maximum"
+seta hud_dynamic_shake_damage_max 130 "damage value at which the HUD shake effect is maximum"
seta hud_dynamic_shake_damage_min 10 "damage value at which the HUD shake effect is minimum"
-seta hud_dynamic_shake_scale 0.4 "HUD shake scale"
+seta hud_dynamic_shake_scale 0.2 "HUD shake scale"
seta hud_showbinds 1 "what to show in the HUD to indicate certain keys to press: 0 display commands, 1 bound keys, 2 both"
seta hud_showbinds_limit 2 "maximum number of bound keys to show for a command. 0 for unlimited"
HUD_Mod_CTF_Reset();
}
-float autocvar_hud_dynamic_shake;
-float autocvar_hud_dynamic_shake_damage_max;
-float autocvar_hud_dynamic_shake_damage_min;
-float autocvar_hud_dynamic_shake_scale;
+float autocvar_hud_dynamic_shake = 1;
+float autocvar_hud_dynamic_shake_damage_max = 130;
+float autocvar_hud_dynamic_shake_damage_min = 10;
+float autocvar_hud_dynamic_shake_scale = 0.2;
float hud_dynamic_shake_x[10] = {0, 1, -0.7, 0.5, -0.3, 0.2, -0.1, 0.1, 0.0, 0};
float hud_dynamic_shake_y[10] = {0, 0.4, 0.8, -0.2, -0.6, 0.0, 0.3, 0.1, -0.1, 0};
bool Hud_Shake_Update()
if(autocvar_hud_dynamic_shake > 0)
{
+ static float old_health = 0;
+ float health = max(-1, STAT(HEALTH));
if(hud_dynamic_shake_factor == -1) // don't allow the effect for this frame
+ {
hud_dynamic_shake_factor = 0;
+ old_health = health;
+ }
else
{
- static float old_health = 0;
- float health = max(-1, STAT(HEALTH));
float new_hud_dynamic_shake_factor = 0;
if (old_health - health >= autocvar_hud_dynamic_shake_damage_min
&& autocvar_hud_dynamic_shake_damage_max > autocvar_hud_dynamic_shake_damage_min
#ifndef KEEP_ROLL
float rick;
float f;
- if(autocvar_cl_rollkillspeed)
- f = max(0, (1 - frametime * autocvar_cl_rollkillspeed));
- else
+ static float rollkill;
+ if (STAT(HEALTH) > 0 || STAT(HEALTH) == -666 || STAT(HEALTH) == -2342)
+ {
f = 0;
+ // reset roll when passing through a warpzone that change player's roll angle
+ if(autocvar_cl_rollkillspeed)
+ f = max(0, (1 - frametime * autocvar_cl_rollkillspeed));
+ if(rollkill)
+ rollkill = 0;
+ }
+ else
+ {
+ f = 1;
+ // roll the view when killed (v_deathtilt)
+ if(autocvar_cl_rollkillspeed)
+ {
+ rollkill += frametime * autocvar_cl_rollkillspeed;
+ f = min(1, rollkill);
+ }
+ else if(rollkill)
+ rollkill = 0;
+ }
rick = getproperty(VF_CL_VIEWANGLES_Z);
rick *= f;