![]() |
Routines |
| Prev: 82F1 | Up: Map | Next: 83BA |
|
Sprites $6A and $6B, the second kind of bat. Every sixteen passes it picks a random direction from R into +$08, and in between takes its steps from STEP_VECTORS in order through ARC_STEP -- sixteen steps that swing from horizontal to vertical, the axes swapped by bit 2 of +$08 -- so it flies in arcs, bouncing off the walls.
|
||||
| MOVE_ARCS | 8301 | LD A,($EA91) | ||
| 8304 | CP (IX+$01) | |||
| 8307 | JP NZ,ACTOR_TICK_TIMER | |||
| 830A | CALL ACTOR_TO_WORKSPACE | |||
| 830D | LD HL,$5E25 | |||
| 8310 | INC (HL) | |||
| 8311 | CALL CHECK_HIT | |||
| 8314 | DEC E | |||
| 8315 | JP Z,MONSTER_CAUGHT_PLAYER | |||
| 8318 | CALL CHECK_SHOT_HIT | |||
| 831B | DEC E | |||
| 831C | JP Z,KILL_MONSTER | |||
| 831F | LD (IX+$0F),$00 | |||
| 8323 | LD DE,($5E1D) | |||
| 8327 | LD A,(IX+$09) | |||
| 832A | INC A | |||
| 832B | AND $0F | |||
| 832D | LD (IX+$09),A | |||
| 8330 | JP NZ,MOVE_ARCS_0 | |||
| 8333 | LD A,R | |||
| 8335 | AND $07 | |||
| 8337 | LD (IX+$08),A | |||
| MOVE_ARCS_0 | 833A | CALL ARC_STEP | ||
| 833D | LD (IX+$05),$43 | |||
| 8341 | JR NZ,MOVE_ARCS_1 | |||
| 8343 | INC HL | |||
| MOVE_ARCS_1 | 8344 | LD A,(HL) | ||
| 8345 | BIT 1,(IX+$08) | |||
| 8349 | JR NZ,MOVE_ARCS_2 | |||
| 834B | NEG | |||
| MOVE_ARCS_2 | 834D | ADD A,(IX+$04) | ||
| 8350 | LD C,A | |||
| 8351 | SUB $68 | |||
| 8353 | JR C,MOVE_ARCS_3 | |||
| 8355 | CP D | |||
| 8356 | JR NC,MOVE_ARCS_10 | |||
| 8358 | JR MOVE_ARCS_4 | |||
| MOVE_ARCS_3 | 835A | NEG | ||
| 835C | CP D | |||
| 835D | JR NC,MOVE_ARCS_11 | |||
| MOVE_ARCS_4 | 835F | LD (IX+$04),C | ||
| MOVE_ARCS_5 | 8362 | CALL ARC_STEP | ||
| 8365 | JR Z,MOVE_ARCS_6 | |||
| 8367 | INC HL | |||
| MOVE_ARCS_6 | 8368 | LD A,(HL) | ||
| 8369 | BIT 0,(IX+$08) | |||
| 836D | JR NZ,MOVE_ARCS_7 | |||
| 836F | NEG | |||
| MOVE_ARCS_7 | 8371 | ADD A,(IX+$03) | ||
| 8374 | LD C,A | |||
| 8375 | SUB $58 | |||
| 8377 | JR C,MOVE_ARCS_8 | |||
| 8379 | CP E | |||
| 837A | JR NC,MOVE_ARCS_13 | |||
| 837C | JR MOVE_ARCS_9 | |||
| MOVE_ARCS_8 | 837E | NEG | ||
| 8380 | CP E | |||
| 8381 | JR NC,MOVE_ARCS_12 | |||
| MOVE_ARCS_9 | 8383 | LD (IX+$03),C | ||
| 8386 | LD A,(IX+$09) | |||
| 8389 | RRA | |||
| 838A | RRA | |||
| 838B | AND $01 | |||
| 838D | LD C,A | |||
| 838E | LD A,(IX+$00) | |||
| 8391 | AND $FE | |||
| 8393 | ADD A,C | |||
| 8394 | LD (IX+$00),A | |||
| 8397 | LD A,($EA90) | |||
| 839A | CP $31 | |||
| 839C | JP NC,KILL_MONSTER | |||
| 839F | JP REDRAW_ACTOR | |||
| MOVE_ARCS_10 | 83A2 | RES 1,(IX+$08) | ||
| 83A6 | JR MOVE_ARCS_5 | |||
| MOVE_ARCS_11 | 83A8 | SET 1,(IX+$08) | ||
| 83AC | JR MOVE_ARCS_5 | |||
| MOVE_ARCS_12 | 83AE | SET 0,(IX+$08) | ||
| 83B2 | JR MOVE_ARCS_9 | |||
| MOVE_ARCS_13 | 83B4 | RES 0,(IX+$08) | ||
| 83B8 | JR MOVE_ARCS_9 | |||
| Prev: 82F1 | Up: Map | Next: 83BA |