From 351650c0dda9f27cdeefde6c01a3f28008324b6b Mon Sep 17 00:00:00 2001 From: Rudolf Polzer Date: Thu, 27 Oct 2011 10:28:42 +0200 Subject: [PATCH] handle an entity being antilag-takenback multiple times --- qcsrc/server/antilag.qc | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/qcsrc/server/antilag.qc b/qcsrc/server/antilag.qc index 69d291a4e..0f6434eab 100644 --- a/qcsrc/server/antilag.qc +++ b/qcsrc/server/antilag.qc @@ -3,6 +3,7 @@ .float antilag_times[ANTILAG_MAX_ORIGINS]; .float antilag_index; .vector antilag_saved_origin; +.float antilag_takenback; .float antilag_debug; @@ -89,17 +90,24 @@ vector antilag_takebackavgvelocity(entity e, float t0, float t1) void antilag_takeback(entity e, float t) { - if(e.vehicle) - antilag_takeback(e.vehicle, t); + if(e.vehicle) + antilag_takeback(e.vehicle, t); + + if(!e.antilag_takenback) + e.antilag_saved_origin = e.origin; - e.antilag_saved_origin = e.origin; setorigin(e, antilag_takebackorigin(e, t)); + e.antilag_takenback = TRUE; } void antilag_restore(entity e) { - if(e.vehicle) - antilag_restore(e.vehicle); + if(e.vehicle) + antilag_restore(e.vehicle); + + if(!e.antilag_takenback) + return; setorigin(e, e.antilag_saved_origin); + e.antilag_takenback = FALSE; } -- 2.39.2