Prev: 54097 Up: Map Next: 54171
54122: Process Object Entry
Steps through the objects and marks each one that passes the attribute test.
ProcessObjectEntry 54122 PUSH BC Keep the schedule entry.
54123 PUSH DE
54124 PUSH IY
ProcessObjectEntry_0 54126 CALL FetchNextObject Call FetchNextObject to fetch the next object.
54129 JR Z,ProcessObjectEntry_Next Go to ProcessObjectEntry_Next if the next object id is 255.
54131 LD BC,7 Point IY seven bytes further on (0007) and call CompareFollowingFields to compare the location data.
54134 PUSH IY
54136 ADD IY,BC
54138 CALL CompareFollowingFields
54141 POP IY Jump back to ProcessObjectEntry_0 while the room fields do not match.
54143 JR NZ,ProcessObjectEntry_0
54145 LD A,(41016) Jump ahead to ProcessObjectEntry_Next if the object attribute flag is not zero.
54148 AND A
54149 JR NZ,ProcessObjectEntry_Next
54151 LD A,(IX+0) Call CheckObjectLocationMatch to check object location match.
54154 PUSH IX
54156 CALL CheckObjectLocationMatch
54159 POP IX Restore the object pointer from the stack.
54161 JR Z,ProcessObjectEntry_0 Go back to ProcessObjectEntry_0 for the next object if this one did not match.
ProcessObjectEntry_Next 54163 LD A,(IX+0) Read the record flag.
54166 POP IY Restore the saved schedule entry, the saved source and the saved count from the stack.
54168 POP DE
54169 POP BC
54170 RET Return.
View the equivalent code in;
Prev: 54097 Up: Map Next: 54171