ootw: move collapsing in with the general physicist movement

also had to mirrow the physicist collapse sprite (was right rather
than left)
This commit is contained in:
Vince Weaver 2019-03-15 13:47:41 -04:00
parent 254918abfa
commit 4bde4adff2
8 changed files with 177 additions and 84 deletions

View File

@ -23,7 +23,7 @@ OOTW: ootw.o
ootw.o: ootw.s \
gr_copy.s gr_fast_clear.s gr_pageflip.s gr_unrle.s gr_putsprite.s \
gr_make_quake.s \
gr_make_quake.s zp.inc \
keyboard.s sluggy.s \
ootw_rope.s earthquake.s ootw_mesa.s \
ootw_pool.s ootw_cavern.s physicist.s random16.s \

View File

@ -26,6 +26,7 @@ pool:
cavern:
+ slugs on ceiling drop
+ background of beast moving off
+ adjust slug attack range
underwater:
+ add arrival-underwater scene

View File

@ -4,8 +4,13 @@
handle_keypress:
lda PHYSICIST_STATE
cmp #P_COLLAPSING ; ignore keypress if dying
beq no_keypress
lda KEYPRESS ; 4
bmi keypress ; 3
no_keypress:
rts ; nothing pressed, return

View File

@ -120,49 +120,49 @@ cavern_loop:
;===============
; handle slug death
lda SLUGDEATH
beq still_alive
; lda SLUGDEATH
; beq still_alive
collapsing:
lda SLUGDEATH_PROGRESS
cmp #18
bmi still_collapsing
;collapsing:
; lda SLUGDEATH_PROGRESS
; cmp #18
; bmi still_collapsing
really_dead:
lda #$ff
sta GAME_OVER
jmp just_slugs
;really_dead:
; lda #$ff
; sta GAME_OVER
; jmp just_slugs
still_collapsing:
tax
;still_collapsing:
; tax
lda collapse_progression,X
sta INL
lda collapse_progression+1,X
sta INH
; lda collapse_progression,X
; sta INL
; lda collapse_progression+1,X
; sta INH
lda PHYSICIST_X
sta XPOS
lda PHYSICIST_Y
sec
sbc EARTH_OFFSET
sta YPOS
; lda PHYSICIST_X
; sta XPOS
; lda PHYSICIST_Y
; sec
; sbc EARTH_OFFSET
; sta YPOS
jsr put_sprite
; jsr put_sprite
lda FRAMEL
and #$1f
bne no_collapse_progress
; lda FRAMEL
; and #$1f
; bne no_collapse_progress
inc SLUGDEATH_PROGRESS
inc SLUGDEATH_PROGRESS
no_collapse_progress:
; inc SLUGDEATH_PROGRESS
; inc SLUGDEATH_PROGRESS
;no_collapse_progress:
jmp just_slugs
; jmp just_slugs
still_alive:
;still_alive:
;===============
; check keyboard

View File

@ -352,70 +352,119 @@ crouch2:
; your embrace, and my collapse
collapse_progression:
.word collapse1
.word collapse2
.word collapse3
.word collapse4
.word collapse5
.word collapse5 ; 6
.word collapse5 ; 7
.word collapse5 ; 8
.word collapse5 ; 9
.word collapse1 ; 00
.word collapse2 ; 02
.word collapse3 ; 04
.word collapse4 ; 06
.word collapse5 ; 08
.word collapse5 ; 10
.word collapse5 ; 12
.word collapse5 ; 14
.word collapse5 ; 16
collapse1:
.byte $4,$8
.byte $aa,$aa,$9a,$9a
.byte $aa,$aa,$99,$ab
.byte $aa,$aa,$0b,$aa
.byte $aa,$aa,$bb,$aa
.byte $aa,$aa,$bb,$aa
.byte $aa,$aa,$44,$aa
.byte $aa,$4a,$a4,$aa
.byte $aa,$f4,$fa,$aa
; .byte $aa,$aa,$9a,$9a
; .byte $aa,$aa,$99,$ab
; .byte $aa,$aa,$0b,$aa
; .byte $aa,$aa,$bb,$aa
; .byte $aa,$aa,$bb,$aa
; .byte $aa,$aa,$44,$aa
; .byte $aa,$4a,$a4,$aa
; .byte $aa,$f4,$fa,$aa
.byte $9a,$9a,$aa,$aa
.byte $ab,$99,$aa,$aa
.byte $aa,$0b,$aa,$aa
.byte $aa,$bb,$aa,$aa
.byte $aa,$bb,$aa,$aa
.byte $aa,$44,$aa,$aa
.byte $aa,$a4,$4a,$aa
.byte $aa,$fa,$f4,$aa
collapse2:
.byte $5,$8
; .byte $aa,$aa,$aa,$aa,$aa
; .byte $aa,$aa,$aa,$99,$b9
; .byte $aa,$aa,$aa,$b9,$ab
; .byte $aa,$aa,$aa,$b0,$aa
; .byte $aa,$aa,$00,$bb,$aa
; .byte $aa,$4a,$44,$bb,$aa
; .byte $4a,$a4,$aa,$ab,$aa
; .byte $f4,$fa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$99,$b9
.byte $aa,$aa,$aa,$b9,$ab
.byte $aa,$aa,$aa,$b0,$aa
.byte $aa,$aa,$00,$bb,$aa
.byte $aa,$4a,$44,$bb,$aa
.byte $4a,$a4,$aa,$ab,$aa
.byte $f4,$fa,$aa,$aa,$aa
.byte $b9,$99,$aa,$aa,$aa
.byte $ab,$b9,$aa,$aa,$aa
.byte $aa,$b0,$aa,$aa,$aa
.byte $aa,$bb,$00,$aa,$aa
.byte $aa,$bb,$44,$4a,$aa
.byte $aa,$ab,$aa,$a4,$4a
.byte $aa,$aa,$aa,$fa,$f4
collapse3:
.byte $6,$8
; .byte $aa,$aa,$aa,$aa,$aa,$aa
; .byte $aa,$aa,$aa,$aa,$aa,$aa
; .byte $aa,$aa,$aa,$aa,$9a,$9a
; .byte $aa,$aa,$aa,$aa,$99,$bb
; .byte $aa,$aa,$aa,$0a,$0b,$aa
; .byte $aa,$aa,$4a,$00,$bb,$aa
; .byte $fa,$44,$44,$a0,$bb,$aa
; .byte $ff,$a4,$aa,$aa,$ab,$aa
.byte $aa,$aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$9a,$9a
.byte $aa,$aa,$aa,$aa,$99,$bb
.byte $aa,$aa,$aa,$0a,$0b,$aa
.byte $aa,$aa,$4a,$00,$bb,$aa
.byte $fa,$44,$44,$a0,$bb,$aa
.byte $ff,$a4,$aa,$aa,$ab,$aa
.byte $9a,$9a,$aa,$aa,$aa,$aa
.byte $bb,$99,$aa,$aa,$aa,$aa
.byte $aa,$0b,$0a,$aa,$aa,$aa
.byte $aa,$bb,$00,$4a,$aa,$aa
.byte $aa,$bb,$a0,$44,$44,$fa
.byte $aa,$ab,$aa,$aa,$a4,$ff
collapse4:
.byte $7,$8
; .byte $aa,$aa,$aa,$aa,$aa,$aa,$aa
; .byte $aa,$aa,$aa,$aa,$aa,$aa,$aa
; .byte $aa,$aa,$aa,$aa,$aa,$aa,$aa
; .byte $aa,$aa,$aa,$aa,$aa,$aa,$aa
; .byte $aa,$aa,$aa,$aa,$aa,$9a,$9a
; .byte $aa,$aa,$aa,$0a,$00,$bb,$99
; .byte $fa,$4a,$44,$00,$bb,$aa,$aa
; .byte $ff,$a4,$aa,$bb,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa,$9a,$9a
.byte $aa,$aa,$aa,$0a,$00,$bb,$99
.byte $fa,$4a,$44,$00,$bb,$aa,$aa
.byte $ff,$a4,$aa,$bb,$aa,$aa,$aa
.byte $9a,$9a,$aa,$aa,$aa,$aa,$aa
.byte $99,$bb,$00,$0a,$aa,$aa,$aa
.byte $aa,$aa,$bb,$00,$44,$4a,$fa
.byte $aa,$aa,$aa,$bb,$aa,$a4,$ff
collapse5:
.byte $8,$8
; .byte $aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa
; .byte $aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa
; .byte $aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa
; .byte $aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa
; .byte $aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa
; .byte $aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa
; .byte $aa,$4a,$bb,$00,$b0,$00,$b9,$99
; .byte $ff,$44,$b4,$bb,$aa,$aa,$ab,$a9
.byte $aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa
.byte $aa,$4a,$bb,$00,$b0,$00,$b9,$99
.byte $ff,$44,$b4,$bb,$aa,$aa,$ab,$a9
.byte $99,$b9,$00,$b0,$00,$bb,$4a,$aa
.byte $a9,$ab,$aa,$aa,$bb,$b4,$44,$ff

View File

@ -5,6 +5,7 @@ pstate_table_lo:
.byte <physicist_crouching
.byte <physicist_kicking
.byte <physicist_jumping
.byte <physicist_collapsing
pstate_table_hi:
.byte >physicist_standing
.byte >physicist_standing
@ -12,6 +13,7 @@ pstate_table_hi:
.byte >physicist_crouching
.byte >physicist_kicking
.byte >physicist_jumping
.byte >physicist_collapsing
pjump:
.word $0000
@ -152,9 +154,45 @@ run_gait_fine:
jmp finally_draw_him
;==================================
; COLLAPSING
;==================================
physicist_collapsing:
lda GAIT
cmp #18
bne collapse_not_done
really_dead:
lda #$ff
sta GAME_OVER
jmp finally_draw_him
collapse_not_done:
ldx GAIT
lda collapse_progression,X
sta INL
lda collapse_progression+1,X
sta INH
lda FRAMEL
and #$1f
bne no_collapse_progress
inc GAIT
inc GAIT
no_collapse_progress:
jmp finally_draw_him
;=============================
; Actuall Draw Him
; Actually Draw Him
;=============================

View File

@ -235,13 +235,14 @@ attack:
lda #1
sta slugg0_attack,X
lda SLUGDEATH ; don't re-attack if already dead
bne no_attack
lda PHYSICIST_STATE ; don't re-attack if already dead
cmp #P_COLLAPSING
beq no_attack
lda #$1
sta SLUGDEATH
lda #P_COLLAPSING ; start collapsing
sta PHYSICIST_STATE
lda #0
sta SLUGDEATH_PROGRESS
sta GAIT
stx WHICH_SLUG
jsr slug_cutscene

View File

@ -154,15 +154,14 @@ MESSAGE_COUNT = $E7
BOULDER_X = $E8
BOULDER_Y = $E9
PHYSICIST_STATE = $EA
P_STANDING = $00
P_WALKING = $01
P_RUNNING = $02
P_CROUCHING = $03
P_KICKING = $04
P_JUMPING = $05
P_STANDING = $00
P_WALKING = $01
P_RUNNING = $02
P_CROUCHING = $03
P_KICKING = $04
P_JUMPING = $05
P_COLLAPSING = $06
; CROUCHING = $EA
; KICKING = $EB
CUTFRAME = $EC
DISP_PAGE = $ED
DRAW_PAGE = $EE
@ -183,11 +182,11 @@ GAIT = $F6
TENTACLE_X = $F7
TENTACLE_PROGRESS = $F8
SLUGDEATH_PROGRESS = $F8
;SLUGDEATH_PROGRESS = $F8
ELEVATOR_CYCLE = $F8
TENTACLE_GRAB = $F9
SLUGDEATH = $F9
;SLUGDEATH = $F9
ELEVATOR_COUNT = $F9
TEMP = $FA