docs(D.5.1): toolbar phase-1 implementation plan (+ spec wiring-delta note)
12-task TDD plan: register D.5.1 -> CreateObject IconId capture -> ItemRepository.EnrichItem -> spawn-event icon wiring -> persist shortcuts -> IconComposer (CPU composite) -> UiItemSlot -> UiItemList + factory branch -> ToolbarController -> GameWindow mount -> visual gate -> bookkeeping. Concrete call sites pinned (WorldSession.cs:701 EntitySpawned, GameEventWiring.WireAll, GameWindow Items@598, BuildUse 0x0036). Synced the spec's CreateObject section with the wider-than-expected wiring found during planning. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
0b5e849325
commit
44fabd350e
2 changed files with 1111 additions and 0 deletions
|
|
@ -156,6 +156,13 @@ mirrors the shipped vitals/chat re-drive exactly: dat `LayoutDesc` → `LayoutIm
|
|||
- **Change:** in `CreateObject.TryParse`, capture the `IconId` (currently discarded at
|
||||
`CreateObject.cs:516`) — and the underlay/overlay/effect ids if present in the same block —
|
||||
onto the parsed object so `ItemRepository` stores them on `ItemInstance` (fields already exist).
|
||||
- **Planning delta (see the plan):** fact-gathering found this is wider than "just capture IconId."
|
||||
acdream has NO `CreateObject`→`ItemRepository` wiring at all (the repo is populated only from
|
||||
`PlayerDescription` with stub `ItemInstance`s), and `Parsed.Shortcuts` is parsed then discarded
|
||||
in `GameEventWiring`. So the plan adds three small wiring pieces: capture IconId (Task 1), enrich
|
||||
the repo from the `WorldSession.EntitySpawned` event (Tasks 2–3, `ItemRepository.EnrichItem`),
|
||||
and persist the shortcut list (Task 4). The icon source is CONFIRMED to be `CreateObject` for
|
||||
contained pack items (ACE `WorldObject_Networking.cs:79` writes IconId unconditionally).
|
||||
- **Step 0 verification:** confirm against **ACE source** (`WorldObject.SerializeCreateObject`
|
||||
/ the weenie property serialization) that a *contained* pack item's `CreateObject` actually
|
||||
carries `IconId` (synthesis risk #3 — LIKELY, not yet byte-traced). Reading ACE is sufficient;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue