fix(ui): restore modern spell formula presentation
Resolve spell-examination component cells through their DAT icon DIDs, project scarab and prismatic-taper formulas when ACE disables component enforcement, and version authored window geometry so stale examination sizes reset once without losing user layout behavior. Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
parent
3e31b0ac70
commit
d4ce64f56b
22 changed files with 307 additions and 41 deletions
|
|
@ -87,6 +87,37 @@ favorite-component events use WCIDs, resolved through DualEnumIDMap
|
|||
`0x27000002`. The magic-school focus map is retail enum category `0x28`, key
|
||||
`0x10000001`.
|
||||
|
||||
ACE integration policy (IA-21): when player BoolProperty `68`
|
||||
(`SpellComponentsRequired`) is false, casting already bypasses component
|
||||
preflight. In that server mode acdream also projects
|
||||
`InqScarabOnlyFormula` in Spell examination, so an inactive account-randomized
|
||||
legacy recipe is not exposed. With enforcement enabled, the focus/infusion
|
||||
branch above remains byte-for-byte retail.
|
||||
|
||||
### Spell-examination formula media and extent
|
||||
|
||||
Retail: `SpellExamineUI::ExamineSpell` `0x004B6210`,
|
||||
`gmFloatyExaminationUI::UpdateFromPlayerModule` `0x004D4250`, and LayoutDesc
|
||||
`0x2100006B`.
|
||||
|
||||
```text
|
||||
for each SCID in GetAppropriateSpellFormula(spell):
|
||||
component = SpellComponentTable[SCID]
|
||||
texture = GetSpellComponentIcon(component.iconDID)
|
||||
cell = AddItemFromTemplateList(0x1000032E)
|
||||
cell.icon = texture
|
||||
cell.missingOverlay = !ComponentTracker.ComponentIsOwned(component.WCID)
|
||||
|
||||
initial floaty extent = LayoutDesc root extent = 310 x 400 pixels
|
||||
restore user position/size from player UI state
|
||||
```
|
||||
|
||||
The component icon lookup consumes the component's icon DID, not its WCID.
|
||||
acdream's retained-layout persistence carries an authored-geometry revision:
|
||||
when a shipped LayoutDesc extent correction invalidates an older saved size,
|
||||
only width/height reset once; position, visibility, and later user resizing
|
||||
remain persistent like retail.
|
||||
|
||||
## Authoritative enchantment events
|
||||
|
||||
Retail dispatchers:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue