From 33e8e75ebaaf0ec6c49b3108f63c6324e964b71d Mon Sep 17 00:00:00 2001 From: terencehill Date: Sun, 1 May 2016 09:28:53 +0200 Subject: [PATCH] Fix cl_rollkillspeed causing the view to flicker a lot when dead if v_deathtilt is on (and chase_active is off); it now correctly smooths out transition between normal and tilted angle. Even v_idlescale was flickering the view a tiny bit because of cl_rollkillspeed (more easily noticeable with low fps) --- qcsrc/lib/warpzone/client.qc | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/qcsrc/lib/warpzone/client.qc b/qcsrc/lib/warpzone/client.qc index 6467dad35..c93dd91ee 100644 --- a/qcsrc/lib/warpzone/client.qc +++ b/qcsrc/lib/warpzone/client.qc @@ -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); -- 2.39.2