]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/ecs/systems/sv_physics.qc
If physics are overridden, reset the idle time (fixes getting kicked while driving...
[xonotic/xonotic-data.pk3dir.git] / qcsrc / ecs / systems / sv_physics.qc
index 904ebba3fe5ccbea2b1f1aefaa55f502dd67450b..a68d51b8e677f770b8dce708ed7fc5e4eb6fe1bb 100644 (file)
@@ -9,8 +9,11 @@ void sys_phys_fix(entity this, float dt)
 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, dt)) { return true; }
+       this.parm_idlesince = idlesince;
        return false;
 }
 
@@ -37,7 +40,7 @@ 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);