fix(ui): preserve retail item titles and spacing

Carry PublicWeenieDesc material type into the live object model so examination titles use the DAT-authored material prefix. Preserve retail AddItemInfo empty appends and embedded armor separator, restoring the deliberate blank rows between appraisal sections.

Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
Erik 2026-07-24 05:21:01 +02:00
parent d78d09cfbc
commit 6718ee45a0
19 changed files with 341 additions and 46 deletions

View file

@ -132,6 +132,16 @@ AP-110 retains only item preview, live player/localization projections,
character detail, and creature FontInfo state; the connected item visual is
the remaining acceptance gate.
The next connected boots comparison exposed two final shared-path omissions.
CreateObject walked past `PublicWeenieDesc.MaterialType`, so
`ACCWeenieObject::GetObjectName(NAME_APPROPRIATE)` could not decorate the
authored base name, and the retained report builder discarded empty strings
even though retail `AddItemInfo` still appends their separator. Material type
now survives CreateObject -> EntitySpawn -> WeenieData -> ClientObject and the
DAT resolver prefixes it exactly once. Empty append fragments now preserve
retail's intentional blank section rows, including the blank after
Workmanship and the literal leading newline before Armor Level.
**Files:** `src/AcDream.Core.Net/Messages/AppraiseInfoParser.cs`;
`src/AcDream.App/UI/RetailUiRuntime.cs`;
`src/AcDream.App/UI/Layout/AppraisalUiController.cs`;