urt-rs / docs /research /QVM_WEAPON_READY.md
nmarshall's picture
qvm: ready weapon consumers
671c2bf
|
Raw History Blame Contribute Delete
1.51 kB

Ready weapon refill cadence and interaction re-entry

RE-577. Reproduce with python3 scripts/analyze_qvm_weapon_ready.py; check with python3 scripts/test_qvm_weapon_ready.py. The machine report retains source identity and bounded fixtures.

Ready-entry51207 first handles selectedID27 by replacing magazine bits8..15 with configured capacity&255, preserving ID/mode/reserve. Then nonpositive PS204 plus state32 plus mode flags bit1 resets weapon timer/state to0 and exits. This cadence predicate precedes state1 handling.

If state1 is set, it clears before testing button64. With button64, actual49918 interaction runs and observes bit1 already clear; without it no child runs. Both paths exit53046. Otherwise execution reaches51365. The interaction child still enforces its own weapon-state/timer/action guards and supplied native trace behavior; clearing bit1 does not imply successful interaction.

88 finite fixtures use explicitly supplied entry locals and mode flags to isolate these conditions; they do not run earlier prefix/timer guards. ID27 special refill is not generalized to other weapons. Remaining: actual reload completion and ammo-unit accounting, lowering/raising completion, and full parent composition across these boundaries.

No original executable/full QVM/native collision/physics/rendering executes. Native responses and legal input domains are supplied or unverified where stated; full runtime/macOS/Linux Rust/Bevy/Solari gameplay remains open.