feat(chargen): Campaign CC slice CC5 — Summary page, Finish flow, RandomizeCharacter port
Fills TS-82's Summary placeholder with a faithful port of gmCGSummaryPage (name field with NameInputFilter + the retail commit-on-focus-lost/submit dispatch + the >32-char ID_CharGen_NameTooLong reject-and-revert path, the REAL three-row-template listbox confirmed against the installed EoR dat before writing any page code, and Summary's own independent gmCG3DView preview instance wired through a second ChargenPreviewController pair mirroring the Appearance page's exact composition shape). Ports CharGenState::RandomizeCharacter and its six sub-primitives into RuntimeCharacterCreationState — not approximated: the RandInt/RollDice semantics are independently confirmed from both the decompiled RNG bodies and the CharGenStateVtbl union struct in acclient.h. Three consumers: the chargen screen's open-roll (retiring AP-214's honest-blank deviation and reproducing the Appearance page's gender-flip-on-init quirk), the Summary page's Random button (behind the retail randomize-warning confirm), and the Appearance page's Random button (narrowing AP-212 to just Heritage/Profession/Town's still-approximated rolls and Skills' still-unported RandomizeSkills). Wires the Finish button (previously ghosted) with retail's NoName/ CreditWarning dialog pair, adds the F12 amendment's HeritageOrGenderUnset local refusal to TryBeginFinish (register AP-223) as a defensive backstop now that the screen-open roll normally makes it unreachable, and wires the four ID_Character_Err_* rejection dialogs for the 0xF643 response codes CC3 already parsed but nothing displayed. Register: TS-82 retired, AP-214 retired, AP-212 narrowed, AP-223/224/225 filed (heritage/gender Finish refusal, Summary's two-bucket skill-list narrowing, the 32-vs-33 name-length threshold reconciliation). Runtime 1722/0 (was 1713), App 5240/3 skips (was 5223/3), Headless 166/0 unchanged, full solution Release build green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
6114b2dda2
commit
34e3a534be
22 changed files with 2217 additions and 79 deletions
|
|
@ -241,6 +241,28 @@ internal sealed class DeferredGameRuntimeStateCommands
|
|||
Invoke((commands, generation) =>
|
||||
commands.CharacterCreation.SetShade(generation, slot, value));
|
||||
|
||||
// ── Campaign CC slice CC5: Summary page + RandomizeCharacter commands ──
|
||||
|
||||
public RuntimeCommandResult CharacterCreationSetName(string name) =>
|
||||
Invoke((commands, generation) =>
|
||||
commands.CharacterCreation.SetName(generation, name));
|
||||
|
||||
public RuntimeCommandResult CharacterCreationAcknowledgeRejection() =>
|
||||
Invoke((commands, generation) =>
|
||||
commands.CharacterCreation.AcknowledgeRejection(generation));
|
||||
|
||||
public RuntimeCommandResult CharacterCreationRandomizeCharacter() =>
|
||||
Invoke((commands, generation) =>
|
||||
commands.CharacterCreation.RandomizeCharacter(generation));
|
||||
|
||||
public RuntimeCommandResult CharacterCreationRandomizeAppearance() =>
|
||||
Invoke((commands, generation) =>
|
||||
commands.CharacterCreation.RandomizeAppearance(generation));
|
||||
|
||||
public RuntimeCommandResult CharacterCreationRandomizeClothing() =>
|
||||
Invoke((commands, generation) =>
|
||||
commands.CharacterCreation.RandomizeClothing(generation));
|
||||
|
||||
// ── Campaign FA slice FA4: fellowship page commands ─────────────────
|
||||
// Same "capture view+commands under one generation" shape as every
|
||||
// method above — a displaced session (reconnect mid-click) can never
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue