Physics_UpdateStats(this, PHYS_HIGHSPEED(this));
}
-bool sys_phys_override(entity this)
+bool sys_phys_override(entity this, float dt)
{
int buttons = PHYS_INPUT_BUTTON_MASK(this);
+ float idlesince = this.parm_idlesince;
+ this.parm_idlesince = time; // in the case that physics are overridden
if (PM_check_specialcommand(this, buttons)) { return true; }
- if (this.PlayerPhysplug && this.PlayerPhysplug(this)) { return true; }
+ if (this.PlayerPhysplug && this.PlayerPhysplug(this, dt)) { return true; }
+ this.parm_idlesince = idlesince;
return false;
}
-void sys_phys_monitor(entity this)
+void sys_phys_monitor(entity this, float dt)
{
int buttons = PHYS_INPUT_BUTTON_MASK(this);
anticheat_physics(this);
|| this.v_angle != this.v_angle_old) { this.parm_idlesince = time; }
}
PM_check_nickspam(this);
- PM_check_punch(this);
+ PM_check_punch(this, dt);
}
void sys_phys_ai(entity this)
void sys_phys_pregame_hold(entity this)
{
if (!IS_PLAYER(this)) { return; }
- const bool allowed_to_move = (time >= game_starttime);
+ const bool allowed_to_move = (time >= game_starttime && !game_stopped);
if (!allowed_to_move) {
this.velocity = '0 0 0';
set_movetype(this, MOVETYPE_NONE);