[nexuiz-commits] r8741 - trunk/data/qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Sat Mar 6 10:38:58 EST 2010


Author: div0
Date: 2010-03-06 10:38:58 -0500 (Sat, 06 Mar 2010)
New Revision: 8741

Modified:
   trunk/data/qcsrc/server/cl_physics.qc
Log:
fix sideways friction negative

Modified: trunk/data/qcsrc/server/cl_physics.qc
===================================================================
--- trunk/data/qcsrc/server/cl_physics.qc	2010-03-06 11:18:20 UTC (rev 8740)
+++ trunk/data/qcsrc/server/cl_physics.qc	2010-03-06 15:38:58 UTC (rev 8741)
@@ -470,18 +470,19 @@
 		// 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;
 	



More information about the nexuiz-commits mailing list