Two changes to PM_StepSlideMove that transform stair traversal:
1. Remove Q3 velocity[2]>0 gate (QL pm_airSteps): allow step-ups
while airborne, enabling bunny-hop stair traversal.
2. Conditional velocity clip: only clip velocity to step-down surface
when moving INTO it (dot product < 0). Skip clip when velocity is
moving away (dot >= 0), preserving upward momentum through steps.
This is THE key mechanic for smooth QL-style stair hopping.
Also adds 100ms jump cooldown (lastJumpTime) to prevent same-frame
double-fires during rapid step-ups.
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>
Debug TA and Release TA configs now copy their output DLLs to
workdir/missionpack/ instead of workdir/baseq3/, matching the
Q3 Team Arena directory layout. MISSIONPACK was already defined
for TA configs; this completes the baseline TA setup.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>