docs: CH6 research landed — chat-window shell plan (CH6a/b/c)
Wrong-LayoutDesc root cause (0x21000006 vs retail 0x2100006F), resident floating windows toggled by keybind, 8 authored resize grips, global opacity options 0x10000080/81. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
47e40900f3
commit
81f53bfd46
2 changed files with 746 additions and 3 deletions
|
|
@ -107,9 +107,36 @@ implementer per slice against a pinned contract (per
|
|||
- **CH5 — closeout.** Register sweep, ledger flip, ISSUES updates,
|
||||
in-client test script for the user gate.
|
||||
- **CH6 — chat-window shell parity (filed 2026-08-09 at user gate round
|
||||
1).** Retail multi-window chat, per-window type filters + PostInit
|
||||
defaults (see color research §4), all-corner resize, opacity; research
|
||||
first.
|
||||
1; research complete:
|
||||
`docs/research/2026-08-09-chat-retail-window-shell.md`).** Three
|
||||
sub-slices:
|
||||
- **CH6a — correct main-window import + resize.** Swap the wrong
|
||||
LayoutDesc `0x21000006` for retail's `0x2100006F` and delete the
|
||||
downstream compensations (hand-cropped 490px ContentWidth, dropped
|
||||
800px resize bar, the 9px transcript patch, orphan-sibling pruning);
|
||||
teach `LayoutImporter` element type 9 (`UIElement_Resizebar`, 8
|
||||
authored grips: 4 edges + 4 corners via bools 0x2A–0x2D); fix the
|
||||
resize mask that excludes Top. Expected to also clear the round-1
|
||||
artifact report.
|
||||
- **CH6b — floating windows 1–4.** Mount `0x2100005B` ×4 as
|
||||
always-resident children per `gmGamePlayUI::SetupChildren
|
||||
@0x004E9EC0` (ids 0x10000505/0x1000050E/0x1000050F/0x10000510);
|
||||
keybind actions `ToggleFloatingChatWindow1..4` (retail defaults at
|
||||
`retail-default.keymap.txt:150-153`) through the dispatcher; the
|
||||
main window's 1/2/3/4 buttons are one-directional state mirrors
|
||||
(`gmMainChatUI::RecvNotice_SetPanelVisibility @0x004CCD80`), not
|
||||
the toggle; per-window PostInit filter defaults (color research §4)
|
||||
with the `windowId == m_eWindowID OR (windowId==0 && TypeIsActive)`
|
||||
display rule.
|
||||
- **CH6c — opacity.** Implement `UiRenderContext.AlphaMod`
|
||||
consumption (whole-composited-window alpha per
|
||||
`ChatInterface::SetOpacity @0x004F3120`); the two GLOBAL retail
|
||||
options `0x10000080` (unfocused) / `0x10000081` (focused,
|
||||
active >= default); retail defaults now, the user-facing Settings
|
||||
slider in the settings track. Persistence: local settings first —
|
||||
the retail per-window option array `0x1000008C` is stored by ACE as
|
||||
an opaque byte[] it never parses, so the wire format is its own
|
||||
deferred slice.
|
||||
|
||||
## Gates
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue