docs: record oneOfSeveralPixInt (increment 5) + update remaining-widget list
GAUGE_COMPOSITE.md + CLAUDE.md: add the OneOfSeveral/oneOfSeveralPixInt button- lamp reconstruction to the done list; narrow the remaining widgets to map (radar marquee), PlayerStatus, vehicleSubSystems, plus the follow-ups to make the duck/searchlight buttons dynamic (extend the Mech table to 0x37 + a Searchlight table). 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
a538d6438e
commit
eae631ba04
+14
-4
@@ -399,6 +399,13 @@ fill the gaps (bind not-yet-needed ids to a shared read-only pad member).
|
||||
4. **segmentArcRatio** (SegmentArcRatio, btl4gaug) — the SPEED arc. Thin subclass of engine `SegmentArc`;
|
||||
Execute override (`FUN_004dcd00`=fabs): `currentValue = clamp(|num/den * segmentSpan|,0,1)` then
|
||||
`SegmentArc::Execute()`. `segmentSpan = (Scalar)(|n|/(|n|-1))*0.75f` (int division → 0.75 for 36 segs).
|
||||
5. **oneOfSeveralPixInt** (OneOfSeveral base + PixInt, btl4gaug) — the button-state LAMPS. Reconstructed
|
||||
the whole OneOfSeveral family (strip selector: `col=selected%columns, row=selected/columns` → blit that
|
||||
sub-rect via `DrawPixelMap8`(pixmap)/`DrawBitMapOpaque`(bitmap); strip resource via
|
||||
`warehouse->pixelMap8Bin`). PixInt forces the PixMap path + one `GaugeConnectionDirectOf<int>` → the
|
||||
frame index; added the missing `OneOfSeveral::foregroundColor`@0x9C. Config binds duck/searchlight/
|
||||
display-mode/piloting-mode buttons; `ControlsMapper/DisplayMode` resolves live, the rest degrade to
|
||||
frame 0 until their tables land.
|
||||
|
||||
### Reconstruction-technique additions (durable)
|
||||
- **x87 float math Ghidra drops** (`FUN_004dcd94()`/`FUN_004dcd00()` show no args = FPU-stack operands):
|
||||
@@ -418,7 +425,10 @@ fill the gaps (bind not-yet-needed ids to a shared read-only pad member).
|
||||
- Reservoir shadow: `Reservoir::coolantCapacity`@0x128 shadows the inherited `thermalCapacity` the gauge
|
||||
reads → `Reservoir/CoolantCapacity` reads the base default; fix = delete the shadow + write thermalCapacity
|
||||
in the Reservoir ctor (bundle with the Reservoir coolant-bar verification).
|
||||
- Remaining widgets (task #13): `oneOfSeveralPixInt` (button lamps — `ControlsMapper/DisplayMode` already
|
||||
publishes; `DuckState`/`Searchlight/LightOn` need the Mech dense table extended to 0x37 + a Sensor/
|
||||
Searchlight table), `map` (radar — needs Mech RadarRange/LinearPos/AngularPos published + Sensor
|
||||
RadarPercent), `PlayerStatus`, `vehicleSubSystems`.
|
||||
- ✅ **oneOfSeveralPixInt** DONE (increment 5 above). To make its `DuckState`/`Searchlight/LightOn`
|
||||
buttons DYNAMIC (they read frame 0 today): extend the Mech dense table to 0x37 (DuckState@0x3f8) + add a
|
||||
Searchlight `LightOn` table.
|
||||
- Remaining widgets (task #13): `map` (radar — the marquee; needs the Mech dense table extended to 0x31 for
|
||||
RadarRange/RadarLinearPosition/RadarAngularPosition + a Sensor `RadarPercent` table + the map/radar
|
||||
renderer reconstruction, base `MapDisplay` in btl4rdr.cpp), `PlayerStatus` (comm/score, 8 uses),
|
||||
`vehicleSubSystems` (26 uses).
|
||||
|
||||
Reference in New Issue
Block a user