From 85a0fa17b9dda5dc18a1e262a4e93ea1420daaa2 Mon Sep 17 00:00:00 2001 From: Rudolf Polzer Date: Fri, 9 Dec 2011 09:28:11 +0100 Subject: [PATCH] clear antilag data when respawning (fixes #862) --- qcsrc/server/antilag.qc | 13 +++++++++++++ qcsrc/server/antilag.qh | 1 + qcsrc/server/cl_client.qc | 2 ++ 3 files changed, 16 insertions(+) diff --git a/qcsrc/server/antilag.qc b/qcsrc/server/antilag.qc index 0f6434eab..3db0540fc 100644 --- a/qcsrc/server/antilag.qc +++ b/qcsrc/server/antilag.qc @@ -111,3 +111,16 @@ void antilag_restore(entity e) setorigin(e, e.antilag_saved_origin); e.antilag_takenback = FALSE; } + +void antilag_clear(entity e) +{ + float i; + + antilag_restore(e); + for(i = 0; i < ANTILAG_MAX_ORIGINS; ++i) + { + e.(antilag_times[i]) = -2342; + e.(antilag_origins[i]) = self.origin; + } + e.antilag_index = 0; +} diff --git a/qcsrc/server/antilag.qh b/qcsrc/server/antilag.qh index 08e33e2e5..cadb45a14 100644 --- a/qcsrc/server/antilag.qh +++ b/qcsrc/server/antilag.qh @@ -3,6 +3,7 @@ vector antilag_takebackorigin(entity e, float t); vector antilag_takebackavgvelocity(entity e, float t0, float t1); void antilag_takeback(entity e, float t); void antilag_restore(entity e); +void antilag_clear(entity e); #define ANTILAG_LATENCY(e) min(0.4, e.ping * 0.001) // add one ticrate? diff --git a/qcsrc/server/cl_client.qc b/qcsrc/server/cl_client.qc index 1a6c9124b..3d393755a 100644 --- a/qcsrc/server/cl_client.qc +++ b/qcsrc/server/cl_client.qc @@ -1051,6 +1051,8 @@ void PutClientInServer (void) if(!self.alivetime) self.alivetime = time; + + antilag_clear(self); } else if(self.classname == "observer" || (g_ca && !allowed_to_spawn)) { PutObserverInServer (); } -- 2.39.2