From 747d9e2c213018807c000ea74c2553f2b756ca06 Mon Sep 17 00:00:00 2001 From: div0 Date: Mon, 13 Apr 2009 10:35:06 +0000 Subject: [PATCH] leave the "oldorigin" field on player entities alone, so SV_CheckStuck manages it alone this fixes issues where you can fall through the map at high netfps git-svn-id: svn://svn.icculus.org/nexuiz/trunk@6480 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/qcsrc/server/cl_client.qc | 7 ++++--- data/qcsrc/server/cl_player.qc | 2 +- data/qcsrc/server/defs.qh | 2 ++ 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/data/qcsrc/server/cl_client.qc b/data/qcsrc/server/cl_client.qc index 8cda801ab..a620aead9 100644 --- a/data/qcsrc/server/cl_client.qc +++ b/data/qcsrc/server/cl_client.qc @@ -548,7 +548,7 @@ void PutObserverInServer (void) self.view_ofs = PL_VIEW_OFS; setorigin (self, spot.origin); setsize (self, '0 0 0', '0 0 0'); - self.oldorigin = self.origin; + self.prevorigin = self.origin; self.items = 0; self.weapons = 0; self.model = ""; @@ -836,6 +836,7 @@ void PutClientInServer (void) setorigin (self, spot.origin + '0 0 1' * (1 - self.mins_z - 24)); // don't reset back to last position, even if new position is stuck in solid self.oldorigin = self.origin; + self.prevorigin = self.origin; if(g_arena) { @@ -2318,7 +2319,7 @@ void PlayerPreThink (void) vector dist; // calculate player movement (in 2 dimensions only, so jumping on one spot doesn't count as movement) - dist = self.oldorigin - self.origin; + dist = self.prevorigin - self.origin; dist_z = 0; self.lms_traveled_distance += fabs(vlen(dist)); @@ -2343,7 +2344,7 @@ void PlayerPreThink (void) } } - self.oldorigin = self.origin; + self.prevorigin = self.origin; if ((self.BUTTON_CROUCH && !self.hook.state) || self.health <= g_bloodloss) { diff --git a/data/qcsrc/server/cl_player.qc b/data/qcsrc/server/cl_player.qc index b3be513bc..2fa3f1dc7 100644 --- a/data/qcsrc/server/cl_player.qc +++ b/data/qcsrc/server/cl_player.qc @@ -60,7 +60,7 @@ void CopyBody(float keepvelocity) //self.weapon = oldself.weapon; setorigin(self, oldself.origin); setsize(self, oldself.mins, oldself.maxs); - self.oldorigin = oldself.origin; + self.prevorigin = oldself.origin; self.reset = SUB_Remove; Drag_MoveDrag(oldself, self); diff --git a/data/qcsrc/server/defs.qh b/data/qcsrc/server/defs.qh index 4b1172053..d6f03e8bb 100644 --- a/data/qcsrc/server/defs.qh +++ b/data/qcsrc/server/defs.qh @@ -560,3 +560,5 @@ void Drag_MoveDrag(entity from, entity to); .entity soundentity; .float ammo_fuel; + +.vector prevorigin; -- 2.39.2