From: Rudolf Polzer Date: Thu, 27 Oct 2011 08:28:42 +0000 (+0200) Subject: handle an entity being antilag-takenback multiple times X-Git-Tag: xonotic-v0.6.0~35^2~78^2~2 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=351650c0dda9f27cdeefde6c01a3f28008324b6b;p=xonotic%2Fxonotic-data.pk3dir.git handle an entity being antilag-takenback multiple times --- 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; }