Prev: AB43 Up: Map Next: AB9B
AB60: Movement routine 5. Move to 00, 58 (Sewer left)
Used by the routine at A92C.
AB60 LD A,(IY+$0A) Get the Y co-ordinate.
AB63 CP $98 Is it 98 (ie: floor level).
AB65 JR NZ,$AB88 Jump forward if it isn't.
AB67 LD A,(IY+$05) Get the X co-ordinate.
AB6A CP $66 If it less than 66 move left, otherwise move right.
AB6C JR NC,$AB74
AB6E LD (IY+$3C),$01
AB72 JR $AB78
AB74 LD (IY+$3C),$FF
AB78 CALL $B288 Move the character.
AB7B LD A,(IY+$05) Get the X co-ordinate.
AB7E CP $66 Is it now 66?
AB80 RET NZ Return if it isn't.
AB81 LD (IY+$3C),$FF Otherwise set to move left.
AB85 JP $B1A6 Make the character jump.
The character is not at ground level.
AB88 CP $58 Is the Y co-ordinate now 58?
AB8A JR NZ,$AB81 Move back if it isn't, to jump.
AB8C LD (IY+$3C),$FF Otherwise set to move left.
AB90 CALL $B288 Move the character.
AB93 LD A,(IY+$05) Get the X co-ordinate.
AB96 OR A Is it 0?
AB97 JP Z,$AE5D If it is, move to a new room.
AB9A RET Otherwise return.
Prev: AB43 Up: Map Next: AB9B