fix(ui): restore effect detail scrolling
Reflow selected Helpful/Harmful spell descriptions through the retained retail text shaper, bind their authored 0x10000127 information scrollbar independently from the list scrollbar, and allow display-only text to consume wheel scrolling without becoming selectable. Format Vitae recovery experience through retail's grouped integer presentation. Release build succeeds and all 5,832 tests pass with five intentional skips. Co-authored-by: OpenAI Codex <codex@openai.com>
This commit is contained in:
parent
16c21e299c
commit
82789eea88
9 changed files with 117 additions and 18 deletions
|
|
@ -80,6 +80,11 @@ invented character-sheet summary. Character/Vitae authored center surfaces
|
|||
are no longer composited twice, and the end-session button enters its Normal
|
||||
DAT state before hover.
|
||||
|
||||
The polish follow-up restores `gmEffectsUI`'s lower information viewport:
|
||||
selected spell name/description now reflows to the authored width and its own
|
||||
`0x10000127` scrollbar works independently of the upper effect-list scrollbar.
|
||||
Vitae recovery XP also uses retail's grouped integer presentation.
|
||||
|
||||
**Files:** `src/AcDream.App/UI/Layout/IndicatorBarController.cs`;
|
||||
`src/AcDream.App/UI/Layout/DatWidgetFactory.cs`;
|
||||
`src/AcDream.Core.Net/WorldSession.cs`; `src/AcDream.App/UI/RetailUiRuntime.cs`.
|
||||
|
|
|
|||
|
|
@ -726,6 +726,9 @@ The detail conformance pass also restores Vitae's omitted penalty explanation,
|
|||
ports the exact Character Information report/property meanings, prevents
|
||||
double-compositing authored translucent panel centers, and initializes the
|
||||
end-session control in its visible Normal DAT state before hover.
|
||||
Helpful/Harmful selected descriptions now use retail text reflow and the
|
||||
authored lower information scrollbar independently of the spell-list
|
||||
scrollbar; Vitae recovery XP uses grouped client-language integer formatting.
|
||||
The first connected gate exposed and corrected two retained-import defects:
|
||||
spellbook tabs are authored stateful text controls (not buttons), and retail
|
||||
text starts with zero margins. Real-DAT fixtures now pin spellbook binding,
|
||||
|
|
|
|||
|
|
@ -568,7 +568,9 @@ positive root 0x1000011F (inherits 0x10000122)
|
|||
negative root 0x10000121 (inherits 0x10000122)
|
||||
shared effects template 0x10000122
|
||||
effect list 0x10000123
|
||||
effect-list scrollbar 0x10000124
|
||||
information text 0x10000126
|
||||
information scrollbar 0x10000127
|
||||
effect row template 0x10000128 (300 x 32)
|
||||
row icon / name / duration 0x10000129 / 0x1000012A / 0x1000012B
|
||||
effect UI type property 0x1000000C
|
||||
|
|
@ -624,6 +626,13 @@ an active token stores its spell ID, so every layer of that spell highlights
|
|||
together and shows the shared name/description; clicking either layer again
|
||||
clears the selection.
|
||||
|
||||
`gmEffectsUI::UpdateSelection @ 0x004B7F90` concatenates spell name, a blank
|
||||
line, and spell description, then passes that one literal to
|
||||
`UIElement_Text::SetText`. The text element reflows the literal to its authored
|
||||
280-pixel information width. LayoutDesc `0x2100001B` supplies a separate
|
||||
scrollbar `0x10000127` for that 78-pixel-high information text; it does not
|
||||
reuse the effect-list scrollbar `0x10000124`.
|
||||
|
||||
`InfoRegion::InfoRegion @ 0x004F1450` creates each row with
|
||||
`UIElement_ListBox::AddItemFromTemplateList(template 0)`. In installed retail
|
||||
data the icon is x=0 width 32, name is x=37 width 188, and duration is x=225
|
||||
|
|
|
|||
|
|
@ -25,6 +25,11 @@ The skills paragraph is not optional. It explains that health, stamina, mana,
|
|||
and skills are reduced by the same percentage and warns about penalties above
|
||||
15 percent.
|
||||
|
||||
Every integer above is inserted with `StringInfo::AddVariable_Int`. Its
|
||||
`LInt_StringInfoData::ToString @ 0x0042F7E0` calls `NumToString` with grouping
|
||||
enabled, so recovery XP is rendered with the client language's thousands
|
||||
separator (for English, `61,000,000`, never `61000000`).
|
||||
|
||||
## Character Information
|
||||
|
||||
`gmCharacterInfoUI::Update @ 0x004BA790` clears `m_pMainText`, appends six
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue