mirror of
https://github.com/jkdansereau/goldeneye-pc-port.git
synced 2026-10-23 15:52:42 +02:00
Review of the D320 entry itself. All mechanism claims confirmed against source (chrHasStoppedOrPatroling ACT_ATTACK exclusion; update fn only moves endframe via chrlvAttackActionRelated, never modelSetAnimation; ai_9/ai_12 structures re-read in full). Two precision corrections: - ai_19 row: the ONLY progression out of the label 0x34 loop is own-flag bit 0x01 -> list 0x1504; the stop-check path re-aims at 0x08 (loops). Nothing in the list sets that bit (level's only chr_bitfield_set_on(,0x01) targets chr 0x43). - ai_12 row: the update lands mid-hold by construction (aim cmd jumps to it on success); the 180-range-flag wait between is unreachable on this path. Also settled the AI command-ID mapping for future reference: bondaicommands.h IDs == cmdbuilder enum values from aicommands.def order (naive CMDNAME count is off by 2; cross-checked on 4 known commands). if_guard_bitfield_is_set_on = 0x96 = AI_IFMyFlags2Has (executing guard's OWN flags2); the per-chr family (chr_bitfield_*) is 0x97-0x99. Also audited d318watchdog.c in this pass: chraiGetAIListID and sub_GAME_7F025560 signatures match; call form mirrors chraction.c:7396; dead c78 can never satisfy the signature (ACT_ATTACK vs ACT_DIE/ACT_DEAD disjoint); g_randomSeed is u64 as written. No changes needed.