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
|
|
@ -73,6 +73,7 @@ public static class GameEventWiring
|
|||
Action<uint /*weenieError*/>? onUseDone = null,
|
||||
ItemManaState? itemMana = null,
|
||||
Action<GameEvents.CharacterConfirmationRequest>? onConfirmationRequest = null,
|
||||
Action<GameEvents.CharacterConfirmationDone>? onConfirmationDone = null,
|
||||
FriendsState? friends = null,
|
||||
SquelchState? squelch = null,
|
||||
Action<IReadOnlyList<(uint Id, uint Amount)>>? onDesiredComponents = null)
|
||||
|
|
@ -123,6 +124,16 @@ public static class GameEventWiring
|
|||
});
|
||||
}
|
||||
|
||||
if (onConfirmationDone is not null)
|
||||
{
|
||||
dispatcher.Register(GameEventType.CharacterConfirmationDone, e =>
|
||||
{
|
||||
var done = GameEvents.ParseCharacterConfirmationDone(e.Payload.Span);
|
||||
if (done is not null)
|
||||
onConfirmationDone(done.Value);
|
||||
});
|
||||
}
|
||||
|
||||
if (friends is not null)
|
||||
{
|
||||
dispatcher.Register(GameEventType.FriendsListUpdate, e =>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue