]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/antilag.qc
Merge branch 'TimePath/experiments/csqc_prediction' into Mario/qc_physics
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / antilag.qc
index 68ec68324d78f785ff84fde5167d7a44a0b1493a..6f8f0f487e0c7e811cd425d7ceb9da8dcc93ec63 100644 (file)
@@ -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
 }