mirror of
https://github.com/vladtrc/iw4L
synced 2026-10-26 02:11:39 -04:00
Merge pull request #23 from gitoutofthere/cleanup/pm-flags-literals
Name the single pm_flags bits in movement_iw4
This commit is contained in:
@@ -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];
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user