]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/antilag.qc
Merge branch 'master' into Mario/buffs
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / antilag.qc
index 0f6434eab68e3330c5807a4f46c664e8721cdf9f..c53452ab78b352836a0614970259a54be27be59d 100644 (file)
@@ -7,14 +7,11 @@
 
 .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);
 
@@ -66,9 +63,11 @@ vector antilag_takebackorigin(entity e, float t)
        i0 = antilag_find(e, t);
        if(i0 < 0)
        {
-               i0 = e.antilag_index - 1;
-               if(i0 < 0)
-                       i0 = ANTILAG_MAX_ORIGINS - 1;
+               // IN THE PRESENT
+               if(e.antilag_takenback)
+                       return e.antilag_saved_origin;
+               else
+                       return e.origin;
        }
        i1 = i0 + 1;
        if(i1 >= ANTILAG_MAX_ORIGINS)
@@ -90,6 +89,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);
 
@@ -102,6 +105,9 @@ void antilag_takeback(entity e, float t)
 
 void antilag_restore(entity e)
 {
+    if (e.vehicle && e.vehicle.vehicle_flags == VHF_PLAYERSLOT)
+        return;
+
        if(e.vehicle)
                antilag_restore(e.vehicle);
 
@@ -111,3 +117,16 @@ void antilag_restore(entity e)
        setorigin(e, e.antilag_saved_origin);
        e.antilag_takenback = FALSE;
 }
+
+void antilag_clear(entity e)
+{
+       float i;
+
+       antilag_restore(e);
+       for(i = 0; i < ANTILAG_MAX_ORIGINS; ++i)
+       {
+               e.(antilag_times[i]) = -2342;
+               e.(antilag_origins[i]) = e.origin;
+       }
+       e.antilag_index = ANTILAG_MAX_ORIGINS - 1; // next one is 0
+}