tfv: more progress

This commit is contained in:
Vince Weaver 2017-07-10 00:39:38 -04:00
parent b0ca9efa2b
commit 3846d4266d
10 changed files with 332 additions and 77 deletions

View File

@ -26,23 +26,43 @@ static unsigned char title_rle[]=
static unsigned char worldmap_rle[]=
{ 0x28,0x28,
0x55,0x66,0x03,0xF6,0x17,0x66,0x02,0xF6,0x02,0xFF,0x01,0xF6,
0x07,0x66,0x03,0xFF,0x01,0x5F,0x02,0xFF,0x01,0xF6,0x13,0x66,0x01,0xF6,0x07,0xFF,
0x07,0x66,0x01,0x65,0x04,0x5F,0x01,0x6F,0x13,0x66,0x01,0x65,0x01,0x55,0x01,0x5F,0x02,0xFF,0x02,0x65,
0x1C,0x66,0x01,0xF6,0x01,0xFF,0x01,0x56,
0x24,0x66,0x01,0x8F,0x02,0xFF,0x01,0x85,0x04,0x66,0x05,0xD6,
0x11,0x66,0x01,0xD6,0x06,0xE6,0x02,0x46,0x01,0x96,0x02,0x88,0x01,0x48,0x01,0x58,0x01,0x88,0x01,0x86,0x02,0x66,0x05,0xD9,
0x05,0x66,0x07,0x46,0x04,0x44,0x01,0xD4,0x01,0xED,0x05,0xEE,0x02,0x44,0x01,0x84,0x01,0x98,0x03,0x88,0x01,0x48,0x01,0x88,0x01,0xA8,0x01,0x84,0x01,0x44,0x01,0x49,0x03,0xF9,0x01,0x49,0x04,0x46,
0x0B,0x44,0x01,0xD4,0x01,0xED,0x04,0xEE,0x01,0x4E,0x02,0x44,0x01,0x84,0x01,0x89,0x02,0x88,0x01,0x89,0x04,0x88,0x01,0x85,0x01,0x88,0x01,0x44,0x01,0x4F,0x01,0x40,0x01,0x4F,0x01,0x88,
0x0E,0x44,0x01,0xDD,0x01,0xED,0x05,0xEE,0x01,0x88,0x01,0x44,0x01,0x84,0x01,0x89,0x01,0x98,0x01,0x88,0x01,0x98,0x01,0x88,0x01,0x84,0x03,0x88,0x01,0x85,0x01,0x88,0x01,0xA8,0x02,0x44,0x01,0x94,0x01,0x88,0x01,0x58,0x01,0x84,
0x0B,0x44,0x01,0xDD,0x08,0xEE,0x01,0x88,0x02,0x84,0x04,0xE8,0x01,0x48,0x08,0x88,0x01,0x98,0x03,0x88,
0x0A,0x44,0x01,0xDD,0x11,0xEE,0x01,0xE4,0x04,0x44,0x02,0x48,0x01,0x89,0x03,0x88,0x01,0x85,0x01,0x88,
0x09,0x44,0x01,0xDD,0x12,0xEE,0x07,0x44,0x02,0x48,0x01,0x88,0x01,0x85,0x02,0x48,
0x09,0x44,0x01,0xDD,0x0C,0xEE,0x02,0xDE,0x02,0x4D,0x0C,0x44,0x02,0xC4,
0x0A,0x44,0x02,0x4E,0x08,0xEE,0x01,0xDE,0x02,0x4D,0x0C,0x44,0x01,0xC4,0x02,0xCC,0x01,0xC4,0x01,0xCC,
0x21,0x44,0x01,0xC4,0x02,0xCC,0x01,0xC4,0x03,0xCC,
0x1F,0x44,0x01,0xC4,0x01,0xCC,0x01,0xC4,0x01,0xCC,0x01,0x4C,0x02,0xCC,0x01,0x4C,0x01,0xCC,
0x1E,0x44,0x02,0xCC,0x01,0x4C,0x04,0xCC,0x01,0xC4,0x02,0xCC,
0x1D,0x44,0x01,0xCC,0x01,0x4C,0x02,0xCC,0x01,0xC4,0x01,0x4C,0x01,0xCC,0x01,0xC4,0x02,0xCC,0x01,0xC4,
0xff,0xff,
};
0x23,0x66,0x01,0x46,0x01,0x06,
0x05,0x66,0x01,0x56,0x0E,0x66,0x01,0xE6,0x04,0x66,0x01,0x77,0x01,0xFF,0x01,0xF6,0x08,0x66,0x01,0x46,0x03,0x44,
0x04,0x66,0x01,0x56,0x01,0x55,0x01,0x56,0x01,0xE6,0x0B,0x66,0x01,0x6E,0x01,0x66,0x01,0x6E,0x02,0x66,0x01,0x67,0x04,0x6F,0x07,0x66,0x01,0x4F,0x01,0x47,0x01,0x4F,0x01,0x44,0x03,0x66,
0x01,0x6E,0x06,0x66,0x06,0xA6,0x02,0x56,0x04,0xA6,0x01,0x56,0x01,0xA6,0x01,0x56,0x03,0xA6,0x01,0x56,0x02,0xA6,0x01,0x56,0x02,0xA6,0x01,0x56,0x02,0x66,0x01,0x64,0x03,0x44,0x01,0x46,
0x08,0x66,0x01,0xAA,0x05,0x66,0x01,0x55,0x05,0x66,0x01,0x55,0x05,0x66,0x01,0x55,0x05,0x66,0x01,0x55,0x03,0x66,0x01,0xE6,0x03,0xE4,0x01,0xE6,
0x07,0x66,0x01,0xAA,0x05,0x66,0x01,0x55,0x05,0x66,0x01,0x55,0x05,0x66,0x01,0x55,0x05,0x66,0x01,0x55,
0x0F,0x66,0x01,0xAA,0x05,0x56,0x01,0x55,0x05,0x56,0x01,0x55,0x05,0x56,0x01,0x55,0x05,0x56,0x01,0x55,
0x0A,0x66,0x01,0xE6,0x04,0x66,0x01,0xAA,0x05,0x66,0x01,0x55,0x05,0x66,0x01,0x55,0x05,0x66,0x01,0x55,0x05,0x66,0x01,0x55,
0x09,0x66,0x01,0x6E,0x01,0x66,0x01,0x6E,0x03,0x66,0x01,0xAA,0x05,0x66,0x01,0x55,0x05,0x66,0x01,0x55,0x05,0x66,0x01,0x55,0x05,0x66,0x01,0x55,
0x0C,0x66,0x01,0xE6,0x02,0x66,0x01,0xAA,0x05,0x56,0x01,0x55,0x05,0x56,0x01,0x55,0x05,0x56,0x01,0x55,0x05,0x56,0x01,0x55,
0x0B,0x66,0x01,0x6E,0x01,0x66,0x01,0x6E,0x01,0x66,0x01,0xAA,0x05,0x66,0x01,0x55,0x05,0x66,0x01,0x55,0x05,0x66,0x01,0x55,0x05,0x66,0x01,0x55,
0x0F,0x66,0x01,0xAA,0x05,0x66,0x01,0x55,0x05,0x66,0x01,0x55,0x05,0x66,0x01,0x55,0x05,0x66,0x01,0x55,0x02,0x66,0x01,0x55,0x01,0x56,0x02,0x66,0x01,0x55,
0x08,0x66,0x01,0xAA,0x05,0x56,0x01,0x55,0x05,0x56,0x01,0x55,0x05,0x56,0x01,0x55,0x05,0x56,0x01,0x55,0x02,0x66,0x01,0x55,0x01,0x66,0x01,0x65,0x01,0x56,0x01,0x55,
0x08,0x66,0x01,0xAA,0x05,0x66,0x01,0x55,0x05,0x66,0x01,0x55,0x05,0x66,0x01,0x55,0x05,0x66,0x01,0x55,0x02,0x66,0x01,0x65,0x03,0x66,0x01,0x65,
0x02,0x66,0x01,0x6E,0x01,0xE6,0x01,0x6E,0x03,0x66,0x01,0xAA,0x05,0x66,0x01,0x55,0x05,0x66,0x01,0x55,0x05,0x66,0x01,0x55,0x05,0x66,0x01,0x55,0x03,0x66,0x01,0x16,0x01,0x91,0x01,0x16,
0x04,0x66,0x01,0xEE,0x04,0x66,0x01,0xAA,0x05,0x56,0x01,0x55,0x05,0x56,0x01,0x55,0x05,0x56,0x01,0x55,0x05,0x56,0x01,0x55,0x03,0x66,0x01,0x69,0x01,0x99,0x01,0x69,
0x03,0x66,0x01,0x05,0x01,0x55,0x01,0x66,0x01,0x55,0x01,0x65,0x1C,0x66,0x01,0x86,0x01,0x96,0x01,0x99,0x01,0x96,0x01,0x86,
0x02,0x66,0x04,0x65,0x1F,0x66,0x01,0x99,
0x1B,0x66,0x01,0xE6,0x01,0x6E,0x01,0xE6,0x09,0x66,0x01,0x69,
0x2B,0x66,
0xff,0xff,};
static unsigned char landing_rle[]=
{ 0x28,0x28,
0x03,0x66,0x01,0x56,
0x27,0x66,0x01,0x55,0x01,0xF5,
0x26,0x66,0x01,0x55,0x01,0xFF,0x01,0xF5,
0x25,0x66,0x01,0x55,0x02,0xFF,0x01,0xF5,
0x24,0x66,0x01,0x55,0x03,0xFF,0x01,0xF5,0x20,0x66,
0x01,0x46,0x01,0x24,0x01,0x44,0x01,0x55,0x0F,0xF5,0x04,0x22,
0x12,0x44,0x01,0x62,0x01,0x22,0x01,0x55,0x01,0xFF,0x03,0x11,0x01,0x44,0x03,0x22,0x01,0x44,0x03,0x22,0x03,0xFF,0x05,0x22,
0x11,0x44,0x01,0x22,0x01,0x26,0x01,0x55,0x02,0xFF,0x01,0x11,0x03,0x44,0x01,0x22,0x03,0x44,0x01,0x22,0x04,0xFF,0x06,0x22,
0x10,0x44,0x02,0x26,0x01,0x55,0x02,0xFF,0x01,0xF1,0x03,0xF4,0x01,0xF2,0x03,0xF4,0x01,0xF2,0x01,0xFF,0x02,0x8F,0x01,0xFF,0x07,0x22,
0x0F,0x44,0x01,0x62,0x01,0x26,0x01,0x55,0x0A,0x5F,0x02,0xFF,0x02,0x88,0x01,0xFF,0x08,0x22,
0x0E,0x44,0x01,0x22,0x01,0x42,0x01,0x55,0x09,0xFF,0x01,0x55,0x02,0xFF,0x02,0x88,0x0A,0xFF,
0x0F,0x44,0x03,0x45,0x01,0x85,0x09,0x45,0x02,0x85,0x04,0x45,0x01,0x85,0x05,0x45,
0x11,0x44,0x01,0x48,0x09,0x44,0x04,0x85,0x04,0x44,0x01,0x48,
0x1E,0x44,0x06,0x85,
0x104,0x44,
0xff,0xff,};

View File

@ -467,7 +467,7 @@ int basic_hlin(int x1, int x2, int at) {
int i;
for(i=x1;i<x2;i++) basic_plot(i,at);
for(i=x1;i<=x2;i++) basic_plot(i,at);
return 0;
}

View File

@ -28,3 +28,19 @@ int hlin(int page, int x1, int x2, int at);
#define APPLE_LEFT 8
#define APPLE_RIGHT 21
#define COLOR_BLACK 0
#define COLOR_RED 1
#define COLOR_DARKBLUE 2
#define COLOR_PURPLE 3
#define COLOR_DARKGREEN 4
#define COLOR_GREY 5
#define COLOR_MEDIUMBLUE 6
#define COLOR_LIGHTBLUE 7
#define COLOR_BROWN 8
#define COLOR_ORANGE 9
#define COLOR_GREY2 10
#define COLOR_PINK 11
#define COLOR_LIGHTGREEN 12
#define COLOR_YELLOW 13
#define COLOR_AQUA 14
#define COLOR_WHITE 15

View File

@ -123,7 +123,7 @@ static char nameo[9];
static int name_screen(void) {
unsigned char xx,yy,cursor_x,cursor_y,ch,name_x;
int xx,yy,cursor_x,cursor_y,ch,name_x;
char tempst[BUFSIZ];
text();
@ -302,17 +302,17 @@ static int flying(void) {
gr();
xx=17; yy=30;
color_equals(0);
color_equals(COLOR_BLACK);
direction=0;
color_equals(6);
color_equals(COLOR_MEDIUMBLUE);
for(i=0;i<20;i++) {
hlin(1, 0, 40, i);
}
color_equals(2);
color_equals(COLOR_DARKBLUE);
for(i=20;i<48;i++) {
hlin(1, 0, 40, i);
}
@ -346,6 +346,203 @@ static int flying(void) {
}
static void game_over(void) {
text();
home();
/* Make a box around it? */
basic_htab(15);
basic_vtab(12);
basic_print("GAME OVER");
/* play the GROAN sound? */
grsim_update();
repeat_until_keypressed();
}
static void print_help(void) {
text();
home();
basic_htab(1);
basic_vtab(1);
basic_print("ARROW KEYS AND WASD MOVE\n");
basic_print("SPACE BAR ACTION\n");
basic_print("I INVENTORY\n");
basic_print("M MAP\n");
basic_print("Q QUITS\n");
grsim_update();
repeat_until_keypressed();
gr();
}
static void show_map(void) {
gr();
home();
grsim_unrle(worldmap_rle,0x800);
gr_copy(0x800,0x400);
grsim_update();
repeat_until_keypressed();
}
/*
******************************************
* DEATER * LEVEL 1 *
******************************************
* INVENTORY * STATS *
******************************************
* * HP: 50 *
* * MAX HP: 100 *
* * *
* * EXPERIENCE: 0 *
* * NEXT LEVEL: 16 *
* * *
* * TIME: 0:00 *
******************************************
Inc level at 4, so 64 levels
*/
static void print_info(void) {
text();
home();
basic_print("INFO");
grsim_update();
repeat_until_keypressed();
gr();
}
/* Do Battle */
/* Battle.
Forest? Grassland? Artic? Ocean?
1 2 3
0123456789012345678901234567890123456789|
----------------------------------------|
| HP LIMIT | -> FIGHT/LIMIT 21
KILLER CRAB | DEATER 128/255 128 | ZAP 22
| | REST 23
| | RUN AWAY 24
Sound effects?
List hits
****** ** **** **** ** ** ****** **** ****** ****** ******
** ** **** ** ** ** ** ** ** ** ** ** ** **
** ** ** **** **** ****** **** ****** ** ****** ******
** ** ** ** ** ** ** ** ** ** ** ** **
****** ****** ****** **** ** **** ****** ** ****** **
*/
static int hp=50,max_hp=100;
static int enemy_hp=20;
static int limit=2;
static void print_byte(unsigned char value) {
char temp[4];
sprintf(temp,"%3d",value);
temp[3]=0;
basic_print(temp);
}
static int do_battle(void) {
int i,ch;
int enemy_x=2;
int tfv_x=34;
home();
gr();
basic_htab(1);
basic_vtab(22);
basic_normal();
basic_print("KILLER CRAB");
basic_htab(27);
basic_vtab(21);
basic_print("HP");
basic_htab(34);
basic_vtab(21);
basic_print("LIMIT");
basic_htab(15);
basic_vtab(22);
basic_print("DEATER");
basic_htab(24);
basic_vtab(22);
print_byte(hp);
basic_print("/");
print_byte(max_hp);
basic_htab(34);
basic_vtab(22);
basic_inverse();
for(i=0;i<limit;i++) {
basic_print(" ");
}
basic_normal();
for(i=limit;i<5;i++) {
basic_print(" ");
}
basic_inverse();
for(i=21;i<25;i++) {
basic_vtab(i);
basic_htab(13);
basic_print(" ");
}
basic_normal();
while(1) {
color_equals(COLOR_MEDIUMBLUE);
for(i=0;i<10;i++) {
basic_hlin(0,39,i);
}
color_equals(COLOR_LIGHTGREEN);
for(i=10;i<40;i++) {
basic_hlin(0,39,i);
}
grsim_put_sprite(tfv_stand_left,tfv_x,20);
grsim_put_sprite(tfv_led_sword,tfv_x-5,20);
grsim_put_sprite(killer_crab,enemy_x,20);
grsim_update();
ch=grsim_input();
if (ch=='q') break;
usleep(100000);
}
return 0;
}
/*
Map
@ -386,27 +583,28 @@ static int world_map(void) {
gr();
xx=17; yy=30;
color_equals(0);
color_equals(COLOR_BLACK);
direction=1;
int odd=0;
int refresh=1;
grsim_unrle(worldmap_rle,0x800);
gr_copy(0x800,0x400);
while(1) {
ch=grsim_input();
if ((ch=='q') || (ch==27)) break;
if ((ch=='i') || (ch==APPLE_UP)) {
if ((ch=='w') || (ch==APPLE_UP)) {
if (yy>8) yy-=2;
odd=!odd;
}
if ((ch=='m') || (ch==APPLE_DOWN)) {
if ((ch=='s') || (ch==APPLE_DOWN)) {
if (yy<27) yy+=2;
odd=!odd;
}
if ((ch=='j') || (ch==APPLE_LEFT)) {
if ((ch=='a') || (ch==APPLE_LEFT)) {
if (direction>0) {
direction=-1;
odd=0;
@ -417,7 +615,7 @@ static int world_map(void) {
if (xx<0) xx=0;
}
}
if ((ch=='k') || (ch==APPLE_RIGHT)) {
if ((ch=='d') || (ch==APPLE_RIGHT)) {
if (direction<0) {
direction=1;
odd=0;
@ -429,6 +627,19 @@ static int world_map(void) {
}
}
if (ch=='h') print_help();
if (ch=='b') do_battle();
if (ch=='i') print_info();
if (ch=='m') {
show_map();
refresh=1;
}
if (refresh) {
grsim_unrle(landing_rle,0x800);
refresh=0;
}
gr_copy(0x800,0x400);
if (direction==-1) {
@ -447,38 +658,6 @@ static int world_map(void) {
return 0;
}
/* Do Battle */
/* Battle.
Forest? Grassland? Artic? Ocean?
|
---------------------------------------|
| HP LIMIT | -> FIGHT/LIMIT
GRUMPO | DEATER 128/255 128 | ZAP
| | REST
| | RUN AWAY
Sound effects?
List hits
****** ** **** **** ** ** ****** **** ****** ****** ******
** ** **** ** ** ** ** ** ** ** ** ** ** **
** ** ** **** **** ****** **** ****** ** ****** ******
** ** ** ** ** ** ** ** ** ** ** ** **
****** ****** ****** **** ** **** ****** ** ****** **
*/
static int do_battle(void) {
return 0;
}
int main(int argc, char **argv) {
@ -502,8 +681,8 @@ int main(int argc, char **argv) {
/* World Map */
world_map();
/* Do Battle */
do_battle();
/* Game Over, Man */
game_over();
return 0;
}

View File

@ -38,6 +38,13 @@ static unsigned char tfv_walk_left[]={
0x00,0x82,0x00,0x82,
};
static unsigned char tfv_led_sword[]={
0x5,0x3,
0x10,0x00,0x10,0x00,0x00,
0x10,0x01,0x10,0x10,0x10,
0x00,0x00,0x11,0x01,0x10,
};
#if 0
static unsigned char test_sprite[]={
0x8,0x4,
@ -69,3 +76,15 @@ static unsigned char ship_left[]={
0x15,0x00,0x07,0x77,0x00,
};
/* Enemies */
static unsigned char killer_crab[]={
0x9,0x6,
0x99,0x00,0x99,0x00,0x00,0x00,0x99,0x00,0x99,
0x06,0x60,0x06,0x00,0x00,0x00,0x06,0x60,0x06,
0x00,0x06,0x40,0x49,0x44,0x49,0x40,0x06,0x00,
0x06,0x04,0x44,0x44,0x44,0x44,0x44,0x04,0x06,
0x00,0x60,0x04,0x64,0x04,0x64,0x04,0x60,0x00,
0x44,0x00,0x40,0x04,0x00,0x04,0x40,0x00,0x44,
};

BIN
tfv/belair.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 709 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 355 B

After

Width:  |  Height:  |  Size: 558 B

BIN
tfv/map.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 649 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 412 B

After

Width:  |  Height:  |  Size: 693 B

View File

@ -1,27 +1,34 @@
ITEMS
WIRE // bird
CUPCAKE // cafeteria lady
1K RESISTOR // brown black red, Elaine
4.7K RESISTOR // yellow purple red, Tater
9V BATTERY // Cindy
1.5V BATTERY // Oscar
CARROT // capabara
SMARTPASS // metro worker
ELF RUNES // mree
LINUX CD // john
RED LED //
ARMY KNIFE // Steve
LIZBETH STAR // Lizbeth
KARTE SPIEL // Frau
GLAMDRING // Gus
VEGEMITE // Nicole
CLASS RING //
BLUE LED // bird
RED LED //
1K RESISTOR // brown black red, Elaine
4.7K RESISTOR // yellow purple red, Tater
9V BATTERY // Cindy
1.5V BATTERY // Oscar
LINUX CD // john
ARMY KNIFE // Steve
// CLASS RING //
COLLEGE PARK
TALBOT HALL
LIZ+WILL
LET'S DISCUSS COOL THINGS IN THE LOUNGE
--> YES!
--> SORRY, NEED TO DO ENGINEERING HOMEWORK
PETE
YOUR JOURNEY MAY TAKE YOU TO DARKEST BEL AIR
PLOT!
@ -35,6 +42,9 @@ TALBOT HALL
DINING HALL
OSCAR
BEWARE THE KILLER CRABS
THEY WANT TO MEET YOU
THEY WANT TO EAT YOU
NICOLE
CINDY
ELAINE
@ -49,6 +59,7 @@ METRO STATION
WOULD YOU LIKE TO BUY A SMARTPASS
SORRY ALL TRAINS CANCELLED: SMARTTRIP
TINY CAPABARA
GRONK
GIANT GUINEA PIG
SQUEAK
LARGE BIRD
@ -79,6 +90,9 @@ JC
JENNI
MR. APPLEBY
KATHY
LOW D-HIGH LESS HIGH D-LOW
DRAW A LINE AND DOWN BELOW
DENOMINATOR SQUARED MUST GO
LIZBETH
BLUME
VINCE CON PATILLAS
@ -90,12 +104,14 @@ JC
FRAU
HOMEROOM
TRAPANI
WEAVE!
MAN THAT PARTY WAS SOMETHING ELSE
WARWICK
MARIOKART PARTY AT MY HOUSE
WARGO
SWOON
AMAZING SWIMMER MUSCLES
WARWICK! AMAZING SWIMMER MUSCLES
*SWOON*
MEAN LADY
MATH OFFICE (ACADEMIC TEAM)
@ -105,8 +121,13 @@ JC
ON ANY GIVEN DAY
BRIGHID
RACHAEL YRBK
AP BIO LAB PARTNERS
MUST STICK TOGETHER
MREE
I'M NOT EVIL
NO ESTA AQUI
MAIN OFFICE
AGENT N
ACTING PRINCIPAL ROBOKNEE
SINCE WE HAVE NO ELECTRICITY WE HAVE NO LIGHTS