diff --git a/docs/GAUGE_COMPOSITE.md b/docs/GAUGE_COMPOSITE.md index a575607..8317ae6 100644 --- a/docs/GAUGE_COMPOSITE.md +++ b/docs/GAUGE_COMPOSITE.md @@ -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