| Gyruss | Routines |
| Prev: 86E9 | Up: Map | Next: 873E |
|
Used by the routine at handle_sprite_types_12_13.
|
||||||||||
| handle_sprite_type_03 | 870C | CP $03 | Is sprite type $03? | |||||||
| 870E | JR NZ,handle_sprite_types_15_17 | If not, jump ahead | ||||||||
|
Sprite type $03 (double shot pickup)
|
||||||||||
| 8710 | LD A,(status_flags) | Check if you have died | ||||||||
| 8713 | BIT 2,A | ... | ||||||||
| 8715 | JP NZ,deallocate_enemy | If so, deallocate and return | ||||||||
| 8718 | INC (IX+$05) | Mark for pattern reload | ||||||||
| 871B | LD A,(IX+$07) | X velocity, set to $02 or $FE when created | ||||||||
| 871E | ADD A,(IX+$02) | Add to polar x | ||||||||
| 8721 | AND $3F | Mod 64 | ||||||||
| 8723 | LD (IX+$02),A | Save again | ||||||||
| 8726 | DEC (IX+$03) | Counter, set to $10 when created | ||||||||
| 8729 | RET P | Return if > 0 | ||||||||
| 872A | LD A,($7004) | Get ship polar x | ||||||||
| 872D | LD B,(IX+$02) | Get polar x | ||||||||
| 8730 | CALL polar_x_distance | Polar x distance | ||||||||
| 8733 | CP $04 | Is it >= 4 | ||||||||
| 8735 | RET NC | Then return | ||||||||
| 8736 | LD HL,other_flags | Set double shot flag | ||||||||
| 8739 | SET 1,(HL) | ... | ||||||||
| 873B | JP deallocate_enemy | Deallocate and return | ||||||||
| Prev: 86E9 | Up: Map | Next: 873E |