File size: 1,846 Bytes
245c80a | 1 2 3 4 5 6 7 8 9 10 11 12 | # Interaction trace and direct action consumers
RE-564. Reproduce with `python3 scripts/analyze_qvm_interaction_request.py`; check with `python3 scripts/test_qvm_interaction_request.py`. The [machine report](qvm-interaction-request.json) retains source identity and bounded fixtures.
Complete49918 runs to50248. Nonzero PS148, state bits1/512/1024, PS12 bit8, positive PS44 or absent button64 return. The later PS148==3 branch is unreachable under this initial guard in the bounded body. State128/256 selects direct action: PS44=1000, set512, timed torso46, event4, then clear state8. Otherwise an actual trace request uses start=origin with Z+trunc(PS164/2), end=start+64×forward basis, frame bounds184..204, entity7 and mask100663297. Its56-byte reply is supplied; only contents at+48 is consumed.
A hit with contents33554432 sets state1, queries32155(PS,19), assigns750 if true else1500, emits12 then requests timed torso46. Actual32155 rejects nonpositive health, then actual32117 scans low bytes of the first16 inventory words and returns the first matching index or−1. Slot16 is excluded. No item is consumed. The direct branch reverses event/animation request order compared with the trace branch. Animation duration321 is supplied, not a recovered live record.
The bounded call driver now handles numeric LEAVE results whose trace has no stop field; the interaction fixtures exercise this return path and the full prior regression suite remains required. Remaining: real native trace geometry, entity interaction consequences, legal state writers, animation assets and full main/weapon suffix integration.
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.
|