trogdor: update flames

This commit is contained in:
Vince Weaver 2024-01-27 22:27:31 -05:00
parent fe3cd7f5d1
commit 262555f0b4
3 changed files with 193 additions and 10 deletions

View File

@ -160,3 +160,6 @@ dragonman:
original man=1973 dragonman=1982 = 3955 bytes
combined = 3669 bytes
optimize so bases same: = 3132 bytes
TODO:
always call clear screen before left/right copy?

View File

@ -16,6 +16,7 @@
; FLAME_BG = type of background
; 0 = blank white
; 1 = blank_white + left_copy
; 2 = blank_white + right_copy
do_flames:
@ -190,21 +191,31 @@ left_flame_animate2:
draw_flame_bg:
lda FLAME_BG
beq flame_bg_clear
flame_bg_left:
; clear no matter what
ldy #$7f
jsr hgr_clear_screen
lda FLAME_BG
beq flame_bg_clear
cmp #2
bne flame_bg_left
flame_bg_right:
jsr hgr_copy_right
rts
flame_bg_left:
jsr hgr_copy_left
rts
flame_bg_clear:
ldy #$7f
jsr hgr_clear_screen
rts
@ -292,3 +303,32 @@ draw_left_flame_common:
rts
;===================================
; twin flames tall
draw_twin_flames_tall_1:
ldx #4
jsr draw_flame_tall_1
ldx #28
jsr draw_flame_tall_2
rts
draw_twin_flames_tall_2:
ldx #4
jsr draw_flame_tall_2
ldx #28
jsr draw_flame_tall_1
rts
;===================================
; twin flames low
draw_twin_flames_low:
ldx #4
jsr draw_flame_small_1
ldx #28
jsr draw_flame_small_2
rts

View File

@ -72,6 +72,7 @@ trog_no_music:
jsr hgr_page_flip
.if 0
;======================================
; draw SCENE 2
;======================================
@ -305,7 +306,7 @@ rapid_switch:
bne rapid_switch
;===h========================
;===========================
; scroll off screen
; switch to page1
@ -339,7 +340,7 @@ scroll_down_in_loop:
lda #20
jsr wait_ticks
.endif
;======================================
; draw SCENE 7
@ -348,6 +349,7 @@ scroll_down_in_loop:
; dragonman, flames both low than high
; ll1122
; 10 times
; then full man 1122
; dragonman 1122
; man 1122
@ -355,8 +357,13 @@ scroll_down_in_loop:
; man 1122
; dragonmna 1122
; man 1122
; dragonman low, off 4 frames
;=========================
; load dragonman graphics
lda #<trog03_graphics
sta zx_src_l+1
lda #>trog03_graphics
@ -364,13 +371,103 @@ scroll_down_in_loop:
lda #$60
jsr zx02_full_decomp
;===============================
; dragonman with twin low flames
ldy #$7f
jsr hgr_clear_screen
jsr hgr_copy_right
jsr draw_twin_flames_low
jsr hgr_page_flip
lda #5
jsr wait_ticks
;===============================
; dragonman 1122 10 times
lda #10
sta ANIMATE_COUNT
long_tall:
jsr dman_flames
; ldy #$7f
; jsr hgr_clear_screen
; jsr hgr_copy_right
; jsr draw_twin_flames_tall_1
; jsr hgr_page_flip
; lda #2
; jsr wait_ticks
; ldy #$7f
; jsr hgr_clear_screen
; jsr hgr_copy_right
; jsr draw_twin_flames_tall_2
; jsr hgr_page_flip
; lda #2
; jsr wait_ticks
dec ANIMATE_COUNT
bne long_tall
;========================
; then full man 1122
; dragonman 1122
; man 1122
; dragonman 1122
; man 1122
; dragonmna 1122
; man 1122
jsr man_flames
jsr dman_flames
jsr man_flames
jsr dman_flames
jsr man_flames
jsr dman_flames
jsr man_flames
;===============================
; dragonman low, 2 frames
ldy #$7f
jsr hgr_clear_screen
jsr hgr_copy_right
jsr draw_twin_flames_low
jsr hgr_page_flip
lda #2
jsr wait_ticks
;================================
; dragonman off, 4 frames
ldy #$7f
jsr hgr_clear_screen
jsr hgr_copy_right
jsr hgr_page_flip
lda #20
lda #2
jsr wait_ticks
; TODO
;======================================
; draw SCENE 8
;======================================
@ -605,3 +702,46 @@ hgr_copy_left:
jmp hgr_copy_part ; tail call
;==========================
; man flames
man_flames:
ldy #$7f
jsr hgr_clear_screen
jsr hgr_copy_left
jmp dman_flames_common
;==========================
; dragonman flames
dman_flames:
ldy #$7f
jsr hgr_clear_screen
jsr hgr_copy_right
dman_flames_common:
jsr draw_twin_flames_tall_1
jsr hgr_page_flip
lda #2
jsr wait_ticks
ldy #$7f
jsr hgr_clear_screen
jsr hgr_copy_right
jsr draw_twin_flames_tall_2
jsr hgr_page_flip
lda #2
jsr wait_ticks
rts