Prev: C989 Up: Map Next: C9BF
C996: Process Object Display Entry
Draws the record, and tells the script to continue when the draw works. A non-zero return means the script step succeeded.
ProcessObjectDisplayEntry C996 PUSH IY Call ProcessDisplayRecord to draw this record.
C998 PUSH BC
C999 CALL ProcessDisplayRecord
C99C POP BC
C99D POP IY Jump ahead to ProcessObjectDisplayEntry_Next if bit 7 of the display record is set.
C99F JR C,ProcessObjectDisplayEntry_Next
C9A1 JP Z,ProcessDisplayWithLocationCheck Go to ProcessDisplayWithLocationCheck if drawing the object display matched.
C9A4 OR %00000001 Reset the zero flag.
C9A6 RET Return.
Read the pointer at the currently processed character command position at CurrentCharacter_CommandPosition, then take a count of 01 then read the character record from the currently processed character timetable pointer at CurrentCharacter_TimetablePointer.
ProcessObjectDisplayEntry_Next C9A7 PUSH HL Read the currently processed character command position and count 01 for run object display entry, then call AllocateMemoryAndStoreCharacter to allocate memory and store character.
C9A8 PUSH BC
C9A9 LD HL,($9FD9)
C9AC LD B,$01
C9AE CALL AllocateMemoryAndStoreCharacter
C9B1 POP BC Read the current character timetable pointer.
C9B2 POP HL
C9B3 LD IX,($9FDB)
C9B7 LD (IX+$01),L Store the moved marker.
C9BA LD (IX+$02),H Store H as the location, set the carry.
C9BD SCF
C9BE RET Return.
Prev: C989 Up: Map Next: C9BF