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);
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 && e.vehicle.vehicle_flags == VHF_PLAYERSLOT)
+ return;
+
if(e.vehicle)
antilag_takeback(e.vehicle, t);
void antilag_restore(entity e)
{
+ if (e.vehicle && e.vehicle.vehicle_flags == VHF_PLAYERSLOT)
+ return;
+
if(e.vehicle)
antilag_restore(e.vehicle);
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
+}