[nexuiz-commits] r7437 - trunk/data/qcsrc/server
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Fri Aug 14 06:57:20 EDT 2009
Author: div0
Date: 2009-08-14 06:57:19 -0400 (Fri, 14 Aug 2009)
New Revision: 7437
Modified:
trunk/data/qcsrc/server/cl_physics.qc
Log:
don't cause roundoff errors if we don't really NEED to clip the velocity to keyboard axes
Modified: trunk/data/qcsrc/server/cl_physics.qc
===================================================================
--- trunk/data/qcsrc/server/cl_physics.qc 2009-08-14 10:27:25 UTC (rev 7436)
+++ trunk/data/qcsrc/server/cl_physics.qc 2009-08-14 10:57:19 UTC (rev 7437)
@@ -509,38 +509,41 @@
// TODO implement this for engine cl_movement code too (basically, clipping to the four axes)
wishvel_x = fabs(self.movement_x);
wishvel_y = fabs(self.movement_y);
- wishvel_z = 0;
- wishspeed = vlen(wishvel);
- if(wishvel_x >= 2 * wishvel_y)
+ if(wishvel_x != 0 && wishvel_y != 0 && wishvel_x != wishvel_y)
{
- // pure X motion
- if(self.movement_x > 0)
- self.movement_x = wishspeed;
+ wishvel_z = 0;
+ wishspeed = vlen(wishvel);
+ if(wishvel_x >= 2 * wishvel_y)
+ {
+ // pure X motion
+ if(self.movement_x > 0)
+ self.movement_x = wishspeed;
+ else
+ self.movement_x = -wishspeed;
+ self.movement_y = 0;
+ }
+ else if(wishvel_y >= 2 * wishvel_x)
+ {
+ // pure Y motion
+ self.movement_x = 0;
+ if(self.movement_y > 0)
+ self.movement_y = wishspeed;
+ else
+ self.movement_y = -wishspeed;
+ }
else
- self.movement_x = -wishspeed;
- self.movement_y = 0;
+ {
+ // diagonal
+ if(self.movement_x > 0)
+ self.movement_x = 0.70710678118654752440 * wishspeed;
+ else
+ self.movement_x = -0.70710678118654752440 * wishspeed;
+ if(self.movement_y > 0)
+ self.movement_y = 0.70710678118654752440 * wishspeed;
+ else
+ self.movement_y = -0.70710678118654752440 * wishspeed;
+ }
}
- else if(wishvel_y >= 2 * wishvel_x)
- {
- // pure Y motion
- self.movement_x = 0;
- if(self.movement_y > 0)
- self.movement_y = wishspeed;
- else
- self.movement_y = -wishspeed;
- }
- else
- {
- // diagonal
- if(self.movement_x > 0)
- self.movement_x = 0.70710678118654752440 * wishspeed;
- else
- self.movement_x = -0.70710678118654752440 * wishspeed;
- if(self.movement_y > 0)
- self.movement_y = 0.70710678118654752440 * wishspeed;
- else
- self.movement_y = -0.70710678118654752440 * wishspeed;
- }
}
buttons = self.BUTTON_ATCK + 2 * self.BUTTON_JUMP + 4 * self.BUTTON_ATCK2 + 8 * self.BUTTON_ZOOM + 16 * self.BUTTON_CROUCH + 32 * self.BUTTON_HOOK + 64 * self.BUTTON_USE + 128 * (self.movement_x < 0) + 256 * (self.movement_x > 0) + 512 * (self.movement_y < 0) + 1024 * (self.movement_y > 0);
More information about the nexuiz-commits
mailing list