From 8a31abb07d7b822ce6f56007f7c36060189174f0 Mon Sep 17 00:00:00 2001 From: arcattack Date: Tue, 7 Jul 2026 07:35:46 -0500 Subject: [PATCH] docs: vehicleSubSystems follow-ups -- recharge dial + leak wipe done Mark SegmentArc270 (recharge dial) and BitMapInverseWipe::Execute (LeakGauge) done; refine the remaining follow-up list with the honest blocker/scope for each (seek plot blocked on attribute + sampler; eject wipe needs a new base; secondary lamp/ counter raw reads = the heat-leaf-branch re-base; ConfigMapGauge overlay needs the ModeManager). Co-Authored-By: Claude Opus 4.8 (1M context) --- docs/VEHICLE_SUBSYSTEMS.md | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/docs/VEHICLE_SUBSYSTEMS.md b/docs/VEHICLE_SUBSYSTEMS.md index 1d46b78..c1684e4 100644 --- a/docs/VEHICLE_SUBSYSTEMS.md +++ b/docs/VEHICLE_SUBSYSTEMS.md @@ -123,17 +123,27 @@ the resource parse, verifying combat/heat un-regressed. **This is the final, sig build with real aux-screen positions/labels/placements, 0 crashes, combat un-regressed. ## Remaining polish (non-blocking follow-ups) -- Two minor cluster children deferred as marked NULLs: the `SegmentArc270` recharge dial (WeaponCluster) + - the `BitMapInverseWipeScalar` eject wipe (BallisticWeaponCluster) — their ctors are placeholders in - btl4gaug.hpp (the `SegmentArc270` @004c6244 body + a `BitMapInverseWipeScalar` class need reconstruction). -- `SeekVoltageGraph::Execute` + `BitMapInverseWipe::Execute` are minimal-safe (vtable-complete, non-crashing) - — the full seek-voltage plot + the reveal-wipe column math are deferred. -- Many cluster child value pointers read raw subsystem offsets (0x31c/0x324/0x334/0x364/0x43c/…) still on - the non-byte-exact heat-leaf branch — marked BEST-EFFORT; they render but may show wrong/zero data. The - authentic fix is the heat-leaf-branch re-base (the same §10 deferred item for the Sensor RadarPercent - gauge) or per-field bridges like the aux-screen one. -- `ConfigMapGauge`'s control-mapper state loop is guarded off (raw App ModeManager offsets, `DAT_00518eb8` - unrecovered). +- ✅ **`SegmentArc270` recharge dial DONE** — reconstructed (@004c6244, engine SegmentArc + a Scalar + connection + the 0.75 span factor) + wired into WeaponCluster, reading the real `PercentDone` attribute. + Render-verified: the green segmented recharge circles draw in the weapon panels. +- ✅ **`BitMapInverseWipe::Execute` (LeakGauge) DONE** — the authentic vertical-segment reveal wipe + (@004c5d08), driven by the `CoolantMassLeakRate` attribute. +- **`SeekVoltageGraph::Execute`** (the seek-voltage curve plot in the Energy/Myomer clusters) — still a + minimal-safe no-op. BLOCKED: it needs (a) the four seek-voltage attribute indices resolved (the ctor's + `FindAttributeIndex` still returns -1 — the summarised stub) and (b) the subsystem's live seek-voltage + sampler (`Emitter` vtbl+0x3c) — so even a reconstructed plot would draw nothing until those land. +- **`BitMapInverseWipeScalar` eject wipe** (BallisticWeaponCluster) — still a marked NULL. Needs a new base + class (the unnamed @004c5e84 wipe base, vtable 0x518a58) + the @004c61c8 ctor. Very low value (the eject + indicator only shows during a reload). +- **Secondary raw value-pointer reads** — the fail/jam/fire lamps + ammo counters read raw subsystem offsets + (0x31c/0x320/0x324/0x334/0x364/0x43c/…) on the non-byte-exact heat-leaf branch → they render but show + wrong/zero data. NOTE: the KEY gauges already read via the engine ATTRIBUTE system and show real data + (temperature bars, the recharge dial, generator voltage, coolant leak); only these secondary lamps/counters + are affected. The authentic fix is the heat-leaf-branch re-base (the same §10 deferred item for the Sensor + RadarPercent gauge) — a large, regression-risky change to the working combat/heat subsystem code — or a set + of per-field bridges like the aux-screen one. +- **`ConfigMapGauge`'s control-mapper state overlay** — guarded off (raw App ModeManager offsets, `DAT_00518eb8` + unrecovered); the base joystick bitmap draws. - The **separate** dev-gauge window (960×384) didn't appear in the headless test run (the panels render in `BT_DEV_GAUGES_DOCK=1` docked mode); the separate-window path is existing dev-gauge infra, unrelated to this reconstruction.