Prev: 48329 Up: Map Next: 48459
48390: Process Object Pointer
Used by the routine at RecordResultCharacterScript.
Follows the object link and compares it with the character on screen.
ProcessObjectPointer 48390 PUSH IY Save the schedule entry.
48392 PUSH IX Copy the character record from IX into IY.
48394 POP IY
48396 LD IX,40950 Point at the object display link.
ProcessObjectPointer_Loop 48400 CALL FetchObjectPointerFromStack Go to ProcessObjectPointer_TestStepSucceedsScript if the object pointer is zero.
48403 JR Z,ProcessObjectPointer_TestStepSucceedsScript
48405 LD B,(IX+2) Take the byte at IX+2 into B and the byte at IY+2 into C.
48408 LD C,(IY+2)
48411 LD A,(IX+0) Jump ahead to ProcessObjectPointer_Next if this id matches the character id.
48414 CP (IY+0)
48417 JR Z,ProcessObjectPointer_Next
48419 LD C,(IY+0) Store IY+0 in C and jump ahead to ProcessObjectPointer_Next if the id in A matches IY+2.
48422 CP (IY+2)
48425 JR Z,ProcessObjectPointer_Next
48427 LD B,(IX+0) Read the record's flag byte.
48430 LD A,(IX+2) Jump ahead to ProcessObjectPointer_Next if the byte at IX+2 matches the byte at IY+2.
48433 CP (IY+2)
48436 JR Z,ProcessObjectPointer_Next
48438 LD C,(IY+2) Jump back to ProcessObjectPointer_Loop while this id does not match the character id.
48441 CP (IY+0)
48444 JR NZ,ProcessObjectPointer_Loop
ProcessObjectPointer_Next 48446 LD A,B Go to ProcessObjectPointer_Loop if the object id matches the character.
48447 CP C
48448 JR Z,ProcessObjectPointer_Loop
48450 POP IY
48452 XOR A Clear A.
48453 RET Return.
ProcessObjectPointer_TestStepSucceedsScript 48454 OR 1 Reset the zero flag.
48456 POP IY Restore IY from the stack.
48458 RET Return.
Prev: 48329 Up: Map Next: 48459