feat(ui): Campaign OP slice OP5 — the Chat tab
Binds LayoutDesc 0x2100005C through OP2's template-list mechanism and OP3's per-page OptionPage model: the General Options header + two DualHash-linked opacity sliders (Option_DefaultOpacity_Property 0x10000080 / Option_ActiveOpacity_Property 0x10000081, live-apply on drag through RetailWindowOpacityController, defaults read from the installed DAT's DBProperties collection at DID 0x78000001 via ChatOptionsDatDefaults), and the five per-window text-filter blocks (main window 12 rows minus Gameplay, four floaties 13 rows each — the byte-verified authored order cross-checked against the raw gmChatOptionsUI::InitOptions/AddCheckboxBitfield64Option pseudo-C, not just the research doc's own table) writing AcDream.Core.Chat. ChatWindowState directly, the same state CH6's chat windows already read. AP-195 retired: ported both halves left open at the OP2 re-review — the ALL-set LED media swap (new UiButton.FaceFileOverride, driven by the block-level P0x10000082/P0x10000083 sprites now threaded through ElementInfo/DatWidgetFactory) and the CreateChildren self-sizing tail (UiCheckboxBitfield64.Height grows with its stacked row content; the enclosing ListBox reflows around the block's FINAL height via the new UiTemplateListBox.AddPrebuiltRow, reusing the ListBox's own stacking rather than a third stacking path). AP-187 broadened to cover the main window's own filter (previously only the four floaties) and the new live-editing write path. The main chat window's filter (retail window id 8, ChatWindowState id 0) gains its own settings.json persistence (ChatSettings. ChatWindowMainFilter) alongside the pre-existing floaty 1-4 fields; opacity persistence is now wired on every live slider change, not only through the old dev-scaffold Settings panel. Fixture regeneration (ACDREAM_REGENERATE_UI_FIXTURES=1) picked up the new ElementInfo.LedCheckedSprite/LedUncheckedSprite fields across all 19 committed layout fixtures — purely additive, confirmed against the live installed DAT (0x10000520's own 0x82/0x83 properties resolve to 0x06004D17/0x06004D19 exactly as AP-195 documented). Conformance: FilterRows/FilterBlocks pinned against the byte-verified authored order and ChatWindowState's own default constants; the AP-195 LED swap and self-sizing behavior; the DAT opacity-default extraction against the live installed DAT; live filter/opacity writes reaching ChatWindowState/RetailWindowOpacityController; OnShown re-seed and Reset/Defaults ghosting per the OP4 binding-pattern discipline. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
4798302226
commit
e71e5a9614
52 changed files with 4540 additions and 40 deletions
|
|
@ -205,6 +205,8 @@
|
|||
"Children": [],
|
||||
"TabTable": [],
|
||||
"TemplateList": [],
|
||||
"LedCheckedSprite": 0,
|
||||
"LedUncheckedSprite": 0,
|
||||
"ScrollbarElementId": 0
|
||||
},
|
||||
{
|
||||
|
|
@ -261,6 +263,8 @@
|
|||
"Children": [],
|
||||
"TabTable": [],
|
||||
"TemplateList": [],
|
||||
"LedCheckedSprite": 0,
|
||||
"LedUncheckedSprite": 0,
|
||||
"ScrollbarElementId": 0
|
||||
},
|
||||
{
|
||||
|
|
@ -342,6 +346,8 @@
|
|||
"Children": [],
|
||||
"TabTable": [],
|
||||
"TemplateList": [],
|
||||
"LedCheckedSprite": 0,
|
||||
"LedUncheckedSprite": 0,
|
||||
"ScrollbarElementId": 0
|
||||
},
|
||||
{
|
||||
|
|
@ -465,6 +471,8 @@
|
|||
"Children": [],
|
||||
"TabTable": [],
|
||||
"TemplateList": [],
|
||||
"LedCheckedSprite": 0,
|
||||
"LedUncheckedSprite": 0,
|
||||
"ScrollbarElementId": 0
|
||||
},
|
||||
{
|
||||
|
|
@ -588,6 +596,8 @@
|
|||
"Children": [],
|
||||
"TabTable": [],
|
||||
"TemplateList": [],
|
||||
"LedCheckedSprite": 0,
|
||||
"LedUncheckedSprite": 0,
|
||||
"ScrollbarElementId": 0
|
||||
},
|
||||
{
|
||||
|
|
@ -682,6 +692,8 @@
|
|||
"Children": [],
|
||||
"TabTable": [],
|
||||
"TemplateList": [],
|
||||
"LedCheckedSprite": 0,
|
||||
"LedUncheckedSprite": 0,
|
||||
"ScrollbarElementId": 0
|
||||
},
|
||||
{
|
||||
|
|
@ -776,6 +788,8 @@
|
|||
"Children": [],
|
||||
"TabTable": [],
|
||||
"TemplateList": [],
|
||||
"LedCheckedSprite": 0,
|
||||
"LedUncheckedSprite": 0,
|
||||
"ScrollbarElementId": 0
|
||||
},
|
||||
{
|
||||
|
|
@ -1975,16 +1989,22 @@
|
|||
"Children": [],
|
||||
"TabTable": [],
|
||||
"TemplateList": [],
|
||||
"LedCheckedSprite": 0,
|
||||
"LedUncheckedSprite": 0,
|
||||
"ScrollbarElementId": 0
|
||||
}
|
||||
],
|
||||
"TabTable": [],
|
||||
"TemplateList": [],
|
||||
"LedCheckedSprite": 0,
|
||||
"LedUncheckedSprite": 0,
|
||||
"ScrollbarElementId": 268435474
|
||||
}
|
||||
],
|
||||
"TabTable": [],
|
||||
"TemplateList": [],
|
||||
"LedCheckedSprite": 0,
|
||||
"LedUncheckedSprite": 0,
|
||||
"ScrollbarElementId": 0
|
||||
},
|
||||
{
|
||||
|
|
@ -2079,6 +2099,8 @@
|
|||
"Children": [],
|
||||
"TabTable": [],
|
||||
"TemplateList": [],
|
||||
"LedCheckedSprite": 0,
|
||||
"LedUncheckedSprite": 0,
|
||||
"ScrollbarElementId": 0
|
||||
},
|
||||
{
|
||||
|
|
@ -2202,6 +2224,8 @@
|
|||
"Children": [],
|
||||
"TabTable": [],
|
||||
"TemplateList": [],
|
||||
"LedCheckedSprite": 0,
|
||||
"LedUncheckedSprite": 0,
|
||||
"ScrollbarElementId": 0
|
||||
},
|
||||
{
|
||||
|
|
@ -2296,6 +2320,8 @@
|
|||
"Children": [],
|
||||
"TabTable": [],
|
||||
"TemplateList": [],
|
||||
"LedCheckedSprite": 0,
|
||||
"LedUncheckedSprite": 0,
|
||||
"ScrollbarElementId": 0
|
||||
},
|
||||
{
|
||||
|
|
@ -2750,6 +2776,8 @@
|
|||
"Children": [],
|
||||
"TabTable": [],
|
||||
"TemplateList": [],
|
||||
"LedCheckedSprite": 0,
|
||||
"LedUncheckedSprite": 0,
|
||||
"ScrollbarElementId": 0
|
||||
},
|
||||
{
|
||||
|
|
@ -2849,6 +2877,8 @@
|
|||
"Children": [],
|
||||
"TabTable": [],
|
||||
"TemplateList": [],
|
||||
"LedCheckedSprite": 0,
|
||||
"LedUncheckedSprite": 0,
|
||||
"ScrollbarElementId": 0
|
||||
},
|
||||
{
|
||||
|
|
@ -2948,11 +2978,15 @@
|
|||
"Children": [],
|
||||
"TabTable": [],
|
||||
"TemplateList": [],
|
||||
"LedCheckedSprite": 0,
|
||||
"LedUncheckedSprite": 0,
|
||||
"ScrollbarElementId": 0
|
||||
}
|
||||
],
|
||||
"TabTable": [],
|
||||
"TemplateList": [],
|
||||
"LedCheckedSprite": 0,
|
||||
"LedUncheckedSprite": 0,
|
||||
"ScrollbarElementId": 0
|
||||
},
|
||||
{
|
||||
|
|
@ -3169,6 +3203,8 @@
|
|||
"Children": [],
|
||||
"TabTable": [],
|
||||
"TemplateList": [],
|
||||
"LedCheckedSprite": 0,
|
||||
"LedUncheckedSprite": 0,
|
||||
"ScrollbarElementId": 0
|
||||
},
|
||||
{
|
||||
|
|
@ -3385,11 +3421,15 @@
|
|||
"Children": [],
|
||||
"TabTable": [],
|
||||
"TemplateList": [],
|
||||
"LedCheckedSprite": 0,
|
||||
"LedUncheckedSprite": 0,
|
||||
"ScrollbarElementId": 0
|
||||
}
|
||||
],
|
||||
"TabTable": [],
|
||||
"TemplateList": [],
|
||||
"LedCheckedSprite": 0,
|
||||
"LedUncheckedSprite": 0,
|
||||
"ScrollbarElementId": 0
|
||||
},
|
||||
{
|
||||
|
|
@ -3513,6 +3553,8 @@
|
|||
"Children": [],
|
||||
"TabTable": [],
|
||||
"TemplateList": [],
|
||||
"LedCheckedSprite": 0,
|
||||
"LedUncheckedSprite": 0,
|
||||
"ScrollbarElementId": 0
|
||||
},
|
||||
{
|
||||
|
|
@ -3876,6 +3918,8 @@
|
|||
"Children": [],
|
||||
"TabTable": [],
|
||||
"TemplateList": [],
|
||||
"LedCheckedSprite": 0,
|
||||
"LedUncheckedSprite": 0,
|
||||
"ScrollbarElementId": 0
|
||||
},
|
||||
{
|
||||
|
|
@ -5125,6 +5169,8 @@
|
|||
"Children": [],
|
||||
"TabTable": [],
|
||||
"TemplateList": [],
|
||||
"LedCheckedSprite": 0,
|
||||
"LedUncheckedSprite": 0,
|
||||
"ScrollbarElementId": 0
|
||||
},
|
||||
{
|
||||
|
|
@ -5177,6 +5223,8 @@
|
|||
"Children": [],
|
||||
"TabTable": [],
|
||||
"TemplateList": [],
|
||||
"LedCheckedSprite": 0,
|
||||
"LedUncheckedSprite": 0,
|
||||
"ScrollbarElementId": 0
|
||||
},
|
||||
{
|
||||
|
|
@ -5229,6 +5277,8 @@
|
|||
"Children": [],
|
||||
"TabTable": [],
|
||||
"TemplateList": [],
|
||||
"LedCheckedSprite": 0,
|
||||
"LedUncheckedSprite": 0,
|
||||
"ScrollbarElementId": 0
|
||||
},
|
||||
{
|
||||
|
|
@ -5281,16 +5331,22 @@
|
|||
"Children": [],
|
||||
"TabTable": [],
|
||||
"TemplateList": [],
|
||||
"LedCheckedSprite": 0,
|
||||
"LedUncheckedSprite": 0,
|
||||
"ScrollbarElementId": 0
|
||||
}
|
||||
],
|
||||
"TabTable": [],
|
||||
"TemplateList": [],
|
||||
"LedCheckedSprite": 0,
|
||||
"LedUncheckedSprite": 0,
|
||||
"ScrollbarElementId": 0
|
||||
}
|
||||
],
|
||||
"TabTable": [],
|
||||
"TemplateList": [],
|
||||
"LedCheckedSprite": 0,
|
||||
"LedUncheckedSprite": 0,
|
||||
"ScrollbarElementId": 0
|
||||
},
|
||||
{
|
||||
|
|
@ -5615,15 +5671,21 @@
|
|||
"Children": [],
|
||||
"TabTable": [],
|
||||
"TemplateList": [],
|
||||
"LedCheckedSprite": 0,
|
||||
"LedUncheckedSprite": 0,
|
||||
"ScrollbarElementId": 0
|
||||
}
|
||||
],
|
||||
"TabTable": [],
|
||||
"TemplateList": [],
|
||||
"LedCheckedSprite": 0,
|
||||
"LedUncheckedSprite": 0,
|
||||
"ScrollbarElementId": 0
|
||||
}
|
||||
],
|
||||
"TabTable": [],
|
||||
"TemplateList": [],
|
||||
"LedCheckedSprite": 0,
|
||||
"LedUncheckedSprite": 0,
|
||||
"ScrollbarElementId": 0
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue