fix(chargen): Campaign CC gate round 1 re-test 2 — R3-3 skills info-box VerticalJustify
The info-box title (0x100003fb, Y=435 H=100) and description (0x100003fc, Y=460 H=100) panes' own authored boxes overlap by 75px, live-DAT-measured — retail relies on vertical justification, not disjoint rects, to keep them visually separate. Neither pane authors dat property 0x15, so both fall to this port's shared unauthored-VJustify default (currently Center). Byte-traced retail's real ctor default (UIElement_Text::UIElement_Text @0x004685ff, m_eVerticalJustification = 4) against UIElement_Text:: CalcJustification @0x00467260's actual enum semantics (1=Center, 3-or-5= the far edge/Bottom, anything else INCLUDING the ctor's own default of 4 = the near edge/Top): the correct unauthored default is Top, not Center — a genuine client-wide enum-mapping bug in this port. Under Top both panes render near their own box's top edge (25px apart, no collision); under Center both cluster toward the middle of their overlapping boxes. Scoped fix: CharacterCreationSkillsPage force-sets VerticalJustify=Top on both panes directly, rather than fixing the shared mapping/default — that bug is client-wide and could regress already-shipped FROZEN surfaces (vitals, chat, main game UI, Options) that may rely on the current Center default. The shared fix is filed as ISSUES #410 / register AD-104 for its own dedicated investigation + regression sweep. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
7d6a7898f6
commit
7f6e93033f
4 changed files with 143 additions and 1 deletions
|
|
@ -433,6 +433,30 @@ public sealed class CharacterCreationUiControllerTests
|
|||
JoinedText(environment.SkillInfoText()));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// R3-3 (Campaign CC gate round 1 re-test 2): the info-box title and
|
||||
/// description panes' own AUTHORED boxes overlap by 75px (live-DAT-
|
||||
/// measured, see <see cref="CharacterCreationSkillsPage"/>'s
|
||||
/// constructor comment for the full geometry + decomp citation) —
|
||||
/// retail avoids the visual collision via vertical justification, not
|
||||
/// disjoint rects. Pins that the page forces both panes to Top so the
|
||||
/// title sits near ITS box's own top and the description sits near
|
||||
/// its own, instead of both clustering toward the middle of their
|
||||
/// overlapping boxes under the shared (currently wrong, ISSUES #410)
|
||||
/// Center default.
|
||||
/// </summary>
|
||||
[Fact]
|
||||
public void SkillsPage_InfoBoxPanes_ForceTopVerticalJustify_ToAvoidTitleDescriptionOverlap()
|
||||
{
|
||||
using var environment = new EnvironmentHarness();
|
||||
environment.Controller.Open();
|
||||
environment.Runtime.SelectHeritageDirect(AluvianId);
|
||||
environment.TabButton(CharacterCreationUiController.SkillsTabElementId).OnClick!();
|
||||
|
||||
Assert.Equal(VJustify.Top, environment.SkillInfoTitle().VerticalJustify);
|
||||
Assert.Equal(VJustify.Top, environment.SkillInfoText().VerticalJustify);
|
||||
}
|
||||
|
||||
/// <summary>R2-4a: retail re-selects the row after an arrow click too
|
||||
/// (<c>ListenToElementMessage @0x004814c0</c>'s own
|
||||
/// <c>SetSelectedItem(...,1)</c> call following
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue