Prev: 86DE Up: Map Next: 870C
86E9: Handle sprite types $12 - $13
Used by the routine at handle_sprite_type_14.
Input
A Sprite type
IX Sprite data
handle_sprite_types_12_13 86E9 CP $12 Is sprite type < $012
86EB JR C,handle_sprite_type_03 If so, jump ahead
86ED CP $14 Is sprite type >= $014
86EF JR NC,handle_sprite_type_03 If so, jump ahead
Sprite types $12 - $13 (enemy missile)
86F1 LD A,(frame_counter) Frame counter
86F4 LD B,A Store in B
86F5 AND $01 Every 2nd frame
86F7 RET NZ Return to return_from_sprite_handler
86F8 LD A,B Frame counter
86F9 AND $0F Mod 16
86FB JR NZ,handle_sprite_types_12_13_0 If not zero then skip animation
86FD LD A,(IX+$00) Get sprite type
8700 XOR $01 Flip bit 0 to change between $12 and $13
8702 LD (IX+$00),A Save new type
handle_sprite_types_12_13_0 8705 INC (IX+$05) Mark for pattern reload
8708 DEC (IX+$01) Decrement polar y
870B RET Return to return_from_sprite_handler
Prev: 86DE Up: Map Next: 870C