BT410 5.3.32b: the weapon-panel work list, measured

With the engineering heads exact, the entire remaining cockpit difference is
the three MFD quadrant heads -- the SubsystemCluster panels, which the widget
map shows are built by vehicleSubSystems rather than by the CFG, so they are
our code end to end.

Banked with evidence: the ammo weapon's disc+rays are absent while both
energy weapons draw theirs; the ammo digits render as empty cells at exactly
the right position; the mech silhouette is misplaced low-left; the state box
reads OFF where shipped shows a digit.

Also settled by experiment that the title banner is NOT misplaced: 0xb3 is
the measured optimum (0xb6 and 0xb0 both score worse), and the equal
missing/extra counts are overlap fringes, not an offset.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Cyd
2026-07-27 12:14:48 -05:00
co-authored by Claude Fable 5
parent 740ef2b0a7
commit 883315a647
@@ -722,3 +722,59 @@ NEXT ON THIS HEAD-BY-HEAD LADDER: the three MFD quadrant heads (Mfd1/2/3),
which now hold essentially all of the remaining difference -- ~22.6K missing
and ~12K extra between them, against ~0 on the engineering heads. Those are
the SubsystemCluster quadrant panels ([cluster] port=2/4/6 in the map).
--------------------------------------------------------------------------------
5.3.32b -- THE WEAPON PANEL: a measured work list for the MFD heads
--------------------------------------------------------------------------------
With the engineering heads exact, the whole remaining cockpit difference is
the three MFD quadrant heads (Mfd1/2/3: ~22.6K missing, ~12K extra). Those
are the SubsystemCluster panels, and they are NOT CFG widgets -- the map
shows port 2/4/6 carry only a bgBitMap, because every panel is built by the
`vehicleSubSystems` widget (port 8) walking the mech's aux screens. So this
is our code end to end.
Region breakdown of Mfd1 (planes.py bands), shipped vs ours:
top/bottom soft-button strips 0 missing / 0 extra <- exact
upper title band 553 / 553
upper panel bodies 6305 / 2033 <- the work
mid soft-button strip 386 / 235
lower panel bodies 1405 / 890
The title band's missing==extra is NOT a placement error. Correlating our
extra pixels against the shipped missing set over a +-90px window peaks at
only 30% for dy=-3, which is the signature of two copies of the SAME bitmap
already overlapping, with equal-sized fringes where they disagree by a pixel
or two. Confirmed by experiment: 0xb6 and 0xb0 both measured WORSE than the
0xb3 in the tree (Mfd1 extra 4063 -> 5010 and -> 6023), so 0xb3 stands as the
measured optimum and the banner is at most 1-2px off. Do not "fix" it again
without the rig open.
WHAT THE PANEL BODIES ARE ACTUALLY MISSING (shipped vs ours, per weapon panel):
1. THE AMMO DISC + RAYS ARE ABSENT ON THE AMMO WEAPON. Shipped draws every
weapon panel with a filled disc ringed by radial ticks; the STREAK 6
panel carries "0024" inside it -- exactly the 24 rounds our own
[proj] log reports for SRM6_1. We draw disc+rays fine on the two
ENERGY weapons (PPC, ERMED LASER) and draw NEITHER on STREAK 6. So the
ammo-bearing path diverges from the energy path -- that is the thread to
pull, not the disc drawing itself.
2. THE AMMO DIGITS RENDER AS EMPTY CELLS. Ours draws four hollow boxes at
exactly the shipped digits' x/y (verified by crop overlay) -- right
widget, right place, no glyphs. Same failure class as the pilot-name
bitmap: the cell draws, the raster lookup returns nothing.
3. THE MECH SILHOUETTE IS MISPLACED. Shipped centres the dotted mech
figure in the panel; ours puts it low-left, clipped by the panel edge.
Same bitmap, wrong origin -- likely the largest single pixel
contributor in the body count.
4. THE STATE BOX READS "OFF" WHERE SHIPPED SHOWS A DIGIT (4 / 2 / 1).
This is the lamp-state-frame item already on the list; the letter box
beside it (A / B / B) already matches.
Everything in this list came from the per-head instrument in one sitting;
none of it was visible in the whole-frame score, which moved less than a
point across the entire session even as Eng1/2/3 went to exact. Score the
heads, not the frame.