Fresh run, unmodified tools: entities2.py self 0x130 returns 74-101 typed live entities with positions and speeds, a player entity, and the orientation matrix at pos-0x70 with 16-byte stride -- exactly the documented layout. Artifact committed as docs/data/live-entities-2026-08-26.txt. Last iteration's "zero moving triples across 357 MB" does not reproduce: sampled seven times 4s apart, the whole map gives 47k-123k movers and the committed ENT_VA window 10k-20k. So the window is populated and the tooling is sound; what differed between the sessions is NOT determined and is recorded as open, since the earlier zero persisted for minutes across several commands. Practical rule added: check movers are non-zero before concluding anything from a memory probe. New open discrepancy: the vtable scan reports 42 instances (20 turrets) while the +0x130 method reports 101 (82 turrets), most of the excess moving at ~375/s -- and a turret is a fixed emplacement. Likely projectiles typed as their shooter, but explicitly NOT asserted: no test here separates a projectile from a fast craft.
5.2 KiB
5.2 KiB