THE key QL stair mechanic: skip velocity clip in PM_StepSlideMove when
velocity is moving away from the step surface (dot product >= 0). Q3
always clips, zeroing vertical momentum on every step. QL preserves
upward velocity through steps, enabling smooth bunny-hop stair traversal.
Also includes:
- Remove Q3 velocity[2]>0 gate (pm_airSteps): allow step-ups during jumps
- pml.isStepJump flag for step jump context in PM_Jump
- PM_Jump: additive velocity for step jumps (+=270, min 270, max 700)
- 100ms jump cooldown via lastJumpTime
Has known glitches — saved for reference before fixing.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove the PMF_JUMP_HELD gate from PM_CheckJump so players can
hold jump to bunny hop continuously without releasing between
hops. The existing Pmove() outer loop already forces upmove=20
when PMF_JUMP_HELD is set, making this the only change needed.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Separate the jump execution (velocity, event, animation) from the
gate logic (respawn check, upmove threshold, jump-held check).
This prepares the code for QL features that need to trigger jumps
from contexts other than the normal ground jump path (step jump,
double jump, etc). No behavior change.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>