Prev: 29454 Up: Map Next: 29604
29543: Handler: Room 7
Handles room 7 logic. The current level in B controls which objects are initialised or updated on each pass.
Levels Baddies
1 Helicopter
2 Helicopter, Cat
3 Helicopter
4 Helicopter, Balloon
5+ Helicopter, Cat, Balloon, Dog, UFO
Input
B Current level
Handler_Room07 29543 LD A,B Copy the current level into A.
Add the helicopter.
29544 LD IX,56008 IX=Sprite02_3Wide_X_Position.
29548 PUSH AF Stash the current level on the stack.
29549 CALL Handler_Helicopter Call Handler_Helicopter.
29552 POP AF Restore the current level from the stack.
Add a cat if this is level 2 or 5.
29553 LD IX,56012 IX=Sprite03_3Wide_X_Position.
29557 PUSH AF Stash the current level on the stack.
29558 CP 2 Call Handler_Cat if this is level 2 or 5.
29560 CALL Z,Handler_Cat
29563 CP 5
29565 CALL Z,Handler_Cat
29568 POP AF Restore the current level from the stack.
29569 CP 1 Return if this is below level 4.
29571 RET Z
29572 CP 4
29574 RET C
Add the balloon for level 4 and above.
29575 LD IX,56016 IX=Sprite04_3Wide_X_Position.
29579 PUSH AF Stash the current level on the stack.
29580 CALL Handler_Balloon Call Handler_Balloon.
29583 POP AF Restore the current level from the stack.
29584 CP 4 Return if this is level 4.
29586 RET Z
Add the dog if this is level 5.
29587 LD IX,56024 IX=Sprite06_3Wide_X_Position.
29591 PUSH AF Stash the current level on the stack.
29592 CALL Handler_Dog Call Handler_Dog.
29595 POP AF Restore the current level from the stack.
Add the UFO if this is level 5.
29596 LD IX,56028 IX=Sprite07_3Wide_X_Position.
29600 CALL Handler_UFO Call Handler_UFO.
29603 RET Return.
Prev: 29454 Up: Map Next: 29604