Merge branch 'terencehill/v_deathtilt_fix' into 'master'
[xonotic/xonotic-data.pk3dir.git] / qcsrc / lib / warpzone / client.qc
index 04f0378..44ae46f 100644 (file)
@@ -241,7 +241,6 @@ void WarpZone_FixView()
 {
        entity e;
        vector org, ang, nearclip, corner0, corner1, corner2, corner3, o;
-       float f;
 
        warpzone_save_view_origin = org = getpropertyvec(VF_ORIGIN);
        warpzone_save_view_angles = ang = getpropertyvec(VF_ANGLES);
@@ -257,16 +256,21 @@ void WarpZone_FixView()
                WarpZone_View_Outside();
 
 #ifndef KEEP_ROLL
-       float rick;
-       if(autocvar_cl_rollkillspeed)
-               f = max(0, (1 - frametime * autocvar_cl_rollkillspeed));
-       else
-               f = 0;
-
-       rick = getproperty(VF_CL_VIEWANGLES_Z);
-       rick *= f;
-       setproperty(VF_CL_VIEWANGLES_Z, rick);
-       ang.z *= f;
+       static float rollkill;
+       if (STAT(HEALTH) <= 0 && STAT(HEALTH) != -666 && STAT(HEALTH) != -2342)
+       {
+               if(autocvar_cl_rollkillspeed)
+               {
+                       rollkill += frametime * autocvar_cl_rollkillspeed;
+                       rollkill = min(1, rollkill);
+               }
+               float rick;
+               rick = getproperty(VF_CL_VIEWANGLES_Z) * rollkill;
+               setproperty(VF_CL_VIEWANGLES_Z, rick);
+               ang.z *= rollkill;
+       }
+       else if(rollkill)
+               rollkill = 0;
 #endif
 
        setproperty(VF_ORIGIN, org);