KB: pilotList MP claim corrected -- only the local row renders live (Gitea #43, rig-reproduced)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0166KTsC7ADm7VXEi1HF1jNg
This commit is contained in:
arcattack
2026-07-24 17:35:20 -05:00
co-authored by Claude Opus 5
parent ef5a15ae2c
commit 7494e2ec6c
+7
View File
@@ -304,6 +304,13 @@ screen paint over the shared Eng plane, pinning it on the highest screen). Pixel
`BT_PRESET_TEST=<frame>`, `BT_CTRLMAP_LOG`.
## pilotList (Comm KILLS/DEATHS) row semantics + the 1 [T1/T2]
**BUG (Gitea #43, 2026-07-24, rig-reproduced): in LIVE MP only the LOCAL row renders — remote
players never get a row.** The "2-player MP = 2 rows" below is decomp row SEMANTICS [T1], not a
verified MP observation (the audit's live evidence was solo-only). Suspect:
`BuildPilotArray`'s count loop (mechmppr.cpp:1133) sizes the roster via the binary's RAW
`entry+0x29 & 0x40` spectator-flag read on our compiled objects (databinding trap; the fill
loop's same check was already TODO-removed) → pilotCount latches 1 (build-once latch),
`GetPilot(1)` bounds-rejects the remote. Fix + MP re-verify pending — see the issue.
One ROW PER PILOT in the mission (2-player MP = 2 rows — not duplicate displays). KILLS =
`killCount` (the victim's ScoreMessageHandler credits the shooter cross-player, works for both
rows); DEATHS = `Player::deathCount`: engine-inits to **2** (PLAYER.cpp:759), the LOCAL