A167: Update the balls for this frame
| update_balls |
A167 |
LD A,(death_pause_timer) |
|
A16A |
OR A |
|
A16B |
RET NZ |
|
A16C |
LD A,(capture_active) |
|
A16F |
OR A |
|
A170 |
JR NZ,update_balls_ball_b |
|
A172 |
LD A,(ball_a_move_gate) |
|
A175 |
OR A |
|
A176 |
JR Z,update_balls_move_a |
|
A178 |
LD C,A |
|
A179 |
LD A,(ball_a_speed) |
|
A17C |
ADD A,C |
|
A17D |
LD (ball_a_move_gate),A |
|
A180 |
CP $09 |
|
A182 |
JR C,update_balls_deflect_a |
|
A184 |
XOR A |
|
A185 |
LD (ball_a_move_gate),A |
| update_balls_move_a |
A188 |
XOR A |
|
A189 |
LD (active_ball),A |
|
A18C |
CALL move_ball |
| update_balls_deflect_a |
A18F |
LD A,(ball_a_deflect_cooldown) |
|
A192 |
OR A |
|
A193 |
JR Z,update_balls_a_post |
|
A195 |
LD C,A |
|
A196 |
LD A,(ball_a_speed) |
|
A199 |
ADD A,C |
|
A19A |
LD (ball_a_deflect_cooldown),A |
|
A19D |
CP $0D |
|
A19F |
JR C,update_balls_ball_b |
|
A1A1 |
XOR A |
|
A1A2 |
LD (ball_a_deflect_cooldown),A |
| update_balls_a_post |
A1A5 |
LD (ball_a_skip_catch),A |
|
A1A8 |
LD A,(ball_a_on_bat) |
|
A1AB |
OR A |
|
A1AC |
JR NZ,update_balls_ball_b |
|
A1AE |
LD A,(ball_a_move_gate) |
|
A1B1 |
OR A |
|
A1B2 |
JR NZ,update_balls_ball_b |
|
A1B4 |
LD A,$01 |
|
A1B6 |
LD (overlap_slot_1),A |
|
A1B9 |
CALL ball_object_deflect |
| update_balls_ball_b |
A1BC |
LD A,(ball_b_in_play) |
|
A1BF |
OR A |
|
A1C0 |
JR Z,update_balls_queued_a |
|
A1C2 |
LD A,(ball_b_move_gate) |
|
A1C5 |
OR A |
|
A1C6 |
JR Z,update_balls_move_b |
|
A1C8 |
LD C,A |
|
A1C9 |
LD A,(ball_b_speed) |
|
A1CC |
ADD A,C |
|
A1CD |
LD (ball_b_move_gate),A |
|
A1D0 |
CP $09 |
|
A1D2 |
JR C,update_balls_deflect_b |
|
A1D4 |
XOR A |
|
A1D5 |
LD (ball_b_move_gate),A |
| update_balls_move_b |
A1D8 |
LD A,$01 |
|
A1DA |
LD (active_ball),A |
|
A1DD |
CALL move_ball |
| update_balls_deflect_b |
A1E0 |
LD A,(missile_shot) |
|
A1E3 |
OR A |
|
A1E4 |
JR NZ,update_balls_queued_a |
|
A1E6 |
LD A,(ball_b_deflect_cooldown) |
|
A1E9 |
OR A |
|
A1EA |
JR Z,update_balls_b_post |
|
A1EC |
LD C,A |
|
A1ED |
LD A,(ball_a_speed) |
|
A1F0 |
ADD A,C |
|
A1F1 |
LD (ball_b_deflect_cooldown),A |
|
A1F4 |
CP $0D |
|
A1F6 |
JR C,update_balls_queued_a |
|
A1F8 |
XOR A |
|
A1F9 |
LD (ball_b_deflect_cooldown),A |
| update_balls_b_post |
A1FC |
XOR A |
|
A1FD |
LD (ball_b_skip_catch),A |
|
A200 |
LD A,(ball_b_on_bat) |
|
A203 |
OR A |
|
A204 |
JR NZ,update_balls_queued_a |
|
A206 |
LD A,(ball_b_move_gate) |
|
A209 |
OR A |
|
A20A |
JR NZ,update_balls_queued_a |
|
A20C |
LD A,$02 |
|
A20E |
LD (overlap_slot_1),A |
|
A211 |
CALL ball_object_deflect |
| update_balls_queued_a |
A214 |
LD A,(capture_active) |
|
A217 |
OR A |
|
A218 |
JR NZ,update_balls_queued_b |
|
A21A |
LD A,(apply_heading_a) |
|
A21D |
OR A |
|
A21E |
JR Z,update_balls_queued_b |
|
A220 |
XOR A |
|
A221 |
LD (apply_heading_a),A |
|
A224 |
LD A,(ball_b_on_bat) |
|
A227 |
OR A |
|
A228 |
JR Z,update_balls_arm_cool_a |
|
A22A |
LD A,$01 |
|
A22C |
LD (ball_a_skip_catch),A |
| update_balls_arm_cool_a |
A22F |
LD A,(ball_a_deflect_cooldown) |
|
A232 |
OR A |
|
A233 |
JR NZ,update_balls_apply_dir_a |
|
A235 |
LD A,$01 |
|
A237 |
LD (ball_a_deflect_cooldown),A |
| update_balls_apply_dir_a |
A23A |
LD A,(pending_heading_a) |
|
A23D |
LD (ball_a_heading),A |
|
A240 |
XOR A |
|
A241 |
LD (active_ball),A |
|
A244 |
CALL set_ball_velocity |
| update_balls_queued_b |
A247 |
LD A,(ball_b_in_play) |
|
A24A |
OR A |
|
A24B |
JR Z,update_balls_finish |
|
A24D |
LD A,(apply_heading_b) |
|
A250 |
OR A |
|
A251 |
JR Z,update_balls_finish |
|
A253 |
XOR A |
|
A254 |
LD (apply_heading_b),A |
|
A257 |
LD A,(ball_a_on_bat) |
|
A25A |
OR A |
|
A25B |
JR Z,update_balls_arm_cool_b |
|
A25D |
LD A,$01 |
|
A25F |
LD (ball_b_skip_catch),A |
| update_balls_arm_cool_b |
A262 |
LD A,(ball_b_deflect_cooldown) |
|
A265 |
OR A |
|
A266 |
JR NZ,update_balls_apply_dir_b |
|
A268 |
LD A,$01 |
|
A26A |
LD (ball_b_deflect_cooldown),A |
| update_balls_apply_dir_b |
A26D |
LD A,(pending_heading_b) |
|
A270 |
LD (ball_b_heading),A |
|
A273 |
LD A,$01 |
|
A275 |
LD (active_ball),A |
|
A278 |
CALL set_ball_velocity |
| update_balls_finish |
A27B |
CALL resolve_ball_bounces |
|
A27E |
LD A,(capture_active) |
|
A281 |
OR A |
|
A282 |
JR NZ,update_balls_0 |
|
A284 |
XOR A |
|
A285 |
LD (active_ball),A |
|
A288 |
CALL step_ball |
| update_balls_0 |
A28B |
LD A,(ball_b_in_play) |
|
A28E |
OR A |
|
A28F |
RET Z |
|
A290 |
LD A,$01 |
|
A292 |
LD (active_ball),A |
|
A295 |
CALL step_ball |
|
A298 |
RET |
Fork me on GitHub