Files
firestorm/Gameleap/code/CoreTech/Libraries
a26ff967d8 Repair the four broken Radar damage mappings; document the findings
The whole-tree audit after the previous commit found four Radar rows scoring
0.266-0.638 against their artwork, with boxes bounding blank space. All four are
chassis whose Radar sets J&J never delivered, so the rows had never been checked
against the art. They are pre-existing, not regressions.

With each chassis's MFD now correct, the Radar mapping is derived from it rather
than measured by hand: source boxes come from the Radar art's own connected
components, zone identity is matched from the MFD by normalised position plus a
size-consistency term, and placement scales each piece's ART CENTRE by ~1.25.

Two details that matter and are easy to get wrong. Position-only matching swaps
CT and HD, because a head and a torso can sit at similar normalised positions;
the size term fixes it. And scaling a piece's corner rather than its centre
misplaces it whenever the Radar piece is a different proportion from its MFD
counterpart - the Longbow's Radar CT includes the pelvis while its MFD CT does
not, which put CT 23px off centre until centre-scaling was used.

  kodiak   0.266 -> 0.962
  longbow  0.379 -> 0.959
  argus    0.457 -> 0.956
  fafnir   0.638 -> 0.963

Longbow additionally had a phantom special zone. The chassis declares no
Special1Internal, no joint_specialone and ships no *_specialone.erf, yet both
displays mapped S1. On the Radar that piece is the cockpit canopy - it matches
the CT's recess exactly - so it is remapped to HD and S1 is cleared. On the MFD
the S1 piece is the pelvis, a genuinely different component, and is deliberately
retained so the pelvis still renders; it simply never takes damage.

Whole tree after this change: 130 mech/display combinations, mean 0.949, median
0.955, minimum 0.795, none below 0.75 (was four).

MFD-RADAR-MAPPINGS.md is corrected and expanded. Three things it stated were
wrong and had caused real defects:

  - it instructed storing the unexploded rect in texuv and the exploded origin
    in offset, which is backwards and broke all 21 imported rows;
  - it cited Behemoth MFD x=281 and Black Hawk Radar x=85 as intentional odd
    coordinates to preserve, when both are transcription errors bounding blank
    space (218 transposed, and a lost leading digit of 285);
  - it recorded all 19 supplied BMPs as pixel-identical to the runtime art, when
    all 19 differ by 6-35% because the art had never been installed.

Added: the handedness rule and its one-line assertion; the .damage cross-check
for special zones; the derivation method above; a catalogue of every verified
defect; and a tooling-pitfalls section covering blob thresholds hiding small
parts, unreliable hole detection on anti-aliased art, ink coverage not implying
correct placement, and overlap audits needing blob ownership to avoid ~107 false
positives. It also notes that generate_comparison_maps.py compares coord.cpp
only to the measurement files and never to the artwork, so it reported "19
exact" throughout every one of these failures.

Requires a Windows VC6 rebuild of MW4.exe and hardware testing on physical
MFD/Radar displays.

Co-authored-by: Claude Opus 5 (Anthropic) <noreply@anthropic.com>
Co-authored-by: GitHub Copilot <copilot@github.com>
2026-08-09 13:14:32 -05:00
..
2026-06-26 10:55:33 -05:00