Prev: 29543 Up: Map Next: 29665
29604: Handler: Room 8
Handles room 8 logic. The current level in B controls which objects are initialised or updated on each pass.
Levels Baddies
1 None
2 Helicopter, Cat
3 Helicopter
4 Helicopter, Cat, Balloon, Parachute
5+ Helicopter, Cat, Balloon, Parachute, Walking Paratrooper
Input
B Current level
Handler_Room08 29604 LD A,B Copy the current level into A.
29605 LD IX,56008 IX=Sprite02_3Wide_X_Position.
29609 PUSH AF Stash the current level on the stack.
Add the helicopter.
29610 CALL Handler_Helicopter Call Handler_Helicopter.
29613 POP AF Restore the current level from the stack.
Add a cat for any level other than level 3.
29614 LD IX,56012 IX=Sprite03_3Wide_X_Position.
29618 CP 1 Return if this is level 1.
29620 RET Z
29621 PUSH AF Stash the current level on the stack.
29622 CP 3 Call Handler_Cat if this is not level 3.
29624 CALL NZ,Handler_Cat
29627 POP AF Restore the current level from the stack.
29628 CP 2 Return if this is level 2 or 3.
29630 RET Z
29631 CP 3
29633 RET Z
Add the balloon for level 4 and above.
29634 PUSH AF Stash the current level on the stack.
29635 LD IX,56016 IX=Sprite04_3Wide_X_Position.
29639 CALL Handler_Balloon Call Handler_Balloon.
29642 POP AF Restore the current level from the stack.
29643 PUSH AF Stash the current level on the stack.
Add the parachute if this is level 4 or higher.
29644 LD IX,56024 IX=Sprite06_3Wide_X_Position.
29648 CP 3 Call Handler_Parachute_Descent if this is level 4 or higher.
29650 CALL NC,Handler_Parachute_Descent
29653 POP AF Restore the current level from the stack.
29654 CP 4 Return if this is level 4.
29656 RET Z
Add the walking paratrooper if this is level 5.
29657 LD IX,56020 IX=Sprite05_3Wide_X_Position.
29661 CALL Handler_Walking_Paratrooper Call Handler_Walking_Paratrooper.
29664 RET Return.
Prev: 29543 Up: Map Next: 29665