mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-06-08 00:29:35 +00:00
keen: fix up laser support
This commit is contained in:
parent
5dbbd383ff
commit
2fd7d7d96a
|
@ -51,7 +51,7 @@ check_shooting_right:
|
|||
draw_shooting_right:
|
||||
ldx #<keen_sprite_shooting_right
|
||||
lda #>keen_sprite_shooting_right
|
||||
dec KEEN_SHOOTING
|
||||
;dec KEEN_SHOOTING
|
||||
jmp actually_draw_keen
|
||||
|
||||
check_walking_right:
|
||||
|
@ -98,7 +98,7 @@ check_shooting_left:
|
|||
draw_shooting_left:
|
||||
ldx #<keen_sprite_shooting_left
|
||||
lda #>keen_sprite_shooting_left
|
||||
dec KEEN_SHOOTING
|
||||
; dec KEEN_SHOOTING
|
||||
jmp actually_draw_keen
|
||||
|
||||
check_walking_left:
|
||||
|
|
|
@ -10,34 +10,25 @@ move_laser:
|
|||
lda LASER_OUT
|
||||
beq done_move_laser
|
||||
|
||||
lda LASER_X
|
||||
|
||||
lda LASER_TILEX
|
||||
clc
|
||||
adc LASER_DIRECTION
|
||||
sta LASER_X
|
||||
sta LASER_TILEX
|
||||
|
||||
laser_check_tiles:
|
||||
|
||||
; collision detect with tiles
|
||||
|
||||
; laser location is roughly
|
||||
; (y/4)*16 + (x/2) - 2
|
||||
lda LASER_Y
|
||||
lsr
|
||||
lsr
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
sta LASER_TILE
|
||||
lda LASER_X
|
||||
lsr
|
||||
clc
|
||||
adc LASER_TILE
|
||||
sec
|
||||
sbc #2
|
||||
sta LASER_TILE
|
||||
lda LASER_TILEY
|
||||
adc #>big_tilemap
|
||||
sta INH
|
||||
lda LASER_TILEX
|
||||
sta INL
|
||||
|
||||
ldx LASER_TILE
|
||||
lda tilemap,X
|
||||
ldy #0
|
||||
lda (INL),Y
|
||||
cmp #ALLHARD_TILES
|
||||
bcs destroy_laser
|
||||
|
||||
|
@ -45,20 +36,24 @@ laser_check_tiles:
|
|||
laser_check_enemies:
|
||||
; collision detect with enemies
|
||||
|
||||
jsr laser_enemies
|
||||
; jsr laser_enemies
|
||||
|
||||
|
||||
; detect if off screen
|
||||
laser_check_right:
|
||||
lda LASER_X
|
||||
cmp #31
|
||||
sec
|
||||
lda LASER_TILEX
|
||||
sbc TILEMAP_X
|
||||
cmp #21
|
||||
bcc laser_check_left ; not_too_far_right
|
||||
bcs destroy_laser
|
||||
|
||||
laser_check_left:
|
||||
cmp #6
|
||||
bcs done_move_laser
|
||||
bcc destroy_laser
|
||||
sec
|
||||
lda LASER_TILEX
|
||||
sbc TILEMAP_X
|
||||
bpl done_move_laser
|
||||
; bmi destroy_laser
|
||||
|
||||
destroy_laser:
|
||||
lda #0
|
||||
|
@ -67,6 +62,7 @@ destroy_laser:
|
|||
done_move_laser:
|
||||
rts
|
||||
|
||||
|
||||
;====================
|
||||
; draw laser
|
||||
;====================
|
||||
|
@ -76,13 +72,18 @@ draw_laser:
|
|||
lda LASER_OUT
|
||||
beq done_draw_laser
|
||||
|
||||
lda LASER_X
|
||||
sta XPOS
|
||||
lda LASER_Y
|
||||
sec
|
||||
lda LASER_TILEY
|
||||
sbc TILEMAP_Y
|
||||
asl
|
||||
asl
|
||||
sta YPOS
|
||||
|
||||
; lda LASER_DIRECTION
|
||||
|
||||
sec
|
||||
lda LASER_TILEX
|
||||
sbc TILEMAP_X
|
||||
asl
|
||||
sta XPOS
|
||||
|
||||
lda #<laser_sideways_sprite
|
||||
sta INL
|
||||
|
|
|
@ -122,6 +122,7 @@ left_pressed:
|
|||
|
||||
lda #4
|
||||
sta KEEN_WALKING
|
||||
|
||||
jmp done_left_pressed
|
||||
|
||||
left_facing_right:
|
||||
|
@ -138,6 +139,9 @@ left_not_walking:
|
|||
sta KEEN_DIRECTION
|
||||
|
||||
done_left_pressed:
|
||||
lda #0
|
||||
sta KEEN_SHOOTING
|
||||
|
||||
jmp done_keypress
|
||||
|
||||
check_right:
|
||||
|
@ -176,6 +180,9 @@ right_not_walking:
|
|||
|
||||
|
||||
done_right_pressed:
|
||||
lda #0
|
||||
sta KEEN_SHOOTING
|
||||
|
||||
jmp done_keypress
|
||||
|
||||
check_jump_right:
|
||||
|
@ -282,6 +289,9 @@ check_comma:
|
|||
comma_pressed:
|
||||
; check if we have any shots left
|
||||
|
||||
lda #2 ; draw us shooting even if out of ammo
|
||||
sta KEEN_SHOOTING
|
||||
|
||||
lda RAYGUNS
|
||||
beq done_comma
|
||||
|
||||
|
@ -295,34 +305,29 @@ comma_pressed:
|
|||
ldy #SFX_GUNCLICK
|
||||
jsr play_sfx
|
||||
|
||||
; jsr laser_noise
|
||||
|
||||
lda KEEN_DIRECTION
|
||||
sta LASER_DIRECTION
|
||||
|
||||
lda #2
|
||||
sta KEEN_SHOOTING
|
||||
|
||||
cmp #1
|
||||
beq laser_right
|
||||
laser_left:
|
||||
lda KEEN_X
|
||||
lda KEEN_TILEX
|
||||
sec
|
||||
sbc #1
|
||||
jmp laser_assign
|
||||
|
||||
laser_right:
|
||||
lda KEEN_X
|
||||
lda KEEN_TILEX
|
||||
clc
|
||||
adc #2
|
||||
|
||||
laser_assign:
|
||||
sta LASER_X
|
||||
sta LASER_TILEX
|
||||
|
||||
lda KEEN_Y
|
||||
lda KEEN_TILEY
|
||||
clc
|
||||
adc #4
|
||||
sta LASER_Y
|
||||
adc #1
|
||||
sta LASER_TILEY
|
||||
|
||||
inc LASER_OUT
|
||||
|
||||
|
|
|
@ -42,6 +42,11 @@ keen_start:
|
|||
sta KEEN_SHOOTING
|
||||
sta KEYCARDS
|
||||
|
||||
; debug
|
||||
|
||||
; lda #9
|
||||
; sta RAYGUNS
|
||||
|
||||
lda #4
|
||||
sta DRAW_PAGE
|
||||
|
||||
|
|
|
@ -102,8 +102,8 @@ KEEN_WALKING = $89
|
|||
KEEN_JUMPING = $8A
|
||||
|
||||
LASER_OUT = $8B
|
||||
LASER_X = $8C
|
||||
LASER_Y = $8D
|
||||
LASER_TILEX = $8C
|
||||
LASER_TILEY = $8D
|
||||
LASER_DIRECTION = $8E
|
||||
|
||||
RAYGUNS = $8F
|
||||
|
|
Loading…
Reference in New Issue
Block a user