acdream/tools/LayoutDump
Erik f44f7641b1 tools(LayoutDump): --props and --media, for questions the decomp cannot answer
Two dump modes, both added because a chat bug turned on authored data rather
than code.

--props prints each state's property ids WITH VALUES. It is what settled the
unseen-text indicator regression: element 0x1000048C authors dat property 0x3B
("Invisible") per state —

    state 13 Ghosted  0x3B = True    -> hidden
    state 1  Normal   0x3B = False   -> shown

— which is what actually puts that element on screen. No amount of reading the
decomp would have produced those two booleans.

--media prints the RAW media sequence per state off the LayoutDesc, because
ElementInfo keeps only the FIRST image of a state (LayoutImporter.cs, the
`!imageRead` guard) and an animation is therefore invisible above that level.
It reports what it CANNOT do rather than implying an element has no media: raw
descriptors only carry what an element overrides, and states usually come from
a base element — for the indicator, base 0x10000527, which lives in a different
layout entirely. Following that chain means reimplementing LayoutImporter's
Resolve, so the mode says so instead of printing a misleading empty list.

What the two modes established between them, for whoever picks up the blink:
the media vocabulary includes MediaDescImage, MediaDescPause and MediaDescJump,
so an authored animation is a SEQUENCE with waits and a loop — a small program,
not a frame array. Supporting it means keeping the sequence through import and
running a media player, not just widening StateMedia to a list.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-21 10:41:54 +02:00
..
LayoutDump.csproj feat: regen buffs, wand aura, spellbook assess, indicator press flash 2026-08-20 20:38:28 +02:00
packages.neutral.lock.json feat: regen buffs, wand aura, spellbook assess, indicator press flash 2026-08-20 20:38:28 +02:00
Program.cs tools(LayoutDump): --props and --media, for questions the decomp cannot answer 2026-08-21 10:41:54 +02:00