Chase H.Q. | Routines |
Prev: 871A | Up: Map | Next: 87DC |
Used by the routine at main_loop.
|
||||
escape_scene | 873C | CALL silence_audio_hook | Call silence_audio_hook | |
873F | LD HL,$871A | Address of escape_scene_data | ||
8742 | CALL setup_game | Call setup_game | ||
8745 | LD HL,$00FA | Set speed to $FA [speed of the camera] | ||
8748 | LD ($A24A),HL | |||
874B | LD HL,$8728 | Initialise hazards[0] (the perp) | ||
874E | LD DE,$A188 | |||
8751 | LD BC,$0014 | |||
8754 | LDIR | |||
8756 | LD HL,($5D10) | Set $A191 to the perp's car LOD | ||
8759 | LD ($A191),HL | |||
875C | LD A,$FF | inhibit_collision_detection = $FF -- Stops sub_ad0d from running | ||
875E | LD ($A221),A | |||
8761 | LD HL,$992A | Address of failed_chatter ("wrong job" / "one more try" / "mediocre driver") | ||
8764 | CALL chatter | Call chatter (priority $FF) | ||
Print "GAME OVER" once the transition has completed.
|
||||
es_loop | 8767 | LD HL,$8CF4 | Address of game_over_message | |
876A | LD A,($A231) | If transition_control != 4 Call message_printing_related | ||
876D | CP $04 | |||
876F | CALL NZ,message_printing_related | |||
8772 | CALL read_map | Call read_map | ||
8775 | CALL main_loop_10 | Call main_loop_10 | ||
8778 | CALL scroll_horizon | Call scroll_horizon | ||
877B | CALL main_loop_12 | Call main_loop_12 | ||
877E | CALL main_loop_13 | Call main_loop_13 | ||
8781 | CALL main_loop_14 | Call main_loop_14 | ||
8784 | CALL tunnel_setup | Call tunnel_setup | ||
8787 | CALL spawn_hazards | Call spawn_hazards | ||
878A | CALL draw_hazards | Call draw_hazards | ||
878D | CALL main_loop_23 | Call main_loop_23 | ||
8790 | CALL update_scoreboard | Call update_scoreboard | ||
8793 | CALL drive_chatter | Call drive_chatter | ||
8796 | CALL transition | Call transition | ||
8799 | CALL draw_screen | Call draw_screen | ||
879C | LD A,($C161) | Jump to es_loop unless the tunnel has appeared | ||
879F | AND A | |||
87A0 | JR Z,es_loop | |||
87A2 | LD A,($C15E) | reading from tunnel code [15 when tunnel is small, 6 when fills screen] | ||
87A5 | CP $07 | loop if tunnel code value >= 7 | ||
87A7 | JR NC,es_loop | |||
87A9 | LD A,($A189) | $A189 is hazards 2nd byte | ||
87AC | CP $05 | Jump if it != 5 | ||
87AE | JR NZ,escape_scene_0 | |||
87B0 | LD A,$FF | Activate three hazards? [i.e. the three barriers] | ||
87B2 | LD ($A1A3),A | |||
87B5 | LD ($A1B7),A | |||
87B8 | LD ($A1CB),A | |||
escape_scene_0 | 87BB | LD HL,$0000 | Set speed to zero [speed of camera] | |
87BE | LD ($A24A),HL | |||
87C1 | LD A,($A188) | Loop while the perp is still active in the hazards | ||
87C4 | RRCA | |||
87C5 | JR C,es_loop | |||
87C7 | LD A,($963D) | Loop while chatter_state > 0 => chatter is still happening | ||
87CA | AND A | |||
87CB | JR NZ,es_loop | |||
87CD | LD A,($A231) | Return if transition_control is zero | ||
87D0 | AND A | |||
87D1 | RET Z | |||
87D2 | CP $04 | If transition_control is 4 | ||
87D4 | LD A,$08 | |||
87D6 | CALL NZ,setup_transition | Call setup_transition if non-zero | ||
87D9 | JP es_loop | Loop |
Prev: 871A | Up: Map | Next: 87DC |