docs(CT): CT4 header contract read verbatim — UpdateCharacterInfo @0x004F0770 + UpdatePKStatus @0x004F00A0
Name via AllegianceData::GetFullName, heritage line composed with the display title, level fallback literal, PK line from StringTable 0x23000001 ID_StatManagement_Header_PKStatus_* keys (the chat-label mechanism). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
1cd4dfc92a
commit
872b227209
1 changed files with 24 additions and 0 deletions
|
|
@ -70,6 +70,30 @@ display title; the PK strings are exactly "Player Killer" /
|
|||
cross-anchor `CharExamineUI::SetAppraiseInfo @0x004B45F0`). CT5 reads
|
||||
the composing function verbatim before writing a line of C#.
|
||||
|
||||
### CT4 contract (read verbatim 2026-08-24, Fable)
|
||||
`gmStatManagementUI::UpdateCharacterInfo @0x004F0770`:
|
||||
- **Name line** (`0x10000231`): `ACCWeenieObject::GetObjectName(player,
|
||||
NAME_SINGULAR)` run through `AllegianceData::GetFullName` with a
|
||||
default-constructed allegiance record (implementer reads GetFullName
|
||||
before porting — it may add rank prefixes when allegiance data exists).
|
||||
- **Heritage line** (`0x10000232`):
|
||||
`AppraisalSystem::InqGenderHeritageDisplay(gender=Int 0x71,
|
||||
heritage=Int 0xBC, 0)` ("Female Aluvian"); then, when
|
||||
`CharacterTitleTable::GetCharacterTitleFromID(m_titleID)` resolves,
|
||||
`AppendText(separator @data_794358)` + `AppendText(titleString)` →
|
||||
"Female Aluvian War Mage". Recover the separator literal with the
|
||||
PE-read recipe (`claude-memory/reference_pe_byte_decode.md`).
|
||||
- **Level** (`0x1000023B`): `InqInt(0x19)` present →
|
||||
`Formatted(@data_7a0184)`; absent → literal `@data_7b0f34`.
|
||||
- **PK line** (`0x10000233`): `UpdatePKStatus @0x004F00A0` — three-way
|
||||
`IsPK` / `IsPKLite` / neither → StringInfo from table enum
|
||||
`0x10000001` (= StringTable `0x23000001`, same compute_str_hash
|
||||
mechanism the chat labels use) with keys
|
||||
`ID_StatManagement_Header_PKStatus_PK` / `_PKL` / `_NPK`.
|
||||
- Related key family for the footer/meter (already-shipped surfaces —
|
||||
audit only if CT1 finds drift): `ID_StatManagement_Footer_*`,
|
||||
`ID_StatManagement_Header_XPToLevelMeterInfinity`.
|
||||
|
||||
### Already in-tree
|
||||
- Tab/page ids wired (`TabTitlesId 0x10000538`, `TitlesPageId
|
||||
0x10000539`); pages currently show retail-authored closed visuals.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue