ootw: l2: more fine tuning, fixing some bugs

doesn't crash when you shoot aliens anymore
This commit is contained in:
Vince Weaver 2019-08-22 10:38:51 -04:00
parent a87138cb0e
commit 4174221b4e
3 changed files with 53 additions and 27 deletions

View File

@ -1,6 +1,20 @@
TODO Before release: TODO Before release:
==================== ====================
l2 -- picking up gun collision box isn't quite right
when coming in from the right
l2 -- fix collision with alien on same level
l2 -- adjust door trigger in break room
l2 -- move doors to final behavior (break room one needs to
be locked)
l2/l4 -- have aliens shoot
L2 vent -- we fall behind the vent
No easy way to fix that unless we split if off from
the friend drawing code, or change the Z order of the friend
l2 -- alien behavior l2 -- alien behavior
@ -14,13 +28,6 @@ TODO Before release:
L2 -- disable door/powerline by shooting wall L2 -- disable door/powerline by shooting wall
L2 -- add aliens L2 -- add aliens
L2 -- add minimal friend AI
-- on cart screen, cart is still there at edge of screen?
L5 -- add ending scenes?
Show some pictures
Do ending
Play music?
intro -- add music? intro -- add music?
@ -48,6 +55,7 @@ BEHAVIOR DIFFERENCES:
* alien guard behavior: * alien guard behavior:
- will punch you if you get too close - will punch you if you get too close
- become alert if they hear an explosion
- l4, if you draw gun (but not fire) guard won't shoot you, - l4, if you draw gun (but not fire) guard won't shoot you,
but instead will yell at you a bit but instead will yell at you a bit

View File

@ -59,6 +59,7 @@ move_alien:
; FIXME: loop through all alieans ; FIXME: loop through all alieans
ldx #0 ldx #0
move_alien_loop:
lda alien_room,X lda alien_room,X
cmp WHICH_ROOM cmp WHICH_ROOM
bne done_move_alien bne done_move_alien
@ -73,14 +74,20 @@ move_alien:
beq move_alien_yelling beq move_alien_yelling
cmp #A_SHOOTING_UP cmp #A_SHOOTING_UP
beq move_alien_yelling beq move_alien_yelling
done_move_alien: done_move_alien:
inx
cpx #MAX_ALIENS
bne move_alien_loop
rts rts
;====================== ;======================
; yelling ; yelling
move_alien_yelling: move_alien_yelling:
inc alien_gait,X ; cycle through animation inc alien_gait,X ; cycle through animation
rts jmp done_move_alien
;====================== ;======================
; walking ; walking
@ -97,11 +104,11 @@ move_alien_walking:
beq a_walk_left beq a_walk_left
inc alien_x,X ; walk right inc alien_x,X ; walk right
rts jmp done_move_alien
a_walk_left: a_walk_left:
dec alien_x,X ; walk left dec alien_x,X ; walk left
alien_no_move_walk: alien_no_move_walk:
rts jmp done_move_alien
;====================== ;======================
; running ; running
@ -117,11 +124,11 @@ move_alien_running:
beq a_run_left beq a_run_left
inc alien_x,X ; run right inc alien_x,X ; run right
rts jmp done_move_alien
a_run_left: a_run_left:
dec alien_x,X ; run left dec alien_x,X ; run left
alien_no_move_run: alien_no_move_run:
rts jmp done_move_alien
;====================== ;======================
; standing ; standing
@ -169,13 +176,16 @@ ajump:
;====================================== ;======================================
draw_alien: draw_alien:
; FIXME
ldx #0
ldx #0
draw_alien_loop:
lda alien_room,X lda alien_room,X
cmp WHICH_ROOM cmp WHICH_ROOM
bne no_alien bne no_alien
txa
pha
lda alien_state,X lda alien_state,X
tay tay
lda astate_table_lo,y lda astate_table_lo,y
@ -183,8 +193,15 @@ draw_alien:
lda astate_table_hi,y lda astate_table_hi,y
sta ajump+1 sta ajump+1
jmp (ajump) jmp (ajump)
done_draw_alien_loop:
pla
tax
no_alien: no_alien:
inx
cpx #MAX_ALIENS
bne draw_alien_loop
rts rts
;================================== ;==================================
@ -367,7 +384,7 @@ alien_disintegrating:
dec ALIEN_OUT dec ALIEN_OUT
rts jmp done_draw_alien_loop
alien_keep_disintegrating: alien_keep_disintegrating:
@ -449,11 +466,12 @@ finally_draw_alien:
bne alien_facing_right bne alien_facing_right
alien_facing_left: alien_facing_left:
jmp put_sprite_crop jsr put_sprite_crop
jmp done_draw_alien_loop
alien_facing_right: alien_facing_right:
jmp put_sprite_flipped_crop jsr put_sprite_flipped_crop
jmp done_draw_alien_loop
;================== ;==================
;================== ;==================

View File

@ -87,9 +87,9 @@ ootw_jail_init:
lda #4 lda #4
sta alien2_room sta alien2_room
lda #20 lda #25
sta alien2_x sta alien2_x
lda #20 lda #30
sta alien2_y sta alien2_y
lda #A_STANDING lda #A_STANDING
sta alien2_state sta alien2_state
@ -288,7 +288,7 @@ jail4:
jail4_bottom: jail4_bottom:
lda #(-4+128) lda #(-4+128)
sta LEFT_LIMIT sta LEFT_LIMIT
lda #(28+128) lda #(30+128)
sta RIGHT_LIMIT sta RIGHT_LIMIT
jmp jail4_ok jmp jail4_ok
@ -315,7 +315,7 @@ jail4_ok:
lda #(-4+128) lda #(-4+128)
sta td_left_smc1+1 sta td_left_smc1+1
lda #(28+128) lda #(30+128)
sta td_right_smc1+1 sta td_right_smc1+1
lda #(10+128) lda #(10+128)
@ -593,9 +593,9 @@ c2_done_draw_friend:
; draw alien ; draw alien
;=============== ;===============
lda ALIEN_OUT lda ALIEN_OUT
beq no_draw_alien beq no_draw_alien
jsr draw_alien jsr draw_alien
no_draw_alien: no_draw_alien:
;================ ;================
@ -1247,8 +1247,8 @@ door_c2_r4_y:
door_c2_r4_xmin: door_c2_r4_xmin:
c2_r4_door0_xmin: .byte 9 ; 18-4-5 c2_r4_door0_xmin: .byte 9 ; 18-4-5
c2_r4_door1_xmin: .byte 11 ; 20-4-5 c2_r4_door1_xmin: .byte 9 ; 20-4-5
c2_r4_door2_xmin: .byte 13 ; 22-4-5 c2_r4_door2_xmin: .byte 9 ; 22-4-5
c2_r4_door3_xmin: .byte 23 ; 32-4-5 c2_r4_door3_xmin: .byte 23 ; 32-4-5
door_c2_r4_xmax: door_c2_r4_xmax: