acdream/docs/superpowers
Erik 2d7ea7446d docs(D.2b): paperdoll Slice 1 (equip slots) design spec
Sub-phase C, Slice 1 — bind the ~25 paperdoll equip slots to live
equipped-item data + make them drag-drop wield/unwield targets. No 3D
doll (that's Slice 2).

Brainstorm findings baked in:
- The handoff's "build the wire gap" premise is STALE: BuildGetAndWieldItem
  + SendGetAndWieldItem already shipped in B-Wire. The whole optimistic-move
  machine + InventoryController:IItemListDragHandler already exist — Slice 1
  mirrors them. Unwield is free (the inventory grid handler already does it).
- Found a latent bug: acdream's EquipMask enum diverges from canonical AC
  (acclient.h:3193 INVENTORY_LOC) from bit 0x2000 up (phantom HandArmor/
  FootArmor). Correct it to the verbatim retail values + a numeric-pin test.
  Blast radius is safe (4 round-trip test refs).
- Empty equip slots are TRANSPARENT (EmptySprite=0), per the user — faithful,
  zero Slice-2 rework.

Real scope: correct EquipMask (Core) + WieldItemOptimistic & equip-aware
rollback snapshot (Core) + ConfirmMove on the WieldObject 0x0023 handler
(Core.Net) + PaperdollController (App) + GameWindow wiring. Element-id→mask
map verified dump ↔ deep-dive §3a ↔ acclient.h.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 21:38:24 +02:00
..
plans docs(D.2b): inventory drag-drop implementation plan 2026-06-22 19:45:47 +02:00
specs docs(D.2b): paperdoll Slice 1 (equip slots) design spec 2026-06-22 21:38:24 +02:00