X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fantilag.qc;h=6f8f0f487e0c7e811cd425d7ceb9da8dcc93ec63;hb=22a37c4431f80ece25aeff28c18bc67dd183a352;hp=68ec68324d78f785ff84fde5167d7a44a0b1493a;hpb=64b349a338c5355c1b1381ef0987e34c24fae75b;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/antilag.qc b/qcsrc/server/antilag.qc index 68ec68324..6f8f0f487 100644 --- a/qcsrc/server/antilag.qc +++ b/qcsrc/server/antilag.qc @@ -1,20 +1,26 @@ -#define ANTILAG_MAX_ORIGINS 64 +#if defined(CSQC) +#elif defined(MENUQC) +#elif defined(SVQC) + #include "../dpdefs/progsdefs.qh" + #include "../dpdefs/dpextensions.qh" + #include "vehicles/vehicles_def.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); @@ -34,9 +40,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; @@ -45,7 +49,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; @@ -92,6 +96,10 @@ vector antilag_takebackavgvelocity(entity e, float t0, float t1) void antilag_takeback(entity e, float t) { + + if (e.vehicle && e.vehicle.vehicle_flags == VHF_PLAYERSLOT) + return; + if(e.vehicle) antilag_takeback(e.vehicle, t); @@ -99,11 +107,14 @@ 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) { + if (e.vehicle && e.vehicle.vehicle_flags == VHF_PLAYERSLOT) + return; + if(e.vehicle) antilag_restore(e.vehicle); @@ -111,7 +122,7 @@ 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) @@ -122,7 +133,7 @@ void antilag_clear(entity e) for(i = 0; i < ANTILAG_MAX_ORIGINS; ++i) { e.(antilag_times[i]) = -2342; - e.(antilag_origins[i]) = self.origin; + e.(antilag_origins[i]) = e.origin; } e.antilag_index = ANTILAG_MAX_ORIGINS - 1; // next one is 0 }