docs(issues): #145 — inventory panels occluded by full-window backdrop
B-Grid sub-window mount works (paperdoll base 0x100001D4 has 25+ equip-slot children, attached), but the gmInventoryUI panels render blank: the importer maps ZOrder from ReadOrder only, so the full-window backdrop (0x100001D0, ReadOrder 4) paints over the panels (ReadOrder 1-3). Retail keeps it behind via ZLevel (backdrop 100 vs panels 0), which the importer ignores (vitals were all ZLevel 0). Fix scoped in the issue. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
7d971a2b3e
commit
d81ea11a31
1 changed files with 19 additions and 0 deletions
|
|
@ -46,6 +46,25 @@ Copy this block when adding a new issue:
|
|||
|
||||
---
|
||||
|
||||
## #145 — Inventory window panels occluded by the full-window backdrop (importer ignores ZLevel)
|
||||
|
||||
**Status:** OPEN
|
||||
**Severity:** MEDIUM (blocks B-Grid visual acceptance — the gmInventoryUI nested panels render blank)
|
||||
**Filed:** 2026-06-20
|
||||
**Component:** ui — LayoutImporter / DatWidgetFactory z-order
|
||||
|
||||
**Description:** With `ACDREAM_RETAIL_UI=1`, F12 shows the `gmInventoryUI` (`0x21000023`) frame + title + the dark full-window backdrop sprite, but the three nested panels (paperdoll / backpack / 3D-items) render **blank**. The B-Grid sub-window mount IS attaching the panels' content — confirmed: the paperdoll base element `0x100001D4` (root of `0x21000024`) has 25+ equip-slot children — but the content is **occluded**.
|
||||
|
||||
**Root cause / status:** `DatWidgetFactory.Create` maps `ZOrder ← ReadOrder` only (`~:81`). In `0x21000023` the full-window backdrop element `0x100001D0` has `ReadOrder=4` (drawn AFTER the panels at `ReadOrder 1/2/3`), so it paints OVER them. Retail keeps the backdrop behind via **`ZLevel`** (backdrop `ZLevel=100` vs panels `ZLevel=0`); the importer ignores `ZLevel` because every vitals element was `ZLevel=0`, so it never mattered until now. Fix: factory `ZOrder` should honor `ZLevel` (higher `ZLevel` = further back) with `ReadOrder` as the tiebreaker — e.g. `ZOrder = ReadOrder − ZLevel·K`. `ElementInfo` has no `ZLevel` field yet (add it + read in `ElementReader.ToInfo` + carry in `Merge`). **Regression risk:** touches z-order for every window — must verify chat (`0x21000006`) + toolbar (`0x21000016`) `ZLevel`s (vitals are all 0) and visually regression-test.
|
||||
|
||||
**Files:** `src/AcDream.App/UI/Layout/DatWidgetFactory.cs` (`e.ZOrder = (int)info.ReadOrder`, ~:81); `src/AcDream.App/UI/Layout/ElementReader.cs` (`ElementInfo` — add `ZLevel`; `ToInfo`; `Merge`); `src/AcDream.App/UI/Layout/LayoutImporter.cs`.
|
||||
|
||||
**Research:** `docs/superpowers/specs/2026-06-20-d2b-inventory-grid-mount-design.md` (B-Grid); dat dump of `0x21000023` (panels ReadOrder 1-3 / ZLevel 0; backdrop `0x100001D0` ReadOrder 4 / ZLevel 100).
|
||||
|
||||
**Acceptance:** F12 shows the nested paperdoll/backpack/3D-items panels over the backdrop (backpack burden meter + slot borders visible); vitals/chat/toolbar unchanged; full suite green.
|
||||
|
||||
---
|
||||
|
||||
## #142 — Windowed-building interiors read "like outdoors" (indoor lighting regime is per-frame, not per-stage)
|
||||
|
||||
**Status:** OPEN
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue