feat(ui): port retail dialog factory lifecycle
Replace the single mutable confirmation service with retail's property-backed DialogFactory model: fresh DAT roots, context ids, queue groups, priority preemption, callback/close-notice ordering, and context cancellation. Route /die, server confirmation aborts, and guarded item use through focused semantic owners. Co-Authored-By: Codex <codex@openai.com>
This commit is contained in:
parent
43f7c7807c
commit
66bdae7a83
22 changed files with 1442 additions and 220 deletions
|
|
@ -70,7 +70,8 @@ fill-components. `ClientCommandController` keeps the panel layer independent
|
|||
of App/network services; `WorldSession` sends the exact game-action or control
|
||||
message for server-backed families. Friends and squelch databases are parsed
|
||||
into authoritative Core state, confirmation requests use the imported retail
|
||||
dialog, and unknown `/` commands still publish `SendServerCommandCmd` in
|
||||
dialog catalog through the ported context/queue/callback factory, and unknown
|
||||
`/` commands still publish `SendServerCommandCmd` in
|
||||
canonical `@` form so ACE administrator commands continue to work. Both chat
|
||||
backends use the same router.
|
||||
|
||||
|
|
@ -83,9 +84,16 @@ showing the live `FPS` and `DEG` values with the authored font and two-decimal
|
|||
format. `/framrate` remains unknown because retail registers no misspelled
|
||||
alias.
|
||||
|
||||
The reusable-dialog follow-up ports `DialogFactory @ 0x004773C0..0x00478470`
|
||||
and type-1 `ConfirmationDialog` rather than sharing one mutable widget. Every
|
||||
display gets a fresh LayoutDesc `0x2100003C` root; `/die`, server confirmation
|
||||
tuples (including `CharacterConfirmationDone` aborts), and PK/NPK/volatile-rare
|
||||
item use now share its property-backed result and lifecycle.
|
||||
|
||||
**Research:**
|
||||
`docs/research/2026-07-13-retail-client-command-routing-pseudocode.md`;
|
||||
`docs/research/2026-07-13-retail-client-command-families-pseudocode.md`;
|
||||
`docs/research/2026-07-13-retail-dialog-factory-pseudocode.md`;
|
||||
`ClientCommunicationSystem::OnChatCommand @ 0x00581320`;
|
||||
`ClientCommunicationSystem::DoLifestone @ 0x0056FC70`;
|
||||
`CM_Character::Event_TeleToLifestone @ 0x006A1B90`.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue