X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fantilag.qc;h=64db8da8f0ce1beb759bf4250ae657fba1c52310;hb=21307f327df5609b82d90496c1c6156d636d1c8d;hp=73025f1f61004ed50996fc1dfa692aafac943895;hpb=802a0058147171be24c302c65b3b963312f1d6ab;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/antilag.qc b/qcsrc/server/antilag.qc index 73025f1f6..64db8da8f 100644 --- a/qcsrc/server/antilag.qc +++ b/qcsrc/server/antilag.qc @@ -1,23 +1,24 @@ -#define ANTILAG_MAX_ORIGINS 64 +#if defined(CSQC) +#elif defined(MENUQC) +#elif defined(SVQC) + #include "../common/vehicles/all.qh" + #include "antilag.qh" +#endif + +const int ANTILAG_MAX_ORIGINS = 64; .vector antilag_origins[ANTILAG_MAX_ORIGINS]; .float antilag_times[ANTILAG_MAX_ORIGINS]; -.float antilag_index; +.int antilag_index; .vector antilag_saved_origin; .float antilag_takenback; .float antilag_debug; -void antilag_dummy() -{ - self.antilag_times = 0; - self.antilag_origins = '0 0 0'; -} - void antilag_record(entity e, float t) { if (e.vehicle && e.vehicle.vehicle_flags == VHF_PLAYERSLOT) return; - + if(e.vehicle) antilag_record(e.vehicle, t); @@ -37,9 +38,7 @@ void antilag_record(entity e, float t) // finds the index BEFORE t float antilag_find(entity e, float t) { - float i; - - for(i = e.antilag_index; i > 0; --i) + for(int i = e.antilag_index; i > 0; --i) if(e.(antilag_times[i]) >= t) if(e.(antilag_times[i - 1]) < t) return i - 1; @@ -48,7 +47,7 @@ float antilag_find(entity e, float t) if(e.(antilag_times[ANTILAG_MAX_ORIGINS - 1]) < t) return ANTILAG_MAX_ORIGINS - 1; - for(i = ANTILAG_MAX_ORIGINS - 1; i > e.antilag_index + 1; --i) + for(int i = ANTILAG_MAX_ORIGINS - 1; i > e.antilag_index + 1; --i) if(e.(antilag_times[i]) >= t) if(e.(antilag_times[i - 1]) < t) return i - 1; @@ -57,17 +56,10 @@ float antilag_find(entity e, float t) return -1; } -vector lerpv(float t0, vector v0, float t1, vector v1, float t) -{ - return v0 + (v1 - v0) * ((t - t0) / (t1 - t0)); -} - vector antilag_takebackorigin(entity e, float t) { - float i0, i1; - - i0 = antilag_find(e, t); - if(i0 < 0) + int i0 = antilag_find(e, t); + if (i0 < 0) { // IN THE PRESENT if(e.antilag_takenback) @@ -75,8 +67,8 @@ vector antilag_takebackorigin(entity e, float t) else return e.origin; } - i1 = i0 + 1; - if(i1 >= ANTILAG_MAX_ORIGINS) + int i1 = i0 + 1; + if (i1 >= ANTILAG_MAX_ORIGINS) i1 = 0; return lerpv(e.(antilag_times[i0]), e.(antilag_origins[i0]), e.(antilag_times[i1]), e.(antilag_origins[i1]), t); @@ -106,7 +98,7 @@ void antilag_takeback(entity e, float t) e.antilag_saved_origin = e.origin; setorigin(e, antilag_takebackorigin(e, t)); - e.antilag_takenback = TRUE; + e.antilag_takenback = true; } void antilag_restore(entity e) @@ -121,15 +113,13 @@ void antilag_restore(entity e) return; setorigin(e, e.antilag_saved_origin); - e.antilag_takenback = FALSE; + e.antilag_takenback = false; } void antilag_clear(entity e) { - float i; - antilag_restore(e); - for(i = 0; i < ANTILAG_MAX_ORIGINS; ++i) + for (int i = 0; i < ANTILAG_MAX_ORIGINS; ++i) { e.(antilag_times[i]) = -2342; e.(antilag_origins[i]) = e.origin;