acdream/tests/AcDream.App.Tests/UI/Layout
Erik 2349f8b4df fix(chargen): Campaign CC gate round 1 Batch C — Summary how-to + scrollbar linkage
Commit 3/3: Summary how-to text + Commit 2's owed scrollbar linkage +
bookkeeping sweep.

- Ports gmCGSummaryPage::SetHowToText @0x0047ae20 into the Summary
  page's how-to box (0x10000404, HowToTextId was declared and unused
  since CC5). Retail concatenates ID_CharGen_SummaryHowTo + a heritage/
  gender-specific name-suggestion list (heritages 1-4 — Aluvian/
  Gharundim/Sho/Viamontian — only; heritages 5-13's cases in the same
  switch decompile to a vtable-slot artifact, the same decompiler-
  mangled-symbol class the Heritage page's own BonusSkillsKeyByHeritage
  table already documents, so no name-suggestion string exists for them
  and none is invented) + ID_CharGen_SummaryHowToEnd, directly
  concatenated (no separator literal) into ONE plain SetText call — no
  per-run font/color argument, unlike Heritage's ...WithFont calls, so
  this routes through DatRichText as a single DefaultColor segment.

- Wires the description boxes' linked scrollbar to actual text
  scrolling — Commit 2 made the scrollbar child (0x100002e7) BUILD as a
  real UiScrollbar; this binds scrollbar.Model = text.Scroll, the exact
  pattern ChatWindowController already uses for the chat transcript.
  Live-DAT-measured: only Heritage's description (0x100003c4) and
  Summary's how-to box (0x10000404) actually author this child —
  Profession/Town's shorter description boxes do not (a genuine retail
  authoring fact, not something to "fix" further).

Register: AP-215/AP-216/AP-217 rewritten (Batch C's Commit 1 already
retired AP-218/AD-103) — no further changes needed this commit; ISSUES
#366 (chat's new-unseen-text indicator, 0x1000048C under the chat
transcript 0x10000011) NARROWED — its own pre-filed "fix shape"
recommendation (a UiText child carve-out mirroring UiMeter's) is
EXACTLY what Commit 2 shipped, confirmed by that commit's own
client-wide sweep; #366 stays open for the still-missing behavioral
half (no controller drives the indicator's visibility/click).

Findings doc updated: GF-2/GF-3/GF-4/GF-6/GF-11a/GF-12/GF-14's text
half all marked FIXED with their own root-cause notes; the two
remaining "suspected shared roots" (frames/labels, rich text) marked
CONFIRMED + CLOSED.

Full App suite (Debug and Release, live-DAT): 5307 passed / 0 failed /
3 skipped (up from 5304 after Commit 2). Runtime suite: 1735/0,
unaffected.

Campaign CC gate round 1 Batch C is CODE-COMPLETE across all three
commits — GF-2, GF-3, GF-4, GF-6, GF-11a, GF-12, and GF-14's text half
are fixed; AP-216/AP-217 partially closed (register-honest about what
shipped vs what needs a palette-to-RGB pipeline this batch didn't add).
Pending the user's visual gate, with chat + the main game UI flagged
for extra attention (Commit 2's client-wide blast radius).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-16 12:34:38 +02:00
..
fixtures test(ui): FA3 -- social panel fixture dump, live-mount probe, conformance tests 2026-08-12 02:58:28 +02:00
AppraisalUiControllerTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
CharacterControllerTests.cs feat(render): Campaign V slice V11 commit 1 - delete ImGui, Studio, and the DevTools frontend 2026-07-28 23:56:04 +02:00
CharacterCreationLiveDatTests.cs fix(chargen): Campaign CC gate round 1 Batch C — Summary how-to + scrollbar linkage 2026-08-16 12:34:38 +02:00
CharacterCreationUiControllerTests.cs fix(chargen): Campaign CC gate round 1 Batch C — Summary how-to + scrollbar linkage 2026-08-16 12:34:38 +02:00
CharacterLayoutImportProbe.cs feat(player): port retail augmentation stat chain 2026-07-31 08:08:23 +02:00
CharacterManagementLiveDatTests.cs fix(ui,runtime): Campaign LA gate-round-2 batch-review fixes F1,F3-F8; file #401 2026-08-15 12:28:06 +02:00
CharacterManagementUiControllerTests.cs feat(chargen): Campaign CC slice CC7 — end-to-end create flow + connected checklist 2026-08-16 02:35:21 +02:00
CharacterOptionsPageControllerTests.cs fix #FA4-D6-D7,SF-8: revert three of FA4's four dimming un-dims (IgnoreFellowshipRequests, FellowshipAutoAcceptRequests, FellowshipShareLoot) 2026-08-12 07:33:42 +02:00
CharacterScreensFixedCanvasArbiterTests.cs fix(chargen): Campaign CC CC7 review fix round — F1-F9 — REVIEW-CLOSED 2026-08-16 03:13:02 +02:00
CharacterSheetProviderTests.cs feat(player): port retail augmentation stat chain 2026-07-31 08:08:23 +02:00
CharacterStatControllerTests.cs fix(ui): refresh live skill rows 2026-07-31 08:22:46 +02:00
ChatIndicatorButtonLiveMountProbeTests.cs fix #382: chat-window indicator buttons invisible until first hovered 2026-08-11 23:03:31 +02:00
ChatLayoutConformanceTests.cs feat(chat): retail text style — two-plane glyph outlines, authored SpewBox/chat styles 2026-08-10 19:28:34 +02:00
ChatLayoutFixtureGenerator.cs feat(chat): Campaign CH slice CH6a — retail chat-window layout + 8-grip resize 2026-08-10 09:38:27 +02:00
ChatOptionsDatDefaultsTests.cs feat(ui): Campaign OP slice OP5 — the Chat tab 2026-08-11 06:25:59 +02:00
ChatOptionsPageControllerTests.cs fix #380: Chat tab opacity sliders were missing their retail row captions 2026-08-11 23:01:22 +02:00
ChatTranscriptRendererTests.cs feat(chat): retail text style — two-plane glyph outlines, authored SpewBox/chat styles 2026-08-10 19:28:34 +02:00
ChatWindowControllerTests.cs fix(chat): CH6a/b rework — grip media, retail window-id model, floaty fixture 2026-08-10 13:09:32 +02:00
CombatLayoutConformanceTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
CombatUiControllerTests.cs fix: powerbar mode captions - jump 'Height' + combat 'Power'/'Accuracy' 2026-08-14 08:14:14 +02:00
ConfigOptionsPageControllerTests.cs fix #391: curated modern-only resolution list from the monitor's modes 2026-08-13 17:16:09 +02:00
CreatureAppraisalRowsTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
DatRichTextTests.cs fix(chargen): Campaign CC gate round 1 Batch C — rich text + labels + backdrops 2026-08-16 12:18:53 +02:00
DatStringResolverTemplateTests.cs fix: social gate round 2, part 2 - confirmation-dialog sentences + the 2026-08-13 21:10:42 +02:00
DatWidgetFactoryFontResolveTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
DatWidgetFactoryTests.cs fix(chargen): Campaign CC gate round 1 Batch C — rich text + labels + backdrops 2026-08-16 12:18:53 +02:00
EffectsUiControllerTests.cs fix(ui): OP2 rework — dormant UiDatElement subclasses, fixed Panel/CheckboxBitfield64 mechanism 2026-08-11 01:08:08 +02:00
ElementReaderTests.cs fix(ui): OP2 rework — dormant UiDatElement subclasses, fixed Panel/CheckboxBitfield64 mechanism 2026-08-11 01:08:08 +02:00
ExternalContainerControllerTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
FaPanelSlotProbeTests.cs research: Campaign FA lanes A-D + the U2 slot-table probe (social panel found) 2026-08-11 23:42:19 +02:00
FixtureLoader.cs test(ui): FA3 -- social panel fixture dump, live-mount probe, conformance tests 2026-08-12 02:58:28 +02:00
FloatingChatLayoutConformanceTests.cs fix(chat): CH6a/b rework — grip media, retail window-id model, floaty fixture 2026-08-10 13:09:32 +02:00
FloatingChatWindowControllerTests.cs feat(chat): Campaign CH slice CH6b — floating chat windows 1-4 2026-08-10 12:10:20 +02:00
IndicatorBarControllerTests.cs fix(movement): invalidate burden on enchantment changes 2026-07-31 10:16:27 +02:00
IndicatorDetailPanelControllerTests.cs fix(ui): restore effect detail scrolling 2026-07-17 13:28:18 +02:00
InventoryControllerTests.cs fix(movement): invalidate burden on enchantment changes 2026-07-31 10:16:27 +02:00
InventoryFrameImportProbe.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
ItemAppraisalTextFormatterTests.cs fix(ui): preserve retail item titles and spacing 2026-07-24 05:21:01 +02:00
ItemCooldownUiControllerTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
ItemListCellTemplateTests.cs feat(items): port retail shared cooldown overlays 2026-07-23 10:41:16 +02:00
JumpPowerbarControllerTests.cs feat(ui): port retail jump power bar 2026-07-13 10:22:12 +02:00
JumpPowerbarLayoutConformanceTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
KeyboardConfigControllerTests.cs fix #394 #395 #396: OP8 re-gate round — caption font, retail key names, capture dialog 2026-08-14 13:45:55 +02:00
KeyboardConfigLiveMountProbeTests.cs fix #396 crash: map WaitDialog class type 0x19 to UiDialogRoot; dialog-open failure lands on the contracted refusal path 2026-08-14 13:48:29 +02:00
LayoutConformanceTests.cs feat(ui): port retained widget foundations 2026-07-10 17:55:41 +02:00
LayoutImporterMediaBearingChildSweepTests.cs fix(chargen): Campaign CC gate round 1 Batch C — un-consume media-bearing children 2026-08-16 12:27:03 +02:00
LayoutImporterTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
MouseTurningSettingsMacroTests.cs feat(ui): Campaign OP slice OP3 — Options panel shell, open paths, Gameplay tab 2026-08-11 02:14:40 +02:00
OP2ReworkBlastRadiusConformanceTests.cs fix(ui): OP3 re-review residuals R1/R2/R3 (coordinator pass) 2026-08-11 03:25:40 +02:00
OptionPageModelTests.cs fix(ui,runtime): OP4 re-review residuals R1-R4 (coordinator pass) — OP4 CLOSED 2026-08-11 06:36:14 +02:00
OptionsPanelControllerTests.cs fix #381: Options-panel footer needs an opaque backing field 2026-08-11 23:01:43 +02:00
OptionsPanelLayoutConformanceTests.cs feat(ui): Campaign OP slice OP5 — the Chat tab 2026-08-11 06:25:59 +02:00
OptionsPanelLiveMountProbeTests.cs fix #385: Options dropdowns — white centered text + size-to-content popup 2026-08-13 08:51:57 +02:00
PaperdollClickMapTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
PaperdollControllerTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
PaperdollSlotBackgroundTests.cs fix(paperdoll): port quest-gated Aetheria slots 2026-07-13 09:55:20 +02:00
PaperdollToggleTests.cs feat(D.2b): Slice 2 — paperdoll armor/non-armor partition + Slots toggle state 2026-06-23 08:57:50 +02:00
PowerbarLayoutProbeTests.cs fix: trade gate round 4 - "The trade has been cancelled." + retail's 2026-08-14 12:45:10 +02:00
RadarControllerTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
RadarLayoutConformanceTests.cs feat(ui): port retail radar and compass 2026-07-10 16:14:37 +02:00
RadarLayoutFixtureGenerator.cs feat(ui): port retail radar and compass 2026-07-10 16:14:37 +02:00
RadarSnapshotProviderTests.cs refactor(app): key live projections by runtime identity 2026-07-25 21:50:58 +02:00
RetailDialogFactoryTests.cs fix(ui,net): Campaign LA gate round 2 — char-select exit confirmation, authored row justify, world name 2026-08-15 11:50:45 +02:00
RetailFixtureConformanceTests.cs feat(ui): port retail appraisal panel 2026-07-23 11:34:08 +02:00
RetailFpsControllerTests.cs fix #213: complete suicide and framerate presentation 2026-07-13 15:50:47 +02:00
RetailKeyNamesTests.cs fix #394 #395 #396: OP8 re-gate round — caption font, retail key names, capture dialog 2026-08-14 13:45:55 +02:00
RetailLayoutFixtureGenerator.cs test(ui): FA3 -- social panel fixture dump, live-mount probe, conformance tests 2026-08-12 02:58:28 +02:00
RetailPanelUiControllerTests.cs fix(ui): OP3 review fixes — byte-verified Magic chat lines, Gameplay/OptionPage shape, mid-air tri-state, shared geometry 2026-08-11 03:05:27 +02:00
RetailWindowFrameTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
RowTemplateResolverTests.cs feat(ui): FA4 -- fellowship page fully live 2026-08-12 04:40:53 +02:00
SelectedObjectControllerTests.cs feat(ui): double-click-to-buy (AP-171, user-approved) + #353 toolbar text fixes — authored right-justify and two-line name wrap (Fable) 2026-08-08 17:42:02 +02:00
SocialFellowshipPageControllerTests.cs fix: social panel completion batch (user gate 2026-08-13, "fix all") 2026-08-13 19:30:51 +02:00
SocialPanelControllerTests.cs fix: social panel completion batch (user gate 2026-08-13, "fix all") 2026-08-13 19:30:51 +02:00
SocialPanelLiveMountProbeTests.cs fix: social gate round 2, part 1 - border-only move cursor, literal-\n 2026-08-13 20:36:24 +02:00
SpellbookRowStyleTests.cs fix(ui): keep spellbook tab captions above chrome 2026-07-15 17:02:14 +02:00
SpellbookWindowControllerTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
SpellcastingUiControllerTests.cs feat(ui): the spell-bar drop ring — retail's authored drag-accept state, and the ring exposed a real drop off-by-one 2026-08-08 20:18:51 +02:00
SpellExamineComponentTemplateFactoryTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
ToolbarControllerTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
ToolbarInputControllerTests.cs feat(ui): complete retail quick-slot input 2026-07-11 08:59:49 +02:00
UiDatElementTests.cs fix(ui): Campaign LA gate round 2 — character-select scales as one authored canvas 2026-08-15 10:39:19 +02:00
UiPropertyBagTests.cs feat(chat): retail text style — two-plane glyph outlines, authored SpewBox/chat styles 2026-08-10 19:28:34 +02:00
UiTextLayoutCacheTests.cs test(app): put every strict-zero site on the probe (#250) 2026-07-29 03:49:13 +02:00
UiViewportFactoryTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
VendorUiControllerTests.cs fix(vendor): re-gate residuals — MaxStackSize is the stack operand, wire-authored use radius, purse summaries 2026-08-08 15:23:10 +02:00
VitalsBindingTests.cs feat(ui): port retained widget foundations 2026-07-10 17:55:41 +02:00
VividTargetIndicatorLayoutTests.cs feat(selection): port retail offscreen target indicator 2026-07-18 07:41:12 +02:00