From 69af5d3390e731809942ea4d7ac373e0041bb817 Mon Sep 17 00:00:00 2001 From: div0 Date: Sat, 6 Mar 2010 15:38:58 +0000 Subject: [PATCH] fix sideways friction negative git-svn-id: svn://svn.icculus.org/nexuiz/trunk@8741 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/qcsrc/server/cl_physics.qc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/data/qcsrc/server/cl_physics.qc b/data/qcsrc/server/cl_physics.qc index 3ffdd834c..af4759882 100644 --- a/data/qcsrc/server/cl_physics.qc +++ b/data/qcsrc/server/cl_physics.qc @@ -470,18 +470,19 @@ void PM_Accelerate(vector wishdir, float wishspeed, float wishspeed0, float acce // negative: only apply so much sideways friction to stay below the speed you could get by "braking" { float f, fminimum; - f = (1 - frametime * wishspeed * sidefric); + f = max(0, 1 + frametime * wishspeed * sidefric); fminimum = (vel_xy_backward*vel_xy_backward - vel_straight*vel_straight) / (vel_perpend*vel_perpend); + // this cannot be > 1 if(fminimum <= 0) - vel_perpend = vel_perpend * f; + vel_perpend = vel_perpend * max(0, f); else { fminimum = sqrt(fminimum); - vel_perpend = vel_perpend * bound(fminimum, f, 1); + vel_perpend = vel_perpend * max(fminimum, f); } } else - vel_perpend = vel_perpend * (1 - frametime * wishspeed * sidefric); + vel_perpend = vel_perpend * max(0, 1 - frametime * wishspeed * sidefric); vel_xy = vel_straight * wishdir + vel_perpend; -- 2.39.2