Animations
Asset brain · Engine Integration · XModels and Surfaces
Status
Several animation helpers have exact source PDB/body matches; selected Replay labels remain q-prefixed because target extents or caller consensus differ.
Game-Test source evidence
The Game-Test PDB identifies Load_XAnimDynamicBoneNoiseProperties at RVA 0x62F6F0, source extent 190 bytes, with signature void __cdecl ...(DBStreamStart). Its source parent Load_XAnimDynamicBoneProperties at 0x62FBB0 reaches the child through the matching loader sequence. Other exact PDB-backed animation helpers include BG_Suit_GetAnimTime and BG_Suit_GetAnimOverrideEntry.
Replay 1.20 evidence
Load_XAnimDynamicBoneNoiseProperties is applied as q_Load_XAnimDynamicBoneNoiseProperties at Replay RVA 0xDD2B20. Source and Replay instruction sequences align after normalizing relocations/calls and a Replay NOP; source extent is 190 bytes, Replay .pdata is 197 bytes, and SQLite retains size 190. The final Replay tail RET is outside that SQLite size. The matching parent call sequence supports the relation, but caller consensus is limited, so q_ is retained.
Other reviewed candidates: q_BG_Suit_GetAnimTime (Replay RVA 0xCEE350, SQLite/.pdata size 204; many unresolved Replay callers) and q_BG_Suit_GetAnimOverrideEntry (Replay RVA 0xCEE230, SQLite size 56 versus .pdata 170). Preserve current prototype metadata where reports note a mismatch.
Integration and safe use
XAnim dynamic bone property loading is part of model animation data loading. Suit animation helpers are runtime behavior functions, not fastfile layout definitions. Use exact call chains to integrate loaders; do not infer serialized data layout from function names or runtime structs.
Variables
The reviewed XAnim loader has a positional DBStreamStart observation in RCX at function entry, passed to the first stream helper. This describes the Replay call ABI observation and does not override the stored prototype.
Open questions
- Resolve remaining Replay caller alternatives for the suit helpers.
- Explain target tail/extent disagreements before using size as a boundary.
- Map XAnim serialized child records and alignment from direct Replay stream operations.
Evidence
- XAnim dynamic bone noise loader report
- XAnim instruction crosswalk
- Suit animation time helper
- Suit animation override helper
XAnim SQLite application status
Coordinator applied q_Load_XAnimDynamicBoneNoiseProperties to Replay ID 18947/RVA 0xDD2B20. Readback confirms size 190 and prototype fields preserved; one positional DBStreamStart observation and one journal row were recorded, and SQLite quick_check returned ok. The .pdata extent remains 197 bytes, so the seven-byte tail/RET discrepancy is still documented. See the apply manifest.