fix(ui): FA5 mechanism-review SF-1 — remove the invented offline-vassal name-grey

The FA5 mechanism review found the offline-vassal name-grey
(OfflineNameColor) is an invented visual: retail's UpdateVassalsData
@004924c3 writes the vassal name with no colour change, and the offline
cue is EXCLUSIVELY the authored 0x100004AA marker (already wired,
SetVisible per online state). Removed OfflineNameColor; the vassal name
always renders in the normal white. The Allegiance page now carries NO
invented tint (unlike Fellowship's registered leader/selection tints).
Pinned by Allegiance_OfflineCue_IsTheMarkerOnly_NameStaysWhite (marker
visible iff offline, name always white). AD-82's FA5 addendum corrected
(it had described the now-removed grey as 'covered by the marker'); AD-86
count corrected seven -> nine.

Full Release suite: 13,297 passed / 4 skipped / 0 failed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Erik 2026-08-12 09:07:58 +02:00
parent f12aefe948
commit eac28dc1f0
3 changed files with 65 additions and 5 deletions

View file

@ -140,7 +140,6 @@ public sealed class SocialAllegiancePageController
private const uint OptionStringTableId = 0x23000003u;
private static readonly Vector4 TextColor = Vector4.One;
private static readonly Vector4 OfflineNameColor = new(0.6f, 0.6f, 0.6f, 1f);
private static readonly IReadOnlyList<UiText.Line> BlankLine =
[new UiText.Line(" ", TextColor)];
@ -704,9 +703,14 @@ public sealed class SocialAllegiancePageController
if (widgets.Name is { } nameText)
{
// FA5 mechanism-review SF-1 (2026-08-12): retail's
// UpdateVassalsData @004924c3 writes the vassal name with NO
// colour change for offline — the offline cue is EXCLUSIVELY the
// authored 0x100004AA marker (toggled below). The vassal name
// always renders in the normal TextColor; greying it was an
// invented visual and is removed.
string name = vassal.Name;
Vector4 color = vassal.IsLoggedIn ? TextColor : OfflineNameColor;
nameText.LinesProvider = () => [new UiText.Line(name, color)];
nameText.LinesProvider = () => [new UiText.Line(name, TextColor)];
}
if (widgets.ExperiencePassedUp is { } xpText)