void PM_walk(entity this, float maxspd_mod)
{
- if (!WAS_ONGROUND(this))
- {
-#ifdef SVQC
- if (autocvar_speedmeter)
- LOG_TRACE(strcat("landing velocity: ", vtos(this.velocity), " (abs: ", ftos(vlen(this.velocity)), ")\n"));
-#endif
- if (this.lastground < time - 0.3)
- this.velocity *= (1 - PHYS_FRICTION_ONLAND(this));
-#ifdef SVQC
- if (this.jumppadcount > 1)
- LOG_TRACE(strcat(ftos(this.jumppadcount), "x jumppad combo\n"));
- this.jumppadcount = 0;
-#endif
- }
-
// walking
makevectors(this.v_angle.y * '0 1 0');
const vector wishvel = v_forward * this.movement.x
bool sys_phys_override(entity this)
{
int buttons = PHYS_INPUT_BUTTON_MASK(this);
- if (PM_check_specialcommand(this, buttons)) return true;
- if (this.PlayerPhysplug && this.PlayerPhysplug(this)) return true;
+ if (PM_check_specialcommand(this, buttons)) { return true; }
+ if (this.PlayerPhysplug && this.PlayerPhysplug(this)) { return true; }
return false;
}
if (sv_maxidle > 0) {
if (buttons != this.buttons_old
|| this.movement != this.movement_old
- || this.v_angle != this.v_angle_old) this.parm_idlesince = time;
+ || this.v_angle != this.v_angle_old) { this.parm_idlesince = time; }
}
PM_check_nickspam(this);
PM_check_punch(this);
void sys_phys_ai(entity this)
{
- if (!IS_BOT_CLIENT(this)) return;
- if (playerdemo_read(this)) return;
+ if (!IS_BOT_CLIENT(this)) { return; }
+ if (playerdemo_read(this)) { return; }
bot_think(this);
}
void sys_phys_pregame_hold(entity this)
{
- if (!IS_PLAYER(this)) return;
+ if (!IS_PLAYER(this)) { return; }
const bool allowed_to_move = (time >= game_starttime);
if (!allowed_to_move) {
this.velocity = '0 0 0';
this.movetype = MOVETYPE_NONE;
this.disableclientprediction = 2;
} else if (this.disableclientprediction == 2) {
- if (this.movetype == MOVETYPE_NONE) this.movetype = MOVETYPE_WALK;
+ if (this.movetype == MOVETYPE_NONE) { this.movetype = MOVETYPE_WALK; }
this.disableclientprediction = 0;
}
}
void sys_phys_spectator_control(entity this)
{
float maxspeed_mod = autocvar_sv_spectator_speed_multiplier;
- if (!this.spectatorspeed) this.spectatorspeed = maxspeed_mod;
+ if (!this.spectatorspeed) { this.spectatorspeed = maxspeed_mod; }
if ((this.impulse >= 1 && this.impulse <= 19)
|| (this.impulse >= 200 && this.impulse <= 209)
|| (this.impulse >= 220 && this.impulse <= 229)
|| this.impulse == 15
|| this.impulse == 18
|| (this.impulse >= 200 && this.impulse <= 209)
- ) this.spectatorspeed = bound(1, this.spectatorspeed + 0.5, 5);
- else if (this.impulse == 11) this.spectatorspeed = maxspeed_mod;
- else if (this.impulse == 12
+ ) { this.spectatorspeed = bound(1, this.spectatorspeed + 0.5, 5); } else if (this.impulse == 11) {
+ this.spectatorspeed = maxspeed_mod;
+ } else if (this.impulse == 12
|| this.impulse == 16
|| this.impulse == 19
|| (this.impulse >= 220 && this.impulse <= 229)
- ) this.spectatorspeed = bound(1, this.spectatorspeed - 0.5, 5);
- else if (this.impulse >= 1 && this.impulse <= 9) this.spectatorspeed = 1 + 0.5 * (this.impulse - 1);
+ ) {
+ this.spectatorspeed = bound(1, this.spectatorspeed - 0.5, 5);
+ } else if (this.impulse >= 1 && this.impulse <= 9) {
+ this.spectatorspeed = 1 + 0.5 * (this.impulse - 1);
+ }
} // otherwise just clear
this.impulse = 0;
}
stuffcmd(this, sprintf("\ncl_jumpspeedcap_max \"%s\"\n", autocvar_sv_jumpspeedcap_max));
}
}
+
+void sys_phys_land(entity this)
+{
+ if (autocvar_speedmeter) {
+ LOG_TRACEF("landing velocity: %v (abs: %f)", this.velocity, vlen(this.velocity));
+ }
+ if (this.jumppadcount > 1) {
+ LOG_TRACEF("%dx jumppad combo", this.jumppadcount);
+ }
+ this.jumppadcount = 0;
+}
+
+STATIC_INIT(sys_phys)
+{
+ entity listener = new_pure(sys_phys);
+ subscribe(listener, phys_land, sys_phys_land);
+}