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:
====================
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
@ -14,13 +28,6 @@ TODO Before release:
L2 -- disable door/powerline by shooting wall
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?
@ -48,6 +55,7 @@ BEHAVIOR DIFFERENCES:
* alien guard behavior:
- 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,
but instead will yell at you a bit

View File

@ -59,6 +59,7 @@ move_alien:
; FIXME: loop through all alieans
ldx #0
move_alien_loop:
lda alien_room,X
cmp WHICH_ROOM
bne done_move_alien
@ -73,14 +74,20 @@ move_alien:
beq move_alien_yelling
cmp #A_SHOOTING_UP
beq move_alien_yelling
done_move_alien:
inx
cpx #MAX_ALIENS
bne move_alien_loop
rts
;======================
; yelling
move_alien_yelling:
inc alien_gait,X ; cycle through animation
rts
jmp done_move_alien
;======================
; walking
@ -97,11 +104,11 @@ move_alien_walking:
beq a_walk_left
inc alien_x,X ; walk right
rts
jmp done_move_alien
a_walk_left:
dec alien_x,X ; walk left
alien_no_move_walk:
rts
jmp done_move_alien
;======================
; running
@ -117,11 +124,11 @@ move_alien_running:
beq a_run_left
inc alien_x,X ; run right
rts
jmp done_move_alien
a_run_left:
dec alien_x,X ; run left
alien_no_move_run:
rts
jmp done_move_alien
;======================
; standing
@ -169,13 +176,16 @@ ajump:
;======================================
draw_alien:
; FIXME
ldx #0
ldx #0
draw_alien_loop:
lda alien_room,X
cmp WHICH_ROOM
bne no_alien
txa
pha
lda alien_state,X
tay
lda astate_table_lo,y
@ -183,8 +193,15 @@ draw_alien:
lda astate_table_hi,y
sta ajump+1
jmp (ajump)
done_draw_alien_loop:
pla
tax
no_alien:
inx
cpx #MAX_ALIENS
bne draw_alien_loop
rts
;==================================
@ -367,7 +384,7 @@ alien_disintegrating:
dec ALIEN_OUT
rts
jmp done_draw_alien_loop
alien_keep_disintegrating:
@ -449,11 +466,12 @@ finally_draw_alien:
bne alien_facing_right
alien_facing_left:
jmp put_sprite_crop
jsr put_sprite_crop
jmp done_draw_alien_loop
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
sta alien2_room
lda #20
lda #25
sta alien2_x
lda #20
lda #30
sta alien2_y
lda #A_STANDING
sta alien2_state
@ -288,7 +288,7 @@ jail4:
jail4_bottom:
lda #(-4+128)
sta LEFT_LIMIT
lda #(28+128)
lda #(30+128)
sta RIGHT_LIMIT
jmp jail4_ok
@ -315,7 +315,7 @@ jail4_ok:
lda #(-4+128)
sta td_left_smc1+1
lda #(28+128)
lda #(30+128)
sta td_right_smc1+1
lda #(10+128)
@ -593,9 +593,9 @@ c2_done_draw_friend:
; draw alien
;===============
lda ALIEN_OUT
beq no_draw_alien
jsr draw_alien
lda ALIEN_OUT
beq no_draw_alien
jsr draw_alien
no_draw_alien:
;================
@ -1247,8 +1247,8 @@ door_c2_r4_y:
door_c2_r4_xmin:
c2_r4_door0_xmin: .byte 9 ; 18-4-5
c2_r4_door1_xmin: .byte 11 ; 20-4-5
c2_r4_door2_xmin: .byte 13 ; 22-4-5
c2_r4_door1_xmin: .byte 9 ; 20-4-5
c2_r4_door2_xmin: .byte 9 ; 22-4-5
c2_r4_door3_xmin: .byte 23 ; 32-4-5
door_c2_r4_xmax: