From c73e8c05397f77598a74556f792d6b7fad439114 Mon Sep 17 00:00:00 2001 From: Erik Date: Mon, 24 Aug 2026 21:32:19 +0200 Subject: [PATCH] =?UTF-8?q?docs(CT):=20CT1=20landed=20=E2=80=94=20ledger?= =?UTF-8?q?=20+=20three=20binding=20corrections?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- ...6-08-24-character-panel-parity-campaign.md | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/docs/plans/2026-08-24-character-panel-parity-campaign.md b/docs/plans/2026-08-24-character-panel-parity-campaign.md index ae1eaf35..5c2cbcfd 100644 --- a/docs/plans/2026-08-24-character-panel-parity-campaign.md +++ b/docs/plans/2026-08-24-character-panel-parity-campaign.md @@ -109,7 +109,26 @@ the composing function verbatim before writing a line of C#. ## Slices -**CT1 — DAT ground truth + pins.** Live-DAT probe of layout +**CT1 — DAT ground truth + pins. LANDED `ca4100e7` (2026-08-24).** +Research: `docs/research/2026-08-24-campaign-ct-dat-ground-truth.md`; +9 InstalledDat pins in `CharacterPanelLiveDatTests`. Three corrections +now BINDING on later slices: +(a) the character root (`0x10000227`, Type-8 TabControl) authors NO +min/max constraints and `MountCharacter` wires no `DatConstraintSource` +— CT6 must first find retail's actual minimum mechanism in the decomp +(likely class behavior, not a DAT property); +(b) row templates are reachable ONLY via the targeted +`ImportInfos(dats, layoutId, elementId)` overload (`0x10000248` stat +row in `0x21000045`; `0x10000536` title row in `0x2100005E`) — the +plain import's #375 prototype-skip hides them; +(c) authored row geometry: icon 20x20 at X=0 (code: 16x16 at X=4), +name X=25 W=150, value X=175 W=100 right-justified, 7px gutter to the +282px row edge; row Highlight media is `0x06000F93` (code uses +`0x06001397` — flagged, CT5 verifies). +Title chain verified end-to-end: titleId → EnumMapper `0x22000041` +(canonical key, e.g. `ID_CharacterTitle_War_Mage`) → compute_str_hash → +StringTable `0x2300000E` → text (id 13 = "War Mage"). +Original scope: Live-DAT probe of layout `0x2100002E`: attribute/skill row templates (icon x/y vs our hand-built rows), the value-column right margin, header element fonts/colors (level `0x1000023B` color — item 5), Titles-page elements