Merge pull request #23 from gitoutofthere/cleanup/pm-flags-literals

Name the single pm_flags bits in movement_iw4
This commit is contained in:
vc
2026-10-01 12:15:03 +03:00
committed by GitHub
10 changed files with 24 additions and 24 deletions
+2 -2
View File
@@ -1,4 +1,4 @@
use playerstate_iw4::PlayerState;
use playerstate_iw4::{PlayerState, pm_flags};
use crate::Pml;
@@ -22,7 +22,7 @@ fn accelerate_velocity(
mut wishspeed: f32,
accel: f32,
) {
if (pm_flags & 8) != 0 {
if (pm_flags & pm_flags::LADDER) != 0 {
let wish_x = wishspeed * wishdir[0];
let wish_y = wishdir[1] * wishspeed;
let wish_z = wishspeed * wishdir[2];
+2 -2
View File
@@ -1,4 +1,4 @@
use playerstate_iw4::{PlayerState, UserCmd};
use playerstate_iw4::{PlayerState, UserCmd, pm_flags};
use crate::{CollisionBackend, MoveBounds, Pml, accelerate, friction, step_slide_move};
@@ -78,7 +78,7 @@ fn cmd_scale(ps: &PlayerState, cmd: &UserCmd, spectate_speed_scale: f32) -> f32
}
let mut scale = (ps.speed as f32 * largest) / (magnitude * 127.0_f32);
if (ps.pm_flags & 0x40) != 0 || ps.leanf != 0.0 {
if (ps.pm_flags & pm_flags::WALKING) != 0 || ps.leanf != 0.0 {
scale *= 0.4_f32;
}
scale *= match ps.pm_type {
+6 -6
View File
@@ -1,4 +1,4 @@
use playerstate_iw4::{PlayerState, UserCmd};
use playerstate_iw4::{PlayerState, UserCmd, pm_flags};
use crate::stance_speed_scale;
@@ -22,7 +22,7 @@ pub struct CmdScaleWalkContext {
#[must_use]
pub fn cmd_scale_walk(ps: &PlayerState, cmd: &UserCmd, context: CmdScaleWalkContext) -> f32 {
let flags = ps.pm_flags;
let sprinting_ads = (flags & 1) != 0 && ps.f_weapon_pos_frac > 0.0;
let sprinting_ads = (flags & pm_flags::PRONE) != 0 && ps.f_weapon_pos_frac > 0.0;
let forward = if cmd.forwardmove < 0 {
(cmd.forwardmove as f32) * context.player_back_speed_scale
@@ -48,11 +48,11 @@ pub fn cmd_scale_walk(ps: &PlayerState, cmd: &UserCmd, context: CmdScaleWalkCont
return 0.0;
}
if (flags & 0x40) != 0 || ps.leanf != 0.0 || sprinting_ads {
if (flags & pm_flags::WALKING) != 0 || ps.leanf != 0.0 || sprinting_ads {
scale *= 0.4_f32;
}
if (flags & 0x4000) != 0 {
if (flags & pm_flags::SPRINTING) != 0 {
scale *= context.player_sprint_speed_scale;
}
@@ -67,7 +67,7 @@ pub fn cmd_scale_walk(ps: &PlayerState, cmd: &UserCmd, context: CmdScaleWalkCont
};
if ps.weapon != 0 {
let leaning = (flags & 0x40) != 0;
let leaning = (flags & pm_flags::WALKING) != 0;
let use_move = context.weapon_move_speed_scale > 0.0 && !leaning && !sprinting_ads;
if use_move {
scale *= context.weapon_move_speed_scale;
@@ -76,7 +76,7 @@ pub fn cmd_scale_walk(ps: &PlayerState, cmd: &UserCmd, context: CmdScaleWalkCont
}
}
if (flags & 0x8000) != 0 && context.shellshock_affects_movement {
if (flags & pm_flags::SHELLSHOCKED) != 0 && context.shellshock_affects_movement {
scale *= 0.4_f32;
}
+2 -2
View File
@@ -1,6 +1,6 @@
use crate::Pml;
use crate::jump;
use playerstate_iw4::PlayerState;
use playerstate_iw4::{PlayerState, pm_flags};
const PM_TIME_EXPIRY_CLEAR: u32 = 0x2180;
@@ -9,7 +9,7 @@ pub fn drop_timers(ps: &mut PlayerState, pml: &Pml) {
if pml.msec < ps.pm_time {
ps.pm_time -= pml.msec;
} else {
if (ps.pm_flags & 0x2000) != 0 {
if (ps.pm_flags & pm_flags::JUMPING) != 0 {
jump::clear_state(ps);
}
ps.pm_flags &= !PM_TIME_EXPIRY_CLEAR;
+4 -4
View File
@@ -1,4 +1,4 @@
use playerstate_iw4::PlayerState;
use playerstate_iw4::{PlayerState, pm_flags};
use crate::Pml;
@@ -11,16 +11,16 @@ pub fn friction(ps: &mut PlayerState, pml: &Pml) {
let flags = ps.pm_flags;
let mut drop = 0.0_f32;
if (flags & 0x10000) == 0 {
if (flags & pm_flags::MELEE_CHARGE) == 0 {
if pml.walking != 0 && (pml.ground_trace[4] & 2) == 0 && (flags & 0x100) == 0 {
let mut control = speed;
if speed < 100.0 {
control = 100.0;
}
if (flags & 0x80) != 0 {
if (flags & pm_flags::TIME_HARDLANDING) != 0 {
control *= 2.0;
} else if (flags & 0x2000) != 0 {
} else if (flags & pm_flags::JUMPING) != 0 {
control *= walking_scale(ps);
}
+1 -1
View File
@@ -207,7 +207,7 @@ fn evaluate_gate(
if (pm_flags & 0x40000) != 0
|| context.time_since_jump <= 499
|| (pm_flags & 0x400) != 0
|| (pm_flags & 4) != 0
|| (pm_flags & pm_flags::MANTLE) != 0
|| pm_type >= 8
{
return JumpCheckResult::NotEligible;
+1 -1
View File
@@ -306,7 +306,7 @@ fn ladder_cmd_scale(ps: &PlayerState, cmd: &UserCmd, spectate_speed_scale: f32)
return 0.0;
}
let mut scale = (ps.speed as f32 * largest) / (magnitude * 127.0);
if (ps.pm_flags & 0x40) != 0 || ps.leanf != 0.0 {
if (ps.pm_flags & pm_flags::WALKING) != 0 || ps.leanf != 0.0 {
scale *= 0.4;
}
scale *= match ps.pm_type {
+1 -1
View File
@@ -138,7 +138,7 @@ pub fn pmove<C: CollisionBackend, L: MantleXAnimLength, R: MantleRootDelta>(
&& ps.pm_flags & pm_flags::LAST_STAND == 0
&& ps.pm_time == 0
{
ps.pm_flags |= 0x2000;
ps.pm_flags |= pm_flags::JUMPING;
ps.pm_time = 1800;
}
let reset_torso = stance_change != crate::StanceChange::Unchanged
+2 -2
View File
@@ -61,7 +61,7 @@ pub fn sprint_start_interfering_buttons(
forward_minimum: i32,
) -> bool {
let flags = ps.pm_flags;
if (flags & 8) != 0
if (flags & pm_flags::LADDER) != 0
|| sprint_forward_below_minimum(forwardmove, forward_minimum)
|| (buttons & 0xcc35) != 0
{
@@ -94,7 +94,7 @@ pub fn sprint_ending_buttons(
}
fn weapon_state_admits_sprint(ps: &PlayerState, flags: u32, ending: bool) -> bool {
if !ending && (flags & 0x2000) != 0 && ps.pm_time == 0 {
if !ending && (flags & pm_flags::JUMPING) != 0 && ps.pm_time == 0 {
return true;
}
let state = ps.weaponstate_primary;
+3 -3
View File
@@ -1,4 +1,4 @@
use playerstate_iw4::{PlayerState, UserCmd};
use playerstate_iw4::{PlayerState, UserCmd, pm_flags};
use crate::{
AirMoveContext, CmdScaleWalkContext, CollisionBackend, JumpCheckContext, JumpCheckResult,
@@ -28,7 +28,7 @@ pub fn walk_move<C: CollisionBackend>(
bounds: MoveBounds,
collision: &C,
) {
if (ps.pm_flags & 0x2000) != 0 {
if (ps.pm_flags & pm_flags::JUMPING) != 0 {
prone_velocity_scale(ps);
}
@@ -144,7 +144,7 @@ fn walk_accel_scale(ps: &PlayerState, pml: &Pml) -> f32 {
StanceSurface::Stand => ACCEL_STAND,
}
};
if (ps.pm_flags & 0x80) != 0 {
if (ps.pm_flags & pm_flags::TIME_HARDLANDING) != 0 {
accel *= SLOW_WALK_SCALE;
}
accel