Prev: E496 Up: Map Next: E51B
E4CA: Move Eagle To Next Room
Used by the routine at Limit_Eagle_Vertical_Movement.
Moves the eagle and Sabreman into the next room. There is an entry point for each direction, and the first one (Move_Eagle_To_Next_Room) is for the room above. The eagle and Sabreman are put at the opposite edge of the new room, and the room is drawn.
Input
IX Object record of the eagle
Move_Eagle_To_Next_Room E4CA DEC (IX+$04) Move the eagle to the room above.
E4CD LD A,$A8 Set the y position of the eagle to A8.
E4CF LD (IX+$03),A
E4D2 LD A,$B8 Set the y position of Sabreman to B8.
E4D4 LD ($8F23),A
Move_Eagle_To_Next_Room_Set_Room_Y E4D7 LD A,(IX+$04) Fetch the room y of the eagle.
E4DA LD ($8F1E),A Set the room y of Sabreman.
Move_Eagle_To_Next_Room_Draw E4DD LD (IX+$0F),$01 Set the redraw flags of the eagle to 01 so that it is drawn without being erased first.
E4E1 CALL Update_Object_Sprite Draw the eagle.
E4E4 JP Draw_Room Jump to Draw_Room.
This entry point is used by the routine at Limit_Eagle_Vertical_Movement.
Move_Eagle_To_Room_Below E4E7 INC (IX+$04) Move the eagle to the room below.
E4EA LD A,$28 Set the y position of the eagle to 28.
E4EC LD (IX+$03),A
E4EF LD A,$38 Set the y position of Sabreman to 38.
E4F1 LD ($8F23),A
E4F4 JR Move_Eagle_To_Next_Room_Set_Room_Y Jump to Move_Eagle_To_Next_Room_Set_Room_Y.
This entry point is used by the routine at Limit_Eagle_Sideways_Movement.
Move_Eagle_To_Room_On_Left E4F6 DEC (IX+$02) Move the eagle to the room on the left.
E4F9 LD A,$E7 Set the x position of the eagle and of Sabreman to E7.
E4FB LD (IX+$01),A
E4FE LD ($8F22),A
Move_Eagle_To_Next_Room_Set_Room_X E501 LD A,(IX+$02) Fetch the room x of the eagle.
E504 LD ($8F1C),A Set the room x of Sabreman.
E507 LD A,$11 Set the contact flags of Sabreman to 11.
E509 LD ($8F25),A
E50C JR Move_Eagle_To_Next_Room_Draw Jump to Move_Eagle_To_Next_Room_Draw.
This entry point is used by the routine at Limit_Eagle_Sideways_Movement.
Move_Eagle_To_Room_On_Right E50E INC (IX+$02) Move the eagle to the room on the right.
E511 LD A,$08 Set the x position of the eagle and of Sabreman to 08.
E513 LD (IX+$01),A
E516 LD ($8F22),A
E519 JR Move_Eagle_To_Next_Room_Set_Room_X Jump to Move_Eagle_To_Next_Room_Set_Room_X.
Prev: E496 Up: Map Next: E51B