tfv: end-of-battle animation

This commit is contained in:
Vince Weaver 2021-01-13 12:45:24 -05:00
parent 5a3db0f576
commit d6cdf30217
3 changed files with 103 additions and 32 deletions

View File

@ -1315,56 +1315,110 @@ enemy_attack:
rts
victory_string:
.byte 13,21,"EXPERIENCE +2",0
.byte 16,22,"MONEY +1",0
;====================================
; victory dance
;====================================
victory_dance:
.if 0
lda #34
sta HERO_X
int ax=34;
int i;
int saved_drawpage;
; update XP and money
saved_drawpage=ram[DRAW_PAGE];
inc HERO_XP
inc HERO_XP
ram[DRAW_PAGE]=PAGE2; ; 0xc00
inc HERO_MONEY
clear_bottom();
vtab(21);
htab(10);
move_cursor();
print("EXPERIENCE +2");
experience+=2;
ldx #25
stx ANIMATE_LOOP
victory_dance_loop:
vtab(22);
htab(10);
move_cursor();
print("MONEY +1");
money+=1;
jsr gr_copy_to_current
ram[DRAW_PAGE]=saved_drawpage;
jsr clear_bottom
for(i=0;i<25;i++) {
lda #<victory_string
sta OUTL
lda #>victory_string
sta OUTH
jsr move_and_print
jsr move_and_print
gr_copy_to_current(0xc00);
txa
and #1
beq victory_wave
if (i&1) {
grsim_put_sprite(tfv_stand_left,ax,20);
grsim_put_sprite(tfv_led_sword,ax-5,20);
}
else {
grsim_put_sprite(tfv_victory,ax,20);
grsim_put_sprite(tfv_led_sword,ax-2,14);
}
victory_stand:
lda HERO_X
sta XPOS
lda #20
sta YPOS
page_flip();
lda #<tfv_stand_left_sprite
sta INL
lda #>tfv_stand_left_sprite
sta INH
jsr put_sprite_crop
usleep(200000);
lda HERO_X
sec
sbc #5
sta XPOS
lda #20
sta YPOS
lda #<tfv_led_sword_sprite
sta INL
lda #>tfv_led_sword_sprite
jmp victory_draw_done
victory_wave:
lda HERO_X
sta XPOS
lda #20
sta YPOS
lda #<tfv_victory_sprite
sta INL
lda #>tfv_victory_sprite
sta INH
jsr put_sprite_crop
lda HERO_X
sec
sbc #2
sta XPOS
lda #14
sta YPOS
lda #<tfv_led_sword_sprite
sta INL
lda #>tfv_led_sword_sprite
victory_draw_done:
sta INH
jsr put_sprite_crop
jsr page_flip
; delay
lda #255
jsr WAIT
dec ANIMATE_LOOP
bne victory_dance_loop
.endif
rts
;===========================

View File

@ -61,6 +61,18 @@ tfv_defeat_sprite:
.byte $88,$AA,$AA,$22,$bA,$bA,$dA
.byte $88,$22,$22,$22,$dd,$db,$dd
tfv_victory_sprite:
.byte $4,$6
.byte $AA,$BD,$2b,$AA
.byte $AB,$DB,$22,$AA
.byte $AA,$AA,$22,$AA
.byte $AA,$AA,$22,$AA
.byte $AA,$2A,$A2,$22
.byte $AA,$82,$AA,$82
;================
; Bird Sprites
;================

View File

@ -88,6 +88,11 @@ HERO_HP = $91 ; hero's hit points
HERO_HP_MAX = $92 ; hero's max hit points
HERO_MP = $93 ; hero's magic points
HERO_LIMIT = $94 ; hero's limit break count
HERO_LEVEL = $95 ; hero's level
HERO_XP = $96 ; hero's experience points
HERO_MONEY = $97 ; hero's money
HERO_INVENTORY = $98 ; hero's inventory
;==================GAME STATE (not in save game)==============
@ -101,7 +106,7 @@ SOUND_STATUS = $A6
SOUND_IN_LC = $01 ; $01 sound effects in language card
SOUND_MOCKINGBOARD = $02 ; mockingboard detected
JS_BUTTON_STATE = $A7
ANIMATE_LOOP = $A8
HERO_X = $B0 ; used in battle
HERO_STATE = $B1 ; used in battle