Prev: 730E Up: Map Next: 73A4
7367: Handler: Room 07
Handles room 07 logic. The current level in B controls which objects are initialised or updated on each pass.
Levels Baddies
01 Helicopter
02 Helicopter, Cat
03 Helicopter
04 Helicopter, Balloon
05+ Helicopter, Cat, Balloon, Dog, UFO
Input
B Current level
Handler_Room07 7367 LD A,B Copy the current level into A.
Add the helicopter.
7368 LD IX,$DAC8 IX=Sprite02_3Wide_X_Position.
736C PUSH AF Stash the current level on the stack.
736D CALL Handler_Helicopter Call Handler_Helicopter.
7370 POP AF Restore the current level from the stack.
Add a cat if this is level 02 or 05.
7371 LD IX,$DACC IX=Sprite03_3Wide_X_Position.
7375 PUSH AF Stash the current level on the stack.
7376 CP $02 Call Handler_Cat if this is level 02 or 05.
7378 CALL Z,Handler_Cat
737B CP $05
737D CALL Z,Handler_Cat
7380 POP AF Restore the current level from the stack.
7381 CP $01 Return if this is below level 04.
7383 RET Z
7384 CP $04
7386 RET C
Add the balloon for level 04 and above.
7387 LD IX,$DAD0 IX=Sprite04_3Wide_X_Position.
738B PUSH AF Stash the current level on the stack.
738C CALL Handler_Balloon Call Handler_Balloon.
738F POP AF Restore the current level from the stack.
7390 CP $04 Return if this is level 04.
7392 RET Z
Add the dog if this is level 05.
7393 LD IX,$DAD8 IX=Sprite06_3Wide_X_Position.
7397 PUSH AF Stash the current level on the stack.
7398 CALL Handler_Dog Call Handler_Dog.
739B POP AF Restore the current level from the stack.
Add the UFO if this is level 05.
739C LD IX,$DADC IX=Sprite07_3Wide_X_Position.
73A0 CALL Handler_UFO Call Handler_UFO.
73A3 RET Return.
Prev: 730E Up: Map Next: 73A4