docs(gauge): scoring feed done (KILLS/SCORE track combat)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
arcattack
2026-07-07 19:04:06 -05:00
co-authored by Claude Opus 4.8
parent 34aaa7dda4
commit 99e2078b83
+15 -3
View File
@@ -553,9 +553,21 @@ a prose-only vtable slot AVs on first call).
msg-handler @4ae464 (the reconstructed @4afbe0 is MISLABELED = the MechControlsMapper) so a player valve
toggle moves the slider AND changes heat flow. Add the Condenser OWN table (ValveSetting→coolantFlowScale) +
#if 0 the heat.cpp Condenser dup-ctor stubs (the real heatfamily_reslice def currently wins by link order).
- **Combat SCORING feed** (KILLS/SCORE/RANK): bring-up combat delivers Entity::TakeDamageMessage without
posting BTPlayer ScoreMessages (ScoreInflicted @004c0200, ScoreMessageHandler @004c02e4, VehicleDead
@004c012c) → killCount@0x27c/currentScore@0x278/playerRanking stay 0. Wire the weapon-death→ScoreMessage path.
- **Combat SCORING feed** (KILLS/SCORE) — DONE (commit 34aaa7d; scoring-feed-decode workflow). The
scoreboard read 0 for 4 reasons (none was handler logic — the ScoreMessage/VehicleDead/ScoreInflicted
handlers were already reconstructed): (1) no producer — added the posts (per-hit ScoreInflicted at the
beam/projectile dispatch; KillScore at the TARGET-DESTROYED edge; senderMechID = the VICTIM so the local
player is credited via the !=our-mech branch; dispatched to GetMissionPlayer()); (2) cross-family Mech
offsets → GetPlayerLink() + tonnage/bias stubs; (3) NULL scenarioRole → CalcInflictedScore returns the
neutral (damage+bias); (4) ownerless-dummy null-guards. Plus the **databinding**: the PilotList read
KILLS/DEATHS at raw offsets → repointed to the compiled members via BTPilotKills/BTPilotDeaths bridges.
**⚠ ROOT-CAUSE of the empty scoreboard: the PilotList SELECT-TARGET highlight did a raw-offset deref
(`*(local+0x284)` then `*(tgt+0x190)`) that AV'd on our layout — caught silently by the SEH GuardedExecute,
aborting Execute BEFORE the KILLS/DEATHS draw. Replaced with BTPilotIsSelected (accessors).** And the
10s console flush now only zeros currentScore when a console host exists (solo keeps the running score).
**Verified: SCORE climbs +5.83/hit → 164; on the kill the Comm roster shows KILLS=1.** Follow-ups: DEATHS=1
is a pre-existing spawn/respawn-handshake artifact (not the producers); RANK=-1 is CalcRanking's non-scoring
mark (Plasma serial surface, invisible on dev); MP VehicleDead + tonnage/role registry remain. Env: BT_SCORE_LOG.
- **duckState** writer (button-4 crouch lamp; only ctor-zeroed today).
### Phase 4 — DEEP/DEFERRED