fix(combat): preserve authored meter child geometry
Carry the consumed dark-range child's own retail edge policy into the procedural scrollbar, widening it to the authored post-reflow interval without covering the rendered labels. Restore the bright layer to live attack-charge feedback across the full bar from the left. Co-Authored-By: Codex <codex@openai.com>
This commit is contained in:
parent
f8c174d707
commit
e671b8a5c4
10 changed files with 66 additions and 105 deletions
|
|
@ -185,11 +185,11 @@ The three visual layers remain separate. The gray scrollbar track spans the
|
|||
whole authored control. Retail skill-gates element `0x100005EF` to Recklessness
|
||||
advancement class `Trained` or higher when scalar message `0x0A` is received.
|
||||
Per the connected visual gate, acdream uses that dark-red media as the always-
|
||||
visible middle baseline and renders the bright texture as a desired-power band
|
||||
from the absolute left edge to the green thumb (intentional divergence IA-20);
|
||||
the remaining exact skill-gated treatment stays in AP-112. Retail instead drives
|
||||
the meter child independently through `RecvNotice_SetPowerbarLevel`, while the
|
||||
green thumb is driven by `RecvNotice_DesiredAttackPowerChanged`.
|
||||
visible middle baseline (intentional divergence IA-20); the remaining exact
|
||||
skill-gated treatment stays in AP-112. The bright child retains retail's live
|
||||
`RecvNotice_SetPowerbarLevel` input and spans the entire scrollbar from the
|
||||
absolute left edge, independently of the dark child's inset geometry. The green
|
||||
thumb remains driven by `RecvNotice_DesiredAttackPowerChanged`.
|
||||
|
||||
The meter authors attribute `0x6F = 1`. `UIElement_Meter` constructor and
|
||||
`DrawChildren @ 0x0046FBD0` make direction 1 the forward horizontal clip, so
|
||||
|
|
@ -205,10 +205,10 @@ value `1`, right-aligns values `3` and `5`, and treats every other value as left
|
|||
Power uses right justification.
|
||||
|
||||
The combat subtree inherits from an 800-pixel prototype and reflows into its
|
||||
610-pixel mounted root on the first layout traversal. Therefore the controller
|
||||
must not snapshot sibling positions during `Bind`: before reflow the bar is
|
||||
`x=8,w=707` and Power is `x=611`; after retail anchoring they are `x=8,w=507`
|
||||
and `x=411`. `ScalarRangeProvider` reads the live sibling rectangles during
|
||||
drawing, producing the centered local interval `x=104,w=299`. Freezing the
|
||||
pre-reflow width clamps that range to the bar's right edge and visibly shifts
|
||||
the dark texture toward Power.
|
||||
610-pixel mounted root on the first layout traversal. Scrollbars consume their
|
||||
DAT children procedurally, so the dark child must retain its own four-edge
|
||||
`UiLayoutPolicy`; copying only its sprite loses the child geometry. The authored
|
||||
child starts at `x=70,w=567` inside the inherited 707-pixel meter and its
|
||||
proportional edge modes reflow to `x=50,w=407` inside the mounted 507-pixel bar.
|
||||
This is the wider centered interval that clears the rendered Speed/Power words;
|
||||
using the full 100-pixel text element boxes produced an overly narrow range.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue