Prev: 873E Up: Map Next: 87D5
8790: Handle sprite types $0E - $11
Used by the routine at handle_sprite_types_15_17.
Input
A Sprite type
IX Sprite data
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