Prev: AD8B Up: Map Next: AE94
AE54: Handle sprite outside visible screen
Used by the routine at load_sprite_pattern_2.
handle_off_screen_sprite AE54 LD A,(IX+$00) Get sprite type
AE57 CP $0C If < $0C
AE59 JR C,handle_off_screen_sprite_2 Then set off-screen values and return
AE5B CP $0E If >= $0C and < $0E
AE5D JR C,handle_off_screen_sprite_0 Then jump ahead
AE5F CP $12 If >= $0E and < $12
AE61 JR C,load_sprite_pattern_7 Then just return
AE63 CP $18 If >= $18
AE65 JR NC,load_sprite_pattern_7 Then just return
handle_off_screen_sprite_0 AE67 CP $12 If >= $12 and < $12 (not possible)
AE69 JR C,handle_off_screen_sprite_1 Then decrement total enemies
AE6B CP $14 If >= $14 and < $18
AE6D JR NC,handle_off_screen_sprite_1 Then decrement total enemies
AE6F LD HL,active_enemy_shots Decrement active enemy shots
AE72 DEC (HL) ...
AE73 JR handle_off_screen_sprite_2 Set off-screen values and return
handle_off_screen_sprite_1 AE75 LD HL,total_enemies Decrement total enemies
AE78 DEC (HL) ...
AE79 CP $15 If < $15
AE7B JR C,handle_off_screen_sprite_2 Then set off-screen values and return
AE7D CP $18 If >= $18
AE7F JR NC,handle_off_screen_sprite_2 Then set off-screen values and return
AE81 LD HL,other_flags $15 - $17 Reset flag
AE84 RES 3,(HL) ...
handle_off_screen_sprite_2 AE86 LD (IX+$00),$7F Set as not allocated
AE8A LD (IX+$09),$00 Set x
AE8E LD (IX+$08),$F8 Set y
AE92 JR load_sprite_pattern_7
Prev: AD8B Up: Map Next: AE94