keen: move some code around

This commit is contained in:
Vince Weaver 2024-04-04 16:21:19 -04:00
parent a165ba864b
commit a3fae54b94
3 changed files with 86 additions and 88 deletions

View File

@ -98,3 +98,66 @@ laser_sideways_sprite:
; .byte $3A,$cA,$3A,$cA ; .byte $3A,$cA,$3A,$cA
.byte $A3,$Ac,$A3,$Ac .byte $A3,$Ac,$A3,$Ac
;=======================
; laser enemies
;=======================
; see if laser hits any enemies
laser_enemies:
ldy #0
laser_enemies_loop:
; see if out
lda enemy_data+ENEMY_DATA_OUT,Y
beq done_laser_enemy
; get local tilemap co-ord
sec
lda enemy_data+ENEMY_DATA_TILEX,Y
sbc TILEMAP_X
sta TILE_TEMP
sec
lda enemy_data+ENEMY_DATA_TILEY,Y
sbc TILEMAP_Y
asl
asl
asl
asl
clc
adc TILE_TEMP
cmp LASER_TILE
bne done_laser_enemy
; hit something
hit_something:
lda #0
sta LASER_OUT
sta FRAMEL
; sta enemy_data+ENEMY_DATA_OUT,Y
lda #1
sta enemy_data+ENEMY_DATA_EXPLODING,Y
; jsr enemy_noise
; jsr inc_score_by_10
jmp exit_laser_enemy
done_laser_enemy:
tya
clc
adc #8
tay
cpy #(NUM_ENEMIES*8)
bne laser_enemies_loop
exit_laser_enemy:
rts

View File

@ -134,7 +134,7 @@ keen_loop:
jsr move_keen jsr move_keen
; jsr move_enemies jsr move_enemies
jsr move_laser jsr move_laser

View File

@ -1,89 +1,42 @@
NUM_ENEMIES = 4 NUM_ENEMIES = 4
;======================= ;=======================
; laser enemies ; move enemies
;======================= ;=======================
; see if laser hits any enemies
laser_enemies: move_enemies:
ldy #0 ldy #0
laser_enemies_loop:
; see if out move_enemies_loop:
; only move if out
lda enemy_data+ENEMY_DATA_OUT,Y lda enemy_data+ENEMY_DATA_OUT,Y
beq done_laser_enemy beq done_move_enemy
; get local tilemap co-ord ; check if falling
sec
lda enemy_data+ENEMY_DATA_TILEX,Y
sbc TILEMAP_X
sta TILE_TEMP
sec ; check if moving right/left
lda enemy_data+ENEMY_DATA_TILEY,Y
sbc TILEMAP_Y
asl
asl
asl
asl
clc
adc TILE_TEMP
cmp LASER_TILE ; lda enemy_data+ENEMY_DATA_X,Y
bne done_laser_enemy ; clc
; adc #1
; sta enemy_data+ENEMY_DATA_X,Y
; hit something ; cmp #36
hit_something: ; bcc done_move_enemy
lda #0
sta LASER_OUT ; lda #0
sta FRAMEL
; sta enemy_data+ENEMY_DATA_OUT,Y ; sta enemy_data+ENEMY_DATA_OUT,Y
lda #1
sta enemy_data+ENEMY_DATA_EXPLODING,Y
; jsr enemy_noise done_move_enemy:
; jsr inc_score_by_10 iny
cpy #NUM_ENEMIES
jmp exit_laser_enemy bne move_enemies_loop
done_laser_enemy:
tya
clc
adc #8
tay
cpy #(NUM_ENEMIES*8)
bne laser_enemies_loop
exit_laser_enemy:
rts
;=======================
; move enemy
;=======================
; which one is in Y
; assume yorp for now
move_enemy:
lda enemy_data+ENEMY_DATA_X,Y
clc
adc #1
sta enemy_data+ENEMY_DATA_X,Y
cmp #36
bcc move_enemy_good
lda #0
sta enemy_data+ENEMY_DATA_OUT,Y
move_enemy_good:
rts rts
@ -201,10 +154,6 @@ draw_enemy:
pla pla
tay tay
; also move enemy
jsr move_enemy
done_draw_enemy: done_draw_enemy:
tya tya
@ -218,16 +167,6 @@ done_draw_enemy:
exit_draw_enemy: exit_draw_enemy:
rts rts
.if 0
enemy_sprites:
.word enemy_camera_sprite1
.word enemy_camera_sprite2
.word enemy_crawler_sprite1
.word enemy_crawler_sprite2
.word enemy_bot_sprite1
.word enemy_bot_sprite2
.endif
enemy_explosion_sprites: enemy_explosion_sprites:
.word enemy_explosion_sprite1 .word enemy_explosion_sprite1
.word enemy_explosion_sprite1 .word enemy_explosion_sprite1
@ -249,10 +188,6 @@ enemy_explosion_sprite3:
.byte $7A,$5A .byte $7A,$5A
.byte $A5,$A7 .byte $A5,$A7
;ENEMY_CAMERA = 0
;ENEMY_CRAWLER = 4
;ENEMY_BOT = 8
ENEMY_YORP = 0 ENEMY_YORP = 0
ENEMY_DATA_OUT = 0 ENEMY_DATA_OUT = 0