Prev: 7265 Up: Map Next: 72BD
7286: Handler: Room 03
Handles room 03 logic. The current level in B controls which objects are initialised or updated on each pass.
Levels Baddies
01 Helicopter
02 Cat, Dog
03 Helicopter, Cat, Dog
04 Helicopter, Cat, Dog, Plane
05+ Helicopter, Cat, Dog, Plane, UFO
Input
B Current level
Handler_Room03 7286 LD A,B Copy the current level into A.
Add a helicopter for every level other than level 02.
7287 LD IX,$DAC8 IX=Sprite02_3Wide_X_Position.
728B PUSH AF Stash the current level on the stack.
728C CP $02 Call Handler_Helicopter if this is not level 02.
728E CALL NZ,Handler_Helicopter
Add a cat to this room for any level other than level 01.
7291 POP AF Restore the current level from the stack.
7292 LD IX,$DACC IX=Sprite03_3Wide_X_Position.
7296 CP $01 Is this level 01?
7298 PUSH AF Stash the current level on the stack.
7299 CALL NZ,Handler_Cat Call Handler_Cat if this is not level 01.
Add a dog to this room for any level other than level 01.
729C POP AF Restore the current level from the stack.
729D LD IX,$DAD0 IX=Sprite04_3Wide_X_Position.
72A1 PUSH AF Stash the current level on the stack.
72A2 CP $01 Call Handler_Dog if this is not level 01.
72A4 CALL NZ,Handler_Dog
Add the plane if this is level 04 or higher.
72A7 POP AF Restore the current level from the stack.
72A8 LD IX,$DAD8 IX=Sprite06_3Wide_X_Position.
72AC CP $04 Is this level 04?
72AE PUSH AF Stash the current level on the stack.
72AF CALL NC,Handler_Plane Call Handler_Plane if this is level 05 or higher.
Add a UFO if this is level 05.
72B2 POP AF Restore the current level from the stack.
72B3 LD IX,$DADC IX=Sprite07_3Wide_X_Position.
72B7 CP $05 Call Handler_UFO if this is level 05.
72B9 CALL Z,Handler_UFO
72BC RET Return.
Prev: 7265 Up: Map Next: 72BD