Prev: AB60 Up: Map Next: ABD7
AB9B: Movement routine 6. Move to F0 , 58 (Sewer right)
Used by the routine at A92C.
AB9B LD A,(IY+$0A) Get the Y co-ordinate.
AB9E CP $98 Is it 98 (ie: floor level).
ABA0 JR NZ,$ABC3 Jump forward if it isn't.
ABA2 LD A,(IY+$05) Get the X co-ordinate.
ABA5 CP $8A If it less than 8A move left, otherwise move right.
ABA7 JR NC,$ABAF
ABA9 LD (IY+$3C),$01
ABAD JR $ABB3
ABAF LD (IY+$3C),$FF
ABB3 CALL $B288 Move the charcter.
ABB6 LD A,(IY+$05) Get the X co-ordinate.
ABB9 CP $8A Is it now 8A?
ABBB RET NZ Return if it isn't.
ABBC LD (IY+$3C),$01 Otherwise set to move right.
ABC0 JP $B1A6 Make the character jump.
The character is not at ground level.
ABC3 CP $58 Is the Y co-ordinate now 58?
ABC5 JR NZ,$ABBC Move back if it isn't, to jump.
ABC7 LD (IY+$3C),$01 Otherwise set to move right.
ABCB CALL $B288 Move the character.
ABCE LD A,(IY+$05) Get the X co-ordinate.
ABD1 CP $F0 Is it F0?
ABD3 JP Z,$AE5D If it is, move to a new room.
ABD6 RET Otherwise return.
Prev: AB60 Up: Map Next: ABD7