Prev: D123 Up: Map Next: D1B2
D16F: Move Dan on the lift
Used by the routine at CFD9.
D16F LD A,($C87B) Get the lift flags. (C87B)
D172 BIT 0,A Is the lift moving upwards?
D174 JR Z,$D17B Jump forward if it is.
Move Dan on the lift downwards.
D176 CALL $D607 Drop Dan down one frame.
D179 JR $D17E
Move Dan on the lift upwards.
D17B CALL $D567 Move Dan upwards.
Now update the lift.
D17E LD A,($C87C) Get the Y co-ordinate. (C87C)
D181 CALL $CD24 Redraw the lift at this position.
D184 CALL $D1CE Redraw Dan and do any collision detection.
D187 LD DE,($C872) Put Dan's X co-ordinate (C872) in D and his Y co-ordinate (C873) in E.
D18B LD A,E Add 1A to the Y co-ordinate.
D18C ADD A,$1A
D18E LD E,A
D18F LD ($C87C),A Make this the lift's Y co-ordinate.
D192 LD A,($CFCA) Get the current room. (CFCA)
D195 LD ($C87D),A Make this the lift's current room.
D198 CALL $CD2B Redraw the lift.
D19B LD DE,($C87C) Put the lift's room (C87C) in D and its Y co-ordinate in E.
D19F LD BC,($C87A) Put the time before the lift moves (C87A) in C and the flags (C87B) in B.
D1A3 CALL $CD5C Update the lift's attributes.
D1A6 CALL $D1B2 Check to see if the lift is at the top or bottom.
D1A9 LD ($C87C),DE Set the room and Y co-ordinate.
D1AD LD ($C87A),BC Set the wait time and flags.
D1B1 RET Return.
Prev: D123 Up: Map Next: D1B2