Prev: 86E9 Up: Map Next: 873E
870C: Handle sprite type $03
Used by the routine at handle_sprite_types_12_13.
Input
A Sprite type
IX Sprite data
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