| Gyruss | Routines |
| Prev: 873E | Up: Map | Next: 87D5 |
|
Used by the routine at handle_sprite_types_15_17.
|
||||||||||
| handle_sprite_types_0E_11 | 8790 | CP $0E | Is sprite type < $0E | |||||||
| 8792 | JP C,handle_sprite_types_18_1C | If so, jump ahead | ||||||||
| 8795 | CP $12 | Is sprite type >= $12 | ||||||||
| 8797 | JP NC,handle_sprite_types_18_1C | If so, jump ahead | ||||||||
|
Sprite type $0E - $11 (enemies)
|
||||||||||
| 879A | BIT 7,(IX+$07) | Check bit 7 to see if a path address is set | ||||||||
| 879E | JP NZ,update_sprite_path | If set, update sprite path | ||||||||
| 87A1 | BIT 7,(IX+$01) | Check bit 7 of polar y | ||||||||
| 87A5 | JP NZ,move_towards_viewer | If set, move towards viewer | ||||||||
| 87A8 | BIT 6,(IX+$07) | Check bit 6 of flags | ||||||||
| 87AC | JR NZ,move_towards_center | If set, create map entry for enemy sprite | ||||||||
| 87AE | BIT 2,(IX+$07) | Check bit 2 of flags | ||||||||
| 87B2 | JP NZ,move_towards_viewer | If set, move towards viewer | ||||||||
| 87B5 | BIT 0,(IX+$07) | Check bit 0 of flags | ||||||||
| 87B9 | JP NZ,create_enemy_shot_and_move | If set, create enemy shot and move | ||||||||
| 87BC | LD A,(attack_countdown) | Attack countdown | ||||||||
| 87BF | OR A | Return if not zero | ||||||||
| 87C0 | RET NZ | ... | ||||||||
| 87C1 | CALL maybe_create_enemy_shot | Create enemy shot | ||||||||
| 87C4 | DEC (IX+$01) | Decrement polar y | ||||||||
| 87C7 | LD A,($7004) | Ship polar x | ||||||||
| 87CA | CALL move_towards_x | Move towards x | ||||||||
| 87CD | LD (IX+$00),$10 | Set sprite type | ||||||||
| 87D1 | INC (IX+$05) | Mark for pattern reload | ||||||||
| 87D4 | RET | Return to return_from_sprite_handler | ||||||||
| Prev: 873E | Up: Map | Next: 87D5 |