ootws: add second half of cutscene

This commit is contained in:
Vince Weaver 2019-01-18 13:51:09 -05:00
parent e38d5ff00c
commit 28a769cbde
7 changed files with 170 additions and 19 deletions

View File

@ -17,7 +17,7 @@ OOTW: ootw.o
ootw.o: ootw.s \
gr_copy.s gr_fast_clear.s gr_pageflip.s gr_unrle.s gr_putsprite.s \
ootw_pool.s ootw_cavern.s physicist.s random16.s \
ootw_pool.s ootw_cavern.s physicist.s random16.s slug_cutscene.s \
ootw_pool.inc ootw_cavern.inc ootw_quake.inc ootw_sprites.inc
ca65 -o ootw.o ootw.s -l ootw.lst
####

View File

@ -1,11 +1,6 @@
+ only erase the middle of screen where things change
+ walking animation
+ crouching animation
+ kicking animation
+ death scenes (slugs + tentacles)
+ some sort of "level over" message
+ water ripples
TODO:
+ slugs on ceiling
+ slug cut-scene
far-out:

View File

@ -78,3 +78,4 @@ end_message:
.include "ootw_cavern.inc"
.include "ootw_quake.inc"
.include "ootw_sprites.inc"
.include "slug_cutscene.s"

View File

@ -12,13 +12,13 @@ ootw_cavern:
;===========================
; Clear both bottoms
lda #$4
sta DRAW_PAGE
jsr clear_bottom
; lda #$4
; sta DRAW_PAGE
; jsr clear_bottom
lda #$0
sta DRAW_PAGE
jsr clear_bottom
; jsr clear_bottom
lda #0
sta DRAW_PAGE
@ -423,6 +423,8 @@ attack:
lda #0
sta SLUGDEATH_PROGRESS
jsr slug_cutscene
no_attack:
inc slugg0_gait ; increment slug gait counter

View File

@ -12,13 +12,13 @@ ootw_pool:
;===========================
; Clear both bottoms
lda #$4
sta DRAW_PAGE
jsr clear_bottom
; lda #$4
; sta DRAW_PAGE
; jsr clear_bottom
lda #$0
sta DRAW_PAGE
jsr clear_bottom
; lda #$0
; sta DRAW_PAGE
; jsr clear_bottom
lda #0
sta DRAW_PAGE

152
ootw/slug_cutscene.s Normal file
View File

@ -0,0 +1,152 @@
slug_cutscene:
lda #$8
sta DRAW_PAGE
jsr clear_top
lda #<leg_background
sta INL
lda #>leg_background
sta INH
lda #15
sta XPOS
lda #10
sta YPOS
jsr put_sprite
lda #$0
sta DRAW_PAGE
jsr gr_copy_to_current
jsr page_flip
jsr gr_copy_to_current
jsr page_flip
ldx #0
stx CUTFRAME
leg_loop:
jsr gr_copy_to_current
ldx CUTFRAME
lda leg_frames,X
sta INL
lda leg_frames+1,X
sta INH
lda #18
sta XPOS
lda #18
sta YPOS
jsr put_sprite
ldx #6
long_delay:
lda #250
jsr WAIT
dex
bne long_delay
jsr page_flip
ldx CUTFRAME
inx
inx
stx CUTFRAME
cpx #12
beq slug_end
jmp leg_loop
slug_end:
; lda KEYPRESS
; bpl slug_end
; lda KEYRESET
;=============================
; Restore background to $c00
lda #$0c
sta BASH
lda #$00
sta BASL
lda #>(cavern_rle)
sta GBASH
lda #<(cavern_rle)
sta GBASL
jsr load_rle_gr
rts
leg_background:
.byte 10,10
.byte $44,$cc,$cc,$cc,$77,$77,$77,$77,$77,$77
.byte $44,$cc,$cc,$cc,$27,$27,$77,$77,$77,$77
.byte $44,$cc,$cc,$cc,$42,$22,$77,$77,$77,$77
.byte $44,$cc,$cc,$cc,$44,$22,$22,$22,$27,$27
.byte $44,$4c,$cc,$cc,$c4,$42,$22,$22,$22,$22
.byte $22,$44,$cc,$cc,$cc,$44,$22,$22,$22,$22
.byte $22,$44,$cc,$cc,$cc,$44,$22,$22,$22,$22
.byte $22,$44,$cc,$cc,$4c,$44,$22,$22,$22,$22
.byte $22,$44,$cc,$cc,$c4,$44,$22,$22,$22,$22
.byte $22,$44,$cc,$cc,$cc,$44,$22,$22,$22,$22
leg_frames:
.word leg1
.word leg2
.word leg3
.word leg4
.word leg5
.word leg5
leg1:
.byte $5,$6
.byte $AA,$AA,$AA,$AA,$AA
.byte $AA,$AA,$AA,$0A,$AA
.byte $AA,$AA,$A7,$00,$00
.byte $AA,$AA,$AA,$00,$00
.byte $AA,$AA,$AA,$00,$00
.byte $AA,$AA,$AA,$00,$00
leg2:
.byte $4,$6
.byte $AA,$AA,$AA,$AA
.byte $bA,$AA,$00,$AA
.byte $AA,$A7,$00,$00
.byte $AA,$AA,$00,$00
.byte $AA,$AA,$00,$00
.byte $AA,$AA,$00,$00
leg3:
.byte $4,$6
.byte $AA,$AA,$AA,$AA
.byte $bA,$AA,$AA,$AA
.byte $bb,$AA,$0A,$AA
.byte $AB,$A7,$00,$00
.byte $AA,$AA,$00,$00
.byte $AA,$AA,$00,$00
leg4:
.byte $4,$6
.byte $AA,$AA,$AA,$AA
.byte $bA,$AA,$AA,$AA
.byte $1B,$AA,$AA,$AA
.byte $BB,$AA,$0A,$AA
.byte $AA,$A7,$00,$00
.byte $AA,$AA,$00,$00
leg5:
.byte $1,$4
.byte $AA
.byte $bA
.byte $11
.byte $b1

View File

@ -142,6 +142,7 @@ BOULDER_X = $E8
BOULDER_Y = $E9
CROUCHING = $EA
KICKING = $EB
CUTFRAME = $EC
;SHIPY = $E4
;YADD = $E5
;LOOP = $E6