fix(chargen): Campaign CC gate round 1 closeout — Group 1: real color wheel wiring
Lands Batch G's two STOPPED items, making the real palette-color swatch wheel visually live instead of inert: - UiButton and UiDatElement gain a per-instance Tint property threaded into every existing DrawSprite call (defaults to Vector4.One, so every pre-existing button/element is byte-identical unless a caller sets a non-identity tint). - CharacterCreationAppearancePage now sets Tint directly on each color swatch button and the GradCircle element, replacing the Batch G flat-fill ChargenSwatchColorTile overlay outright — an opaque rectangle drawn on top can never reproduce retail's actual SurfaceWindow::BlitAndColor(..., Blit_Multiply, color) multiply blend, only a genuine per-instance sprite tint can, so the overlay approach is deleted rather than layered under the new mechanism. - CharacterCreationUiController and RetailUiRuntime grow pass-through properties (AppearancePalSetSource/AppearanceClothingTableSource/ AppearancePaletteColorSource) mirroring the existing PreviewControl seam, so LivePresentationComposition can wire a DAT-backed ChargenAppearanceCatalog into the Appearance page (wiring itself lands with the Group 3 commit, since it shares a file with an unrelated F16 fix). Register: AP-216/AP-217 RETIRED (161 -> now further reduced in later commits) — both rows' remaining gaps are closed, not merely narrowed. CharacterCreationAppearancePageSwatchColorTests updated for the new Tint-based assertions (two pre-existing assertions were carried over incorrectly from the old overlay-visibility model and are corrected). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
1f6365d3e5
commit
e1d7d09599
7 changed files with 193 additions and 192 deletions
|
|
@ -680,6 +680,41 @@ public sealed class RetailUiRuntime : IDisposable
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>Campaign CC gate round 1 closeout (Group 1, R2-5): the same
|
||||
/// late-bound pattern as <see cref="ChargenPreviewControl"/> above, for
|
||||
/// the real color-wheel/swatch-color mechanism's three DAT-backed seams
|
||||
/// — see <see cref="AcDream.App.UI.Layout.CharacterCreationAppearancePage.PalSetSource"/>'s
|
||||
/// own doc comment.</summary>
|
||||
internal AcDream.Core.CharGen.IChargenPalSetSource? ChargenPalSetSource
|
||||
{
|
||||
get => CharacterCreationController?.AppearancePalSetSource;
|
||||
set
|
||||
{
|
||||
if (CharacterCreationController is { } controller)
|
||||
controller.AppearancePalSetSource = value;
|
||||
}
|
||||
}
|
||||
|
||||
internal AcDream.Core.CharGen.IChargenClothingTableSource? ChargenClothingTableSource
|
||||
{
|
||||
get => CharacterCreationController?.AppearanceClothingTableSource;
|
||||
set
|
||||
{
|
||||
if (CharacterCreationController is { } controller)
|
||||
controller.AppearanceClothingTableSource = value;
|
||||
}
|
||||
}
|
||||
|
||||
internal AcDream.Core.CharGen.IChargenPaletteColorSource? ChargenPaletteColorSource
|
||||
{
|
||||
get => CharacterCreationController?.AppearancePaletteColorSource;
|
||||
set
|
||||
{
|
||||
if (CharacterCreationController is { } controller)
|
||||
controller.AppearancePaletteColorSource = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>CC6b-MOUNT: whether the Appearance page (specifically) is
|
||||
/// the one currently showing — false, safely, before the screen mounts.
|
||||
/// </summary>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue