{"source":"save_selector_object_field_refs.json","groups":[{"name":"linked object draw/copy","range":"0x0040cc6d..0x0040cc8f","refs":["0x0040cc6d","0x0040cc8f"],"evidence":["mov cl,[current+0x61]; object = runtimeObjectTable[cl]","test linkedObject+0x62 bit 0x20","call 0x00402360 with current object+0x88 and linked object resource pointer"],"routeImpact":"Consumes object+0x61 as another runtime object index; no stream pointer or scene record write is visible.","object61Refs":[{"vaHex":"0x0040cc6d","offsetHex":"0x61","offset":97,"field":"opcode24 object slot/state field","access":"read","rawHex":"8a 48 61 8b","routeNote":null},{"vaHex":"0x0040cc8f","offsetHex":"0x61","offset":97,"field":"opcode24 object slot/state field","access":"read","rawHex":"8a 48 61 8b","routeNote":null}]},{"name":"linked object replacement","range":"0x0040d006..0x0040d02d","refs":["0x0040d006","0x0040d02d"],"evidence":["mov cl,[current+0x61]; object = runtimeObjectTable[cl]","test linkedObject+0x62 bit 0x80","call 0x00433aca and write returned byte back to current+0x61"],"routeImpact":"Updates the linked object index when the target object is flagged; this is object state maintenance, not leaf selection.","object61Refs":[{"vaHex":"0x0040d006","offsetHex":"0x61","offset":97,"field":"opcode24 object slot/state field","access":"read","rawHex":"8a 48 61 8b","routeNote":null},{"vaHex":"0x0040d02d","offsetHex":"0x61","offset":97,"field":"opcode24 object slot/state field","access":"write","rawHex":"88 41 61 8b","routeNote":null}]},{"name":"collision/action mask test","range":"0x0040d3af..0x0040d4d8","refs":["0x0040d3af"],"evidence":["current object can be replaced by runtimeObjectTable[current+0x61]","reads selected object+0x04 mode","tests object+0x5c masks and sets global 0x0055a1b8"],"routeImpact":"Tests object action/collision masks and advances the current stream by +4 on the non-trigger path.","object61Refs":[{"vaHex":"0x0040d3af","offsetHex":"0x61","offset":97,"field":"opcode24 object slot/state field","access":"read","rawHex":"8a 48 61 8b","routeNote":null}]},{"name":"object spawn/flag management","range":"0x0040d5da..0x0040dded","refs":["0x0040d5da","0x0040dcc7"],"evidence":["uses object+0x61 to select a linked runtime object","checks and writes object+0x5b, object+0x5c, object+0x60, object+0x62","some branches replace context+0x40 with dword [stream+4]"],"routeImpact":"Can branch the current script stream, but through the active handler's stream operand, not through the save-selector leaf table.","object61Refs":[{"vaHex":"0x0040d5da","offsetHex":"0x61","offset":97,"field":"opcode24 object slot/state field","access":"read","rawHex":"8a 48 61 8b","routeNote":null},{"vaHex":"0x0040dcc7","offsetHex":"0x61","offset":97,"field":"opcode24 object slot/state field","access":"read","rawHex":"8a 48 61 8b","routeNote":null}]},{"name":"status sync helper","range":"0x0040de28..0x0040ef09","refs":["0x0040de28","0x0040e240","0x0040eaf4","0x0040ee6c","0x0040ef09"],"evidence":["selects linked runtime objects through runtimeObjectTable[object+0x61]","copies object flags/position/status fields into other object-side tables","does not directly reference map1_01a, map2_02d, or save-selector leaf addresses"],"routeImpact":"Runtime object synchronization; useful for VM semantics, weak evidence for map transition promotion.","object61Refs":[{"vaHex":"0x0040de28","offsetHex":"0x61","offset":97,"field":"opcode24 object slot/state field","access":"read","rawHex":"8a 48 61 8b","routeNote":null},{"vaHex":"0x0040e240","offsetHex":"0x61","offset":97,"field":"opcode24 object slot/state field","access":"read","rawHex":"8a 48 61 89","routeNote":null},{"vaHex":"0x0040eaf4","offsetHex":"0x61","offset":97,"field":"opcode24 object slot/state field","access":"read","rawHex":"8a 48 61 8b","routeNote":null},{"vaHex":"0x0040ee6c","offsetHex":"0x61","offset":97,"field":"opcode24 object slot/state field","access":"read","rawHex":"8a 48 61 8b","routeNote":null},{"vaHex":"0x0040ef09","offsetHex":"0x61","offset":97,"field":"opcode24 object slot/state field","access":"read","rawHex":"8a 48 61 8b","routeNote":null}]},{"name":"generic object helpers","range":"0x004334a3..0x004355f0","refs":["0x004334a3","0x00433ad8","0x00433afe","0x00433b0b","0x00433db3","0x00433efe","0x004355e5","0x004355f0"],"evidence":["helper routines read/write object+0x61 while scanning runtime object slots","called by several object VM handlers including opcode 0x24 mode 0 support code","acts on object relationships rather than field-map scene records"],"routeImpact":"Confirms object+0x61 is a general linked-object slot, not a dedicated save-selector route selector.","object61Refs":[{"vaHex":"0x004334a3","offsetHex":"0x61","offset":97,"field":"opcode24 object slot/state field","access":"read","rawHex":"8a 48 61 8b","routeNote":null},{"vaHex":"0x00433ad8","offsetHex":"0x61","offset":97,"field":"opcode24 object slot/state field","access":"read","rawHex":"8a 48 61 8b","routeNote":null},{"vaHex":"0x00433afe","offsetHex":"0x61","offset":97,"field":"opcode24 object slot/state field","access":"read","rawHex":"8a 40 61 e9","routeNote":null},{"vaHex":"0x00433b0b","offsetHex":"0x61","offset":97,"field":"opcode24 object slot/state field","access":"read","rawHex":"8a 48 61 8b","routeNote":null},{"vaHex":"0x00433db3","offsetHex":"0x61","offset":97,"field":"opcode24 object slot/state field","access":"read","rawHex":"8a 40 61 e9","routeNote":null},{"vaHex":"0x00433efe","offsetHex":"0x61","offset":97,"field":"opcode24 object slot/state field","access":"read","rawHex":"8a 48 61 41","routeNote":null},{"vaHex":"0x004355e5","offsetHex":"0x61","offset":97,"field":"opcode24 object slot/state field","access":"read","rawHex":"8a 48 61 89","routeNote":null},{"vaHex":"0x004355f0","offsetHex":"0x61","offset":97,"field":"opcode24 object slot/state field","access":"read","rawHex":"8a 48 61 41","routeNote":null}]}],"conclusion":"The opcode 0x24 mode 1 write to object+0x61 feeds runtime object-link consumers. Those consumers dereference runtimeObjectTable[object+0x61] or maintain object flags; they do not provide a direct map1_01a->map2_02d save-selector leaf jump. Continue route work from branch-state/stream control-flow evidence, not from object+0x61 alone."}