docs(gauge): mark P2 widgets done (3/4) + GeneratorCluster gated
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
b44e908101
commit
e4d939424a
+24
-17
@@ -517,23 +517,30 @@ strcmps every slot — a gap AVs). Done:
|
||||
no leak / massScale 3.0 = authentic pristine. **After P1 every config-string binding resolves OK except
|
||||
HeatSink/AmbientTemperature** (needs the aggregate bank, P3).
|
||||
|
||||
### Phase 2 — WIDGET RECONSTRUCTION (TODO — the biggest remaining visible gaps)
|
||||
These config keywords are UNREGISTERED in `BTL4MethodDescription[]` (btl4grnd.cpp) so their lines are
|
||||
parse-skipped and the gauge is never built (even after publishing). Each needs a REAL Make/ctor/Execute/dtor
|
||||
(no prose — the /FORCE trap: a prose-only vtable slot AVs on first call) + registration. Grep the link log
|
||||
for `unresolved external <Widget>` before registering.
|
||||
- **VertNormalSlider** (condenser valve slider @2; vtable PTR_FUN_00518c34) + **LeakGauge** (== BitMapInverseWipe
|
||||
@4c5b7c, @6) — completes the heat panel's valve + leak columns.
|
||||
- **GeneratorCluster** (ctor @004c746c + 5 children: VertTwoPartBar @004c4724, ScalarBarGauge @004c72ac,
|
||||
LeakGauge @004c5b7c, 2× TwoState @004739d8 + real dtor @004c7778) — the 4 generator panels (buttons 9-12,
|
||||
currently blank). Publish the Generator OutputVoltage→outputVoltage@0x1DC entry (temps inherit HeatSink).
|
||||
- **PilotList** (Comm KILLS/DEATHS/SELECT-TARGET/NEAREST roster; Make @004ca90c, ctor @004ca958 reads
|
||||
DAT_0051af88 8×3 layout, BecameActive @004caba4, Execute @004cabd0, dtor @004cab10, DrawMechIcon @004cad70).
|
||||
Roster FEED is already live (MechControlsMapper::FillPilotArray). Needs DAT_0051af88 PE-parsed (24 ints).
|
||||
- **PrepEngrScreen** (Make @004c7b30/ctor @004c7bf0/Execute @004c7e48) — engineering full-screen readout.
|
||||
- **SectorDisplay** (ctor @004c9e10/Execute @004ca07c) + **MessageBoard** (Make @004cb678) — sector coords +
|
||||
message board (lower priority). **SeekVoltageGraph::Execute** (@004c6934) + real FindAttributeIndex (the
|
||||
weapon-cluster seek-voltage plot; currently an inert stub).
|
||||
### Phase 2 — WIDGET RECONSTRUCTION (3 of 4 DONE; commits d68284e/0060a3e/b44e908)
|
||||
These config keywords were UNREGISTERED in `BTL4MethodDescription[]` (btl4grnd.cpp) so their lines
|
||||
parse-skipped and the gauge never built (even after publishing). The `gauge-widget-decode` workflow
|
||||
reconstructed each from the binary; registered widgets need a REAL Make/ctor/Execute/dtor (the /FORCE trap:
|
||||
a prose-only vtable slot AVs on first call).
|
||||
- ✅ **LeakGauge** (== BitMapInverseWipe @4c5b7c, config @6) — the class body already existed; added the Make
|
||||
factory + methodDescription("LeakGauge") + registration. The heat panel's LEAK column now builds (empty
|
||||
undamaged = authentic).
|
||||
- ✅ **VertNormalSlider** (condenser valve slider @2; vtable PTR_FUN_00518c34) — reconstructed all 7 fns
|
||||
(part_013.c:14051-14175; Make @004c4b08 by disassembly), fixed the jumbled header layout, published
|
||||
ValveSetting→coolantFlowScale@0x15C. The SET valve indicator renders (row=Round(span*value)).
|
||||
- ✅ **PilotList** (Comm KILLS/DEATHS roster; part_014.c:3156-3434, DAT_0051af88 8×3 layout PE-parsed) —
|
||||
the Comm surface now renders the live local-pilot row (KILLS 0 DEATHS 0 + name box). Feed = new
|
||||
`BTResolveRosterPilot` bridge (mechmppr.cpp) → mapper roster. DEATHS redirected from the dead pad_0x280 to
|
||||
the real deathCount@0x200. The scoring feed that moves KILLS/DEATHS is P3.
|
||||
- ◐ **GeneratorCluster** (4 generator panels, buttons 9-12) — RECONSTRUCTED + infra committed (Generator
|
||||
OutputVoltage table + the @004c72ac ScalarBarGauge Scalar* variant + Make/ctor/dtor + 15-param
|
||||
methodDescription) but **registration GATED**: registering aborts at runtime — the 4 panels build (4
|
||||
"BecameActive not defined" warnings) then `abort()`, isolated to the PARENT lifecycle (persists with all 5
|
||||
children nulled; no pure virtuals; unguarded ctor path). The sibling SubsystemCluster overrides
|
||||
BecameActive/Execute/TestInstance whereas the decode had GeneratorCluster override ONLY the dtor — that
|
||||
claim is the prime suspect. Re-enable the btl4grnd.cpp line once the parent lifecycle is fixed.
|
||||
- **TODO (lower priority):** **PrepEngrScreen** (@004c7b30/7bf0/7e48 — engineering full-screen), **SectorDisplay**
|
||||
(@004c9e10/ca07c) + **MessageBoard** (@004cb678), **SeekVoltageGraph::Execute** (@004c6934) + real FindAttributeIndex.
|
||||
|
||||
### Phase 3 — SIM/MODEL (TODO)
|
||||
- **Aggregate HeatSink-bank** (0xBBE; ctor @4ae8d0, sim @4ae73c, parser @4ae9dc — currently #if 0'd in
|
||||
|
||||
Reference in New Issue
Block a user