Prev: E8D7 Up: Map Next: E9FD
E9DF: Handle Distant Weapon
Used by the routine at Handle_Weapon_Pickup.
Deals with a weapon that is in a different room from Sabreman (see Handle_Weapon_Pickup). Bit 0 of the flags is set, so that the weapon is drawn without an old image to erase when Sabreman comes back. If the weapon falls it moves down through the rooms below until it gets to one that has a floor, and it is put at the y position 9E with its counter cleared.
Input
IX Small object record of the weapon
Handle_Distant_Weapon E9DF SET 0,(IX+$07) Set bit 0 of the flags.
E9E3 BIT 2,(IX+$07) Jump to Handle_Distant_Weapon_Find_Floor if the weapon is falling.
E9E7 JR NZ,Handle_Distant_Weapon_Find_Floor
E9E9 RET Return.
Handle_Distant_Weapon_Next_Room E9EA INC (IX+$04) Move the weapon to the room below.
Handle_Distant_Weapon_Find_Floor E9ED CALL Read_World_Map Read the world map entry of the room that the weapon is in. The flags of the room are returned in E.
E9F0 BIT 4,E Jump back to Handle_Distant_Weapon_Next_Room if the room has no floor.
E9F2 JR Z,Handle_Distant_Weapon_Next_Room
E9F4 LD (IX+$03),$9E Set the y position of the weapon to 9E.
E9F8 LD (IX+$06),$00 Clear the counter in byte 06.
E9FC RET Return.
Prev: E8D7 Up: Map Next: E9FD