Prev: 7367 Up: Map Next: 73E1
73A4: Handler: Room 08
Handles room 08 logic. The current level in B controls which objects are initialised or updated on each pass.
Levels Baddies
01 None
02 Helicopter, Cat
03 Helicopter
04 Helicopter, Cat, Balloon, Parachute
05+ Helicopter, Cat, Balloon, Parachute, Walking Paratrooper
Input
B Current level
Handler_Room08 73A4 LD A,B Copy the current level into A.
73A5 LD IX,$DAC8 IX=Sprite02_3Wide_X_Position.
73A9 PUSH AF Stash the current level on the stack.
Add the helicopter.
73AA CALL Handler_Helicopter Call Handler_Helicopter.
73AD POP AF Restore the current level from the stack.
Add a cat for any level other than level 03.
73AE LD IX,$DACC IX=Sprite03_3Wide_X_Position.
73B2 CP $01 Return if this is level 01.
73B4 RET Z
73B5 PUSH AF Stash the current level on the stack.
73B6 CP $03 Call Handler_Cat if this is not level 03.
73B8 CALL NZ,Handler_Cat
73BB POP AF Restore the current level from the stack.
73BC CP $02 Return if this is level 02 or 03.
73BE RET Z
73BF CP $03
73C1 RET Z
Add the balloon for level 04 and above.
73C2 PUSH AF Stash the current level on the stack.
73C3 LD IX,$DAD0 IX=Sprite04_3Wide_X_Position.
73C7 CALL Handler_Balloon Call Handler_Balloon.
73CA POP AF Restore the current level from the stack.
73CB PUSH AF Stash the current level on the stack.
Add the parachute if this is level 04 or higher.
73CC LD IX,$DAD8 IX=Sprite06_3Wide_X_Position.
73D0 CP $03 Call Handler_Parachute_Descent if this is level 04 or higher.
73D2 CALL NC,Handler_Parachute_Descent
73D5 POP AF Restore the current level from the stack.
73D6 CP $04 Return if this is level 04.
73D8 RET Z
Add the walking paratrooper if this is level 05.
73D9 LD IX,$DAD4 IX=Sprite05_3Wide_X_Position.
73DD CALL Handler_Walking_Paratrooper Call Handler_Walking_Paratrooper.
73E0 RET Return.
Prev: 7367 Up: Map Next: 73E1