From 783fbb573ad8c7c84f8e02146becbdaaea003b55 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Sat, 30 Jun 2018 15:38:03 -0400 Subject: [PATCH] tfv: battle shows damage --- gr-sim/tfv/tfv_battle.c | 59 +++++++++++++++++++++++++++++---- gr-sim/tfv/tfv_sprites.c | 70 ++++++++++++++++++++++++++++++++++++++++ gr-sim/tfv/tfv_sprites.h | 2 ++ 3 files changed, 125 insertions(+), 6 deletions(-) diff --git a/gr-sim/tfv/tfv_battle.c b/gr-sim/tfv/tfv_battle.c index 28f26931..89a352d7 100644 --- a/gr-sim/tfv/tfv_battle.c +++ b/gr-sim/tfv/tfv_battle.c @@ -165,10 +165,37 @@ static struct enemy_type enemies[8]={ }, }; +static int gr_put_num(int xx,int yy,int number) { + + int xt=xx,digit,left,hundreds; + + digit=number/100; + if ((digit) && (digit<10)) { + grsim_put_sprite(numbers[digit],xt,yy); + } + hundreds=digit; + left=number%100; + xt+=4; + + digit=left/10; + if ((digit) || (hundreds)) { + grsim_put_sprite(numbers[digit],xt,yy); + } + left=number%10; + + xt+=4; + + digit=left; + grsim_put_sprite(numbers[digit],xt,yy); + + return 0; +} + static int attack(int enemy_x,int enemy_type) { int ax=34; + int damage=10; while(ax>10) { @@ -191,12 +218,19 @@ static int attack(int enemy_x,int enemy_type) { usleep(20000); } - return 10; + gr_put_num(2,10,damage); + page_flip(); + usleep(250000); + + return damage; } + + static int enemy_attack(int enemy_x,int enemy_type,int tfv_x) { int ax=enemy_x; + int damage=10; while(ax<30) { @@ -217,9 +251,6 @@ static int enemy_attack(int enemy_x,int enemy_type,int tfv_x) { grsim_put_sprite(enemies[enemy_type].sprite,ax,20); } - - - page_flip(); ax+=1; @@ -227,7 +258,11 @@ static int enemy_attack(int enemy_x,int enemy_type,int tfv_x) { usleep(20000); } - return 10; + gr_put_num(25,10,damage); + page_flip(); + usleep(250000); + + return damage; } @@ -311,7 +346,19 @@ static int draw_battle_bottom(int enemy_type) { vtab(21); htab(36); move_cursor(); - print("LIMIT"); + if (limit<5) { + print("LIMIT"); + } + else { + /* Make if flash? */ + char limit_string[6]="LIMIT"; + limit_string[0]|=0x40; + limit_string[1]|=0x40; + limit_string[2]|=0x40; + limit_string[3]|=0x40; + limit_string[4]|=0x40; + print(limit_string); + } vtab(22); htab(15); diff --git a/gr-sim/tfv/tfv_sprites.c b/gr-sim/tfv/tfv_sprites.c index 8d1139ee..69c8e2e1 100644 --- a/gr-sim/tfv/tfv_sprites.c +++ b/gr-sim/tfv/tfv_sprites.c @@ -321,3 +321,73 @@ unsigned char spool[]={ 0xd0,0xdd,0x88,0x88,0x88,0x88,0x88,0x88,0xdd,0xd0, 0x00,0x00,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x00,0x00, }; + + + + + +/* Numbers */ +unsigned char numbers[10][11]={ + + [0]={ + 0x3,0x3, + 0x55,0x05,0x55, + 0x55,0x00,0x55, + 0x05,0x05,0x05, + }, + [1]={ + 0x3,0x3, + 0x50,0x55,0x00, + 0x00,0x55,0x00, + 0x05,0x05,0x05, + }, + [2]={ + 0x3,0x3, + 0x05,0x05,0x50, + 0x50,0x05,0x05, + 0x05,0x05,0x05, + }, + [3]={ + 0x3,0x3, + 0x55,0x55,0x55, + 0x55,0x55,0x55, + 0x55,0x55,0x55, + }, + [4]={ + 0x3,0x3, + 0x55,0x55,0x55, + 0x55,0x55,0x55, + 0x55,0x55,0x55, + }, + [5]={ + 0x3,0x3, + 0x55,0x55,0x55, + 0x55,0x55,0x55, + 0x55,0x55,0x55, + }, + [6]={ + 0x3,0x3, + 0x55,0x55,0x55, + 0x55,0x55,0x55, + 0x55,0x55,0x55, + }, + [7]={ + 0x3,0x3, + 0x55,0x55,0x55, + 0x55,0x55,0x55, + 0x55,0x55,0x55, + }, + [8]={ + 0x3,0x3, + 0x55,0x55,0x55, + 0x55,0x55,0x55, + 0x55,0x55,0x55, + }, + [9]={ + 0x3,0x3, + 0x55,0x55,0x55, + 0x55,0x55,0x55, + 0x55,0x55,0x55, + }, +}; + diff --git a/gr-sim/tfv/tfv_sprites.h b/gr-sim/tfv/tfv_sprites.h index 4329c9ca..17d3024d 100644 --- a/gr-sim/tfv/tfv_sprites.h +++ b/gr-sim/tfv/tfv_sprites.h @@ -33,3 +33,5 @@ extern unsigned char mountain[]; extern unsigned char lightning[]; extern unsigned char spool[]; +extern unsigned char numbers[10][11]; +