$$ ============================================================================ $$ find-cell-list-capture.cdb — P0 conformance retail golden capture $$ ---------------------------------------------------------------------------- $$ Captures retail's ACCEPTED membership transitions at a building doorway so we $$ can pin acdream's CellTransit.FindCellList against it (P0 Task 6, P1 gate). $$ $$ Target: CPhysicsObj::change_cell @ 0x00513390 (pc:281192) — fires ONLY on an $$ accepted cell transition (the doorway crossings) -> short clean sequence. $$ thiscall: this (CPhysicsObj*) = @ecx ; arg new_cell (CObjCell*) = poi(@esp+4) $$ $$ Offsets VERIFIED live via tools/cdb/discover-types.cdb against the matched PDB: $$ CPhysicsObj.m_position @ +0x48 ; .cell @ +0x90 $$ Position.objcell_id @ +0x04 ; .frame @ +0x08 ; Frame.m_fOrigin @ +0x34 $$ CObjCell.pos @ +0x54 -> a cell's id = cell + 0x54 + 0x04 = cell + 0x58 $$ player origin x/y/z = @ecx + 0x48 + 0x08 + 0x34 = @ecx + 0x84 (x), +0x88, +0x8c $$ $$ seed = this->cell->pos.objcell_id (the cell BEFORE this change; null-guarded) $$ picked = new_cell->pos.objcell_id (the cell committed) $$ px/py/pz = player world origin as raw IEEE-754 hex (decode: decode_retail_hex.py) $$ $$ Emits the golden format read by RetailTrace.ParseFindCellList: $$ [fcl] seed=0x px=0x py=0x pz=0x picked=0x $$ ============================================================================ .logopen C:\Users\erikn\source\repos\acdream\.claude\worktrees\thirsty-goldberg-51bb9b\find-cell-list-capture.log .sympath C:\Users\erikn\source\repos\acdream\refs .symopt+ 0x40 .reload /f acclient.exe r $t0 = 0 bp acclient!CPhysicsObj::change_cell "r $t0 = @$t0 + 1; r $t1 = 0; .if (poi(@ecx+0x90) != 0) { r $t1 = poi(poi(@ecx+0x90)+0x58) }; .printf /D \"[fcl] seed=0x%08x px=0x%08x py=0x%08x pz=0x%08x picked=0x%08x\\n\", @$t1, poi(@ecx+0x84), poi(@ecx+0x88), poi(@ecx+0x8c), poi(poi(@esp+4)+0x58); .if (@$t0 >= 16) { .printf /D \"=== DETACH after %d cell changes ===\\n\", @$t0; qd } .else { gc }" .printf \"find-cell-list capture armed (change_cell). Walk SLOWLY in/out of the doorway now.\\n\" g