Prev: E544 Up: Map Next: E5E8
E592: Move all objects in the room
Used by the routine at C800.
Input
IX Pointer to room data
IY Pointer to moving object data
E592 LD L,(IX+$07) Point HL at the moving object data.
E595 LD H,(IX+$08)
E598 LD DE,$0006 Move past the header to the actual data.
E59B ADD HL,DE
E59C PUSH HL Point IY to this.
E59D POP IY
This entry point is used by the routine at CA5B, where IY already points to the right place.
Move the first vertical objects.
E59F LD HL,($DED8) Point HL at the the first buffer. (DED8)
E5A2 LD ($D6BB),HL Copy the X and Y co-ordinates. (D6BB).
E5A5 LD HL,$DEDA Point HL at the next sprite to draw.
E5A8 LD ($D6BD),HL Copy this. (D6BD)
E5AB LD A,($E540) Put the number of moving objects of this type in A.
E5AE CALL $D6BF Move the objects.
Move the second vertical objects.
E5B1 LD HL,($DFCA) Point HL at the the second buffer. (DFCA)
E5B4 LD ($D6BB),HL Copy the X and Y co-ordinates. (D6BB).
E5B7 LD HL,$DFCC Point HL at the next sprite to draw.
E5BA LD ($D6BD),HL Copy this. (D6BD)
E5BD LD A,($E541) Put the number of moving objects of this type in A.
E5C0 CALL $D6BF Move the objects.
Move the first horizontal objects.
E5C3 LD HL,($E0BC) Point HL at the the third buffer. (E0BC)
E5C6 LD ($D72E),HL Copy the X and Y co-ordinates. (D72E).
E5C9 LD HL,$E0BE Point HL at the next sprite to draw.
E5CC LD ($D730),HL Copy this. (D730)
E5CF LD A,($E542) Put the number of moving objects of this type in A.
E5D2 CALL $D732 Move the objects.
Move the second horizontal objects.
E5D5 LD HL,($E2FE) Point HL at the the fourth buffer. (E2FE)
E5D8 LD ($D72E),HL Copy the X and Y co-ordinates. (D72E).
E5DB LD HL,$E300 Point HL at the next sprite to draw.
E5DE LD ($D730),HL Copy this. (D730)
E5E1 LD A,($E543) Put the number of moving objects of this type in A.
E5E4 CALL $D732 Move the objects.
All done.
E5E7 RET Return.
Prev: E544 Up: Map Next: E5E8