Prev: 53815 Up: Map Next: 53868
53833: Process Object Location Recursively
Used by the routines at StoreMatchedCharacterRoom and CombineCharacterRoom.
Walks the objects inside the current one and records the room of each.
Input
A Object ID
B Location ID
ProcessObjectLocationRecursively 53833 PUSH IY Call AdjustObjectTableForSum to adjust object table for sum.
53835 PUSH IX
53837 CALL AdjustObjectTableForSum
ProcessObjectLocationRecursively_Loop 53840 CALL FetchNextObjectWithID Go to ProcessObjectLocationRecursively_Next if there is no further object.
53843 JR Z,ProcessObjectLocationRecursively_Next
53845 CP (IY+1) Jump back to ProcessObjectLocationRecursively_Loop while this id does not match the schedule entry.
53848 JR NZ,ProcessObjectLocationRecursively_Loop
53850 LD (IY+15),B Store it in the character attribute and read the record flag, then call ProcessObjectLocationRecursively to run object location recursively.
53853 PUSH AF
53854 LD A,(IX+0)
53857 CALL ProcessObjectLocationRecursively
53860 POP AF Fetch the next object from ProcessObjectLocationRecursively_Loop.
53861 JR ProcessObjectLocationRecursively_Loop
Return.
ProcessObjectLocationRecursively_Next 53863 POP IX Restore the saved character record and the saved schedule entry from the stack.
53865 POP IY
53867 RET Return.
View the equivalent code in;
Prev: 53815 Up: Map Next: 53868