Prev: EEA2 Up: Map Next: EEF3
EEC1: Refresh the current room
Used by the routines at 81AE and B3C3.
EEC1 CALL $EEA2 Initialize the sprite buffers.
EEC4 LD A,(IY+$0F) Get the current room in A.
EEC7 LD ($B951),A
EECA LD B,$00 Point HL at the start of the object buffer for this room.
EECC CALL $AA8C
EECF LD A,(HL) Put the object ID.
EED0 CP $FF Is this an end marker?
EED2 JR Z,$EEE3 Jump forward if it is, nothing left to do.
EED4 INC HL Put the co-ordinates found in DE.
EED5 LD E,(HL)
EED6 INC HL
EED7 LD D,(HL)
EED8 INC HL Move to the buffer for the next item.
EED9 INC HL
EEDA LD ($A838),DE Put the position in the scratch buffer at A838.
EEDE CALL $A83D Draw the object, and loop back to see if there is anything further to draw.
EEE1 JR $EECF
See if there is any custom routines for this room, and if so, execute them.
EEE3 LD E,(IY+$0F) Put the current room in E and double it to get a word offset.
EEE6 SLA E
EEE8 LD D,$00
EEEA LD HL,$EEF3 Add the base address of the room logic table (EEF3).
EEED ADD HL,DE
EEEE LD E,(HL) Put the address found in DE.
EEEF INC HL
EEF0 LD D,(HL)
EEF1 EX DE,HL Swap DE and HL so HL points to the logic routine.
EEF2 JP (HL) Execute it.
Prev: EEA2 Up: Map Next: EEF3