.float antilag_times[ANTILAG_MAX_ORIGINS];
.float antilag_index;
.vector antilag_saved_origin;
+.float antilag_takenback;
.float antilag_debug;
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)
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;
+}
+
+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]) = self.origin;
+ }
+ e.antilag_index = ANTILAG_MAX_ORIGINS - 1; // next one is 0
}