mirror of
https://github.com/deater/tb1.git
synced 2024-12-22 13:29:48 +00:00
Version 2.9.5
This commit is contained in:
parent
185e1ecf2c
commit
486148bc84
4
about.c
4
about.c
@ -21,9 +21,9 @@ void about(tb1_state *game_state)
|
||||
vmwClearScreen(target1,0);
|
||||
|
||||
vmwLoadPicPacked(0,0,target2,1,1,
|
||||
tb1_data_file("register.tb1",game_state->path_to_data));
|
||||
tb1_data_file("./about/register.tb1",game_state->path_to_data));
|
||||
vmwLoadPicPacked(0,0,target1,1,0, /* Load Palette */
|
||||
tb1_data_file("register.tb1",game_state->path_to_data));
|
||||
tb1_data_file("./about/register.tb1",game_state->path_to_data));
|
||||
|
||||
while ((ch!=VMW_ESCAPE)&&(ch!='q')){
|
||||
while(( (ch=vmwGetInput())==0) && (firstime));
|
||||
|
@ -5,9 +5,9 @@ Chipper
|
||||
Kevin
|
||||
Leonard
|
||||
Lizann
|
||||
VINCECOOL
|
||||
Vinnels
|
||||
Pete
|
||||
Vinnie
|
||||
joebob
|
||||
5000
|
||||
4500
|
||||
4000
|
||||
@ -15,6 +15,6 @@ joebob
|
||||
3000
|
||||
2500
|
||||
2000
|
||||
1570
|
||||
1540
|
||||
1500
|
||||
1200
|
||||
1160
|
||||
|
@ -109,6 +109,9 @@ char *vmwGrInput(tb1_state *game_state,int x,int y,int howlong,int forecol,int b
|
||||
|
||||
ch=-1;
|
||||
|
||||
vmwTextXY(" ",x,y,forecol,backcol,1,tb1_font,vis);
|
||||
vmwBlitMemToDisplay(game_state->graph_state,vis);
|
||||
|
||||
while (ch!=VMW_ENTER) {
|
||||
while ((ch=vmwGetInput())==0) usleep(30);
|
||||
|
||||
|
14
level_1.c
14
level_1.c
@ -79,7 +79,7 @@ void beforeboss(tb1_state *game_state)
|
||||
|
||||
vmwClearKeyboardBuffer();
|
||||
vmwLoadPicPacked(0,0,game_state->virtual_3,0,1,
|
||||
tb1_data_file("viewscr.tb1",game_state->path_to_data));
|
||||
tb1_data_file("level1/viewscr.tb1",game_state->path_to_data));
|
||||
vmwClearScreen(game_state->virtual_1,0);
|
||||
vmwArbitraryCrossBlit(game_state->virtual_3,0,5,58,37,
|
||||
game_state->virtual_1,10,10);
|
||||
@ -130,7 +130,7 @@ void afterboss(tb1_state *game_state)
|
||||
tb1_font=game_state->graph_state->default_font;
|
||||
|
||||
vmwLoadPicPacked(0,0,game_state->virtual_3,0,1,
|
||||
tb1_data_file("viewscr.tb1",game_state->path_to_data));
|
||||
tb1_data_file("level1/viewscr.tb1",game_state->path_to_data));
|
||||
vmwDrawBox(0,0,320,200,0,game_state->virtual_1);
|
||||
vmwArbitraryCrossBlit(game_state->virtual_3,0,42,58,37,
|
||||
game_state->virtual_1,10,10);
|
||||
@ -362,14 +362,14 @@ void levelone(tb1_state *game_state) {
|
||||
|
||||
/* Load Sprites */
|
||||
grapherror=vmwLoadPicPacked(0,0,virtual_1,1,1,
|
||||
tb1_data_file("ships.tb1",game_state->path_to_data));
|
||||
tb1_data_file("level1/ships.tb1",game_state->path_to_data));
|
||||
|
||||
bigship1=vmwGetSprite(0,0,48,30,virtual_1);
|
||||
bigship2=vmwGetSprite(0,32,48,30,virtual_1);
|
||||
bigship3=vmwGetSprite(0,64,48,30,virtual_1);
|
||||
|
||||
grapherror=vmwLoadPicPacked(0,0,virtual_1,1,1,
|
||||
tb1_data_file("tbshapes.tb1",game_state->path_to_data));
|
||||
tb1_data_file("level1/tbshapes.tb1",game_state->path_to_data));
|
||||
|
||||
for(j=0;j<2;j++)
|
||||
for(i=0;i<10;i++)
|
||||
@ -641,9 +641,9 @@ void littleopener(tb1_state *game_state)
|
||||
vmwClearScreen(game_state->virtual_2,0);
|
||||
|
||||
vmwLoadPicPacked(0,0,game_state->virtual_2,1,1,
|
||||
tb1_data_file("moon2.tb1",game_state->path_to_data));
|
||||
tb1_data_file("level1/moon2.tb1",game_state->path_to_data));
|
||||
vmwLoadPicPacked(0,0,game_state->virtual_1,1,0, /* Load palette */
|
||||
tb1_data_file("moon2.tb1",game_state->path_to_data));
|
||||
tb1_data_file("level1/moon2.tb1",game_state->path_to_data));
|
||||
|
||||
ship1=vmwGetSprite(9,178,15,18,game_state->virtual_2);
|
||||
ship2=vmwGetSprite(30,178,15,18,game_state->virtual_2);
|
||||
@ -679,6 +679,6 @@ void littleopener(tb1_state *game_state)
|
||||
|
||||
vmwDrawBox(0,0,320,200,0,game_state->virtual_1);
|
||||
vmwLoadPicPacked(0,0,game_state->virtual_1,1,0, /* Restore Palette */
|
||||
tb1_data_file("tbgorg.tb1",game_state->path_to_data));
|
||||
tb1_data_file("tbomb1.tb1",game_state->path_to_data));
|
||||
|
||||
}
|
||||
|
52
level_2.c
52
level_2.c
@ -93,12 +93,9 @@ void leveltwoengine(tb1_state *game_state)
|
||||
game_state->begin_score=game_state->score;
|
||||
game_state->begin_shields=game_state->shields;
|
||||
|
||||
printf("Starting level 2\n"); fflush(stdout);
|
||||
|
||||
|
||||
/* Load Sprites */
|
||||
grapherror=vmwLoadPicPacked(0,0,virtual_1,1,1,
|
||||
tb1_data_file("ships.tb1",
|
||||
tb1_data_file("level1/ships.tb1",
|
||||
game_state->path_to_data));
|
||||
|
||||
ship_shape[0]=vmwGetSprite(0,0,48,30,virtual_1);
|
||||
@ -107,21 +104,19 @@ void leveltwoengine(tb1_state *game_state)
|
||||
|
||||
|
||||
if (game_state->level==2) vmwLoadPicPacked(0,0,virtual_1,1,1,
|
||||
tb1_data_file("tbaship.tb1",game_state->path_to_data));
|
||||
tb1_data_file("level2/tbaship.tb1",game_state->path_to_data));
|
||||
if (game_state->level==4) vmwLoadPicPacked(0,0,virtual_1,1,1,
|
||||
tb1_data_file("tbeerm.tb1",game_state->path_to_data));
|
||||
tb1_data_file("level4/tbeerm.tb1",game_state->path_to_data));
|
||||
|
||||
for(j=0;j<4;j++)
|
||||
for(i=0;i<10;i++)
|
||||
shape_table[j*10+i]=vmwGetSprite(1+i*21,1+j*11,20,10,virtual_1);
|
||||
|
||||
printf("Sprites Loaded\n"); fflush(stdout);
|
||||
|
||||
/* Load Background Data */
|
||||
if (game_state->level==2)
|
||||
f=fopen(tb1_data_file("level2.dat",game_state->path_to_data),"r");
|
||||
f=fopen(tb1_data_file("level2/level2.dat",game_state->path_to_data),"r");
|
||||
if (game_state->level==4)
|
||||
f=fopen(tb1_data_file("level4.dat",game_state->path_to_data),"r");
|
||||
f=fopen(tb1_data_file("level4/level4.dat",game_state->path_to_data),"r");
|
||||
if (f==NULL)
|
||||
printf("ERROR! Could't open level %d data!\n",game_state->level);
|
||||
|
||||
@ -442,7 +437,13 @@ void leveltwoengine(tb1_state *game_state)
|
||||
|
||||
/*printf("%i\n",rows_goneby);*/
|
||||
if (rows_goneby>1950) {
|
||||
printf("%i\n",rows_goneby);
|
||||
// printf("%i\n",rows_goneby);
|
||||
coolbox(35,85,215,110,1,virtual_1);
|
||||
vmwTextXY("TO BE CONTINUED...",55,85,4,7,0,tb1_font,virtual_1);
|
||||
vmwBlitMemToDisplay(game_state->graph_state,virtual_1);
|
||||
pauseawhile(10);
|
||||
|
||||
|
||||
/*
|
||||
clearkeyboardbuffer;
|
||||
pauseawhile(200);
|
||||
@ -562,22 +563,17 @@ void leveltwoengine(tb1_state *game_state)
|
||||
|
||||
|
||||
|
||||
void littleopener2()
|
||||
{
|
||||
// char tempst[300];
|
||||
/*
|
||||
ggiSetGCForeground(vis,tb1_pal[0]);
|
||||
ggiDrawBox(vis,0,0,320,200);
|
||||
ggiSetGCForeground(vaddr,tb1_pal[0]);
|
||||
ggiDrawBox(vaddr,0,0,320,200);
|
||||
GGILoadPicPacked(0,0,vis,1,1,
|
||||
tb1_data_file("tbl2ship.tb1",(char *)tempst),
|
||||
(ggi_color *)&eight_bit_pal,
|
||||
(ggi_pixel *)&tb1_pal,color_depth);
|
||||
VMWtextxy("Hmmmm... ",10,10,tb1_pal[4],tb1_pal[0],0,tb1_font,vis);
|
||||
VMWtextxy("This Might Be Harder Than I Thought.",10,20,tb1_pal[4],tb1_pal[0],0,tb1_font,vis);
|
||||
void littleopener2(tb1_state *game_state) {
|
||||
|
||||
vmwDrawBox(0,0,319,199,0,game_state->virtual_1);
|
||||
vmwLoadPicPacked(0,0,game_state->virtual_1,1,1,
|
||||
tb1_data_file("level2/tbl2ship.tb1",game_state->path_to_data));
|
||||
vmwTextXY("Hmmmm... ",10,10,4,0,0,game_state->graph_state->default_font,
|
||||
game_state->virtual_1);
|
||||
vmwTextXY("This Might Be Harder Than I Thought.",10,20,4,0,0,
|
||||
game_state->graph_state->default_font,game_state->virtual_1);
|
||||
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
||||
pauseawhile(13);
|
||||
ggiSetGCForeground(vis,tb1_pal[0]);
|
||||
ggiDrawBox(vis,0,0,320,200);
|
||||
*/
|
||||
vmwDrawBox(0,0,319,199,0,game_state->virtual_1);
|
||||
|
||||
}
|
||||
|
5
levels.h
5
levels.h
@ -1,4 +1,5 @@
|
||||
void levelone(tb1_state *game_state);
|
||||
void littleopener();
|
||||
void littleopener(tb1_state *game_state);
|
||||
void leveltwoengine(tb1_state *game_state);
|
||||
void littleopener2();
|
||||
void littleopener2(tb1_state *game_state);
|
||||
|
||||
|
@ -23,7 +23,7 @@ void playthegame(tb1_state *game_state)
|
||||
|
||||
if (game_state->level==1) {
|
||||
levelone(game_state);
|
||||
// if(level==2) littleopener2();
|
||||
if (game_state->level==2) littleopener2(game_state);
|
||||
}
|
||||
if (game_state->level==2) {
|
||||
leveltwoengine(game_state);
|
||||
@ -51,7 +51,7 @@ void playthegame(tb1_state *game_state)
|
||||
vmwTextXY("ENTER YOUR NAME (10 Chars)",30,90,0,7,0,
|
||||
game_state->graph_state->default_font,game_state->virtual_1);
|
||||
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
||||
hiname=vmwGrInput(game_state,110,110,10,11,7,game_state->graph_state->default_font,
|
||||
hiname=vmwGrInput(game_state,110,110,10,11,0,game_state->graph_state->default_font,
|
||||
game_state->virtual_1);
|
||||
write_hs_list(game_state,game_state->score,hiname,0);
|
||||
}
|
||||
|
16
sound.c
16
sound.c
@ -13,14 +13,14 @@ static Mix_Music *music;
|
||||
static Mix_Chunk *game_fx[NUM_GAME_FX];
|
||||
|
||||
static char *game_fx_names[] = {
|
||||
"tb_ahh.wav",
|
||||
"tb_cc.wav",
|
||||
"tb_kapow.wav",
|
||||
"tb_scream.wav",
|
||||
"tb_bonk.wav",
|
||||
"tb_click.wav",
|
||||
"tb_ow.wav",
|
||||
"tb_zrrp.wav"
|
||||
"sound/tb_ahh.wav",
|
||||
"sound/tb_cc.wav",
|
||||
"sound/tb_kapow.wav",
|
||||
"sound/tb_scream.wav",
|
||||
"sound/tb_bonk.wav",
|
||||
"sound/tb_click.wav",
|
||||
"sound/tb_ow.wav",
|
||||
"sound/tb_zrrp.wav"
|
||||
};
|
||||
|
||||
void loadFX(char *path_to_data) {
|
||||
|
484
story.c
484
story.c
@ -1,4 +1,5 @@
|
||||
#include <stdio.h>
|
||||
#include <unistd.h> /* for usleep */
|
||||
|
||||
#include "svmwgraph/svmwgraph.h"
|
||||
#include "tb1_state.h"
|
||||
@ -7,92 +8,69 @@
|
||||
#include "sound.h"
|
||||
|
||||
|
||||
vmwSprite *bigFlame1,*bigFlame2,*smallFlame1,*smallFlame2;
|
||||
vmwSprite *rent,*truck1,*truck2,*barge;
|
||||
vmwSprite *explosion1,*explosion2;
|
||||
|
||||
|
||||
|
||||
void doflames(tb1_state *game_state) {
|
||||
|
||||
static int flames=0;
|
||||
static char alienchar=34;
|
||||
char tempst[5];
|
||||
|
||||
if (flames) {
|
||||
vmwPutSprite(bigFlame1,213,100,game_state->virtual_1);
|
||||
vmwPutSpriteNonTransparent(smallFlame2,105,90,game_state->virtual_1);
|
||||
vmwPutSpriteNonTransparent(smallFlame1,151,71,game_state->virtual_1);
|
||||
vmwPutSpriteNonTransparent(smallFlame2,218,72,game_state->virtual_1);
|
||||
}
|
||||
else {
|
||||
vmwPutSprite(bigFlame2,213,100,game_state->virtual_1);
|
||||
vmwPutSpriteNonTransparent(smallFlame1,105,90,game_state->virtual_1);
|
||||
vmwPutSpriteNonTransparent(smallFlame2,151,71,game_state->virtual_1);
|
||||
vmwPutSpriteNonTransparent(smallFlame1,218,72,game_state->virtual_1);
|
||||
sprintf(tempst,"%c",alienchar);
|
||||
vmwTextXY(tempst,10,10,12,0,1,game_state->graph_state->default_font,game_state->virtual_1);
|
||||
alienchar++;
|
||||
if (alienchar>44) alienchar=34;
|
||||
}
|
||||
flames=(!flames);
|
||||
}
|
||||
|
||||
|
||||
void story(tb1_state *game_state)
|
||||
{
|
||||
int error;
|
||||
int i;
|
||||
int xtemp,ytemp;
|
||||
int thrustcol;
|
||||
float thrust;
|
||||
char tempch;
|
||||
int alienchar;
|
||||
int cycles;
|
||||
int cycles,to_clear;
|
||||
|
||||
vmwFont *tb1_font;
|
||||
|
||||
tb1_font=game_state->graph_state->default_font;
|
||||
|
||||
/*
|
||||
procedure doflames;
|
||||
begin
|
||||
|
||||
if flames=true then begin
|
||||
putshape(bigflame1off,vaddr,27,17,213,100);
|
||||
putshapeover(sflame2off,vaddr,4,4,105,90);
|
||||
putshapeover(sflame1off,vaddr,4,4,151,71);
|
||||
putshapeover(sflame2off,vaddr,4,4,218,72);
|
||||
end
|
||||
else
|
||||
begin
|
||||
putshape(bigflame2off,vaddr,27,17,213,100);
|
||||
putshapeover(sflame1off,vaddr,4,4,105,90);
|
||||
putshapeover(sflame2off,vaddr,4,4,151,71);
|
||||
putshapeover(sflame1off,vaddr,4,4,218,72);
|
||||
outtextxy(chr(alienchar),10,10,12,0,vaddr,true);
|
||||
inc(alienchar);
|
||||
if alienchar>44 then alienchar:=34;
|
||||
end;
|
||||
flipd320(vaddr,vga);
|
||||
vdelay(5);
|
||||
flames:=not(flames);
|
||||
end;
|
||||
|
||||
procedure puttruck(xp,yp,frame:integer;where:word);
|
||||
var xtemp,into,ytemp:integer;
|
||||
col:byte;
|
||||
begin
|
||||
for into:=0 to 7 do begin
|
||||
if(into+yp>=172) then
|
||||
if frame=0 then putshapeline(truck1off,where,6,8,xp,yp,into)
|
||||
else putshapeline(truck2off,where,6,8,xp,yp,into);
|
||||
end;
|
||||
end;
|
||||
*/
|
||||
|
||||
vmwLoadPicPacked(0,0,game_state->virtual_2,1,1,
|
||||
tb1_data_file("tbsobj.tb1",game_state->path_to_data));
|
||||
/*
|
||||
for ytemp:=0 to 18 do
|
||||
for xtemp:=0 to 26 do begin
|
||||
ShapeTable1^[((ytemp*27)+xtemp)+bigflame1off]:=getpixel(xtemp,ytemp+2,vaddr);
|
||||
ShapeTable1^[((ytemp*27)+xtemp)+bigflame2off]:=getpixel(xtemp,ytemp+21,vaddr);
|
||||
end;
|
||||
for ytemp:=0 to 18 do
|
||||
for xtemp:=0 to 15 do begin
|
||||
ShapeTable1^[((ytemp*16)+xtemp)+explo1off]:=getpixel(127+xtemp,ytemp+100,vaddr);
|
||||
ShapeTable1^[((ytemp*16)+xtemp)+explo2off]:=getpixel(148+xtemp,ytemp+100,vaddr);
|
||||
end;
|
||||
for ytemp:=0 to 6 do
|
||||
for xtemp:=0 to 15 do
|
||||
ShapeTable1^[((ytemp*16)+xtemp)+rent1off]:=getpixel(168+xtemp,ytemp+100,vaddr);
|
||||
|
||||
for ytemp:=0 to 4 do
|
||||
for xtemp:=0 to 3 do begin
|
||||
ShapeTable1^[((ytemp*4)+xtemp)+sflame1off]:=getpixel(xtemp,ytemp+43,vaddr);
|
||||
ShapeTable1^[((ytemp*4)+xtemp)+sflame2off]:=getpixel(xtemp,ytemp+47,vaddr);
|
||||
end;
|
||||
|
||||
for ytemp:=0 to 18 do
|
||||
for xtemp:=0 to 15 do
|
||||
ShapeTable1^[((ytemp*16)+xtemp)+bargeoff]:=getpixel(xtemp+65,ytemp+100,vaddr);
|
||||
|
||||
for ytemp:=0 to 8 do
|
||||
for xtemp:=0 to 5 do begin
|
||||
ShapeTable1^[((ytemp*6)+xtemp)+truck1off]:=getpixel(xtemp+85,ytemp+100,vaddr);
|
||||
ShapeTable1^[((ytemp*6)+xtemp)+truck2off]:=getpixel(xtemp+95,ytemp+100,vaddr);
|
||||
end;
|
||||
*/
|
||||
tb1_data_file("story/tbsobj.tb1",game_state->path_to_data));
|
||||
|
||||
/* Load up the sprites! */
|
||||
bigFlame1=vmwGetSprite(0,2,26,18,game_state->virtual_2);
|
||||
bigFlame2=vmwGetSprite(0,21,26,18,game_state->virtual_2);
|
||||
|
||||
explosion1=vmwGetSprite(127,100,15,18,game_state->virtual_2);
|
||||
explosion2=vmwGetSprite(148,100,15,18,game_state->virtual_2);
|
||||
|
||||
rent=vmwGetSprite(166,100,15,6,game_state->virtual_2);
|
||||
smallFlame1=vmwGetSprite(0,43,3,4,game_state->virtual_2);
|
||||
smallFlame2=vmwGetSprite(0,47,3,4,game_state->virtual_2);
|
||||
barge=vmwGetSprite(65,100,15,18,game_state->virtual_2);
|
||||
truck1=vmwGetSprite(85,100,6,8,game_state->virtual_2);
|
||||
truck2=vmwGetSprite(95,100,6,8,game_state->virtual_2);
|
||||
|
||||
/******FIRST MESSAGE********/
|
||||
vmwClearScreen(game_state->virtual_1,0);
|
||||
vmwTextXY("THE STORY SO FAR...",20,20,4,0,0,tb1_font,game_state->virtual_1);
|
||||
@ -102,7 +80,7 @@ end;
|
||||
vmwClearScreen(game_state->virtual_1,0);
|
||||
|
||||
vmwLoadPicPacked(0,0,game_state->virtual_2,1,1,
|
||||
tb1_data_file("tbcobj.tb1",game_state->path_to_data));
|
||||
tb1_data_file("story/tbcobj.tb1",game_state->path_to_data));
|
||||
|
||||
vmwArbitraryCrossBlit(game_state->virtual_2,129,56,49,132,
|
||||
game_state->virtual_1,10,10);
|
||||
@ -143,7 +121,7 @@ end;
|
||||
pauseawhile(12);
|
||||
|
||||
vmwLoadPicPacked(0,0,game_state->virtual_1,1,1,
|
||||
tb1_data_file("tbchief.tb1",game_state->path_to_data));
|
||||
tb1_data_file("story/tbchief.tb1",game_state->path_to_data));
|
||||
|
||||
/* Save the area where the error will go */
|
||||
vmwArbitraryCrossBlit(game_state->virtual_1,115,55,91,59,
|
||||
@ -154,7 +132,7 @@ end;
|
||||
vmwTextXY("Ahhh.... Mr. Bombem.... ",1,1,15,0,0,tb1_font,game_state->virtual_1);
|
||||
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
||||
if (game_state->sound_enabled) playGameFX(0);
|
||||
pauseawhile(2);
|
||||
pauseawhile(6);
|
||||
|
||||
if (game_state->sound_enabled) playGameFX(2);
|
||||
/* Show fake error message */
|
||||
@ -188,8 +166,9 @@ end;
|
||||
|
||||
/******BARGE TAKING OFF***********/
|
||||
|
||||
vmwClearScreen(game_state->virtual_2,0);
|
||||
vmwLoadPicPacked(0,0,game_state->virtual_2,1,1,
|
||||
tb1_data_file("tbma1.tb1",game_state->path_to_data));
|
||||
tb1_data_file("story/tbma1.tb1",game_state->path_to_data));
|
||||
|
||||
vmwSmallTextXY("MY WIFE AND I FOUNDED",212,3,14,0,0,tb1_font,game_state->virtual_2);
|
||||
vmwSmallTextXY("THIS BASE IN 2008.",212,9,14,0,0,tb1_font,game_state->virtual_2);
|
||||
@ -204,186 +183,227 @@ end;
|
||||
vmwSmallTextXY("THE LAST LAUNCH EIGHT",212,66,11,0,0,tb1_font,game_state->virtual_2);
|
||||
vmwSmallTextXY("YEARS AGO.",212,72,11,0,0,tb1_font,game_state->virtual_2);
|
||||
|
||||
vmwFlipVirtual(game_state->virtual_1,game_state->virtual_2,320,200);
|
||||
|
||||
/* putshape(bargeoff,vaddr,16,18,141,157);*/
|
||||
|
||||
/* vmwCrossBlit(plb_vis->write,plb_vaddr->read,plb_vis->stride,200);*/
|
||||
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
||||
pauseawhile(7);
|
||||
vmwFlipVirtual(game_state->virtual_1,game_state->virtual_2,320,200);
|
||||
|
||||
#if 0
|
||||
/*
|
||||
vmwPutSprite(barge,141,157,game_state->virtual_1);
|
||||
|
||||
|
||||
/* vmwCrossBlit(game_state->virtual_1,plb_vaddr->read,plb_vis->stride,200);*/
|
||||
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
||||
pauseawhile(6);
|
||||
|
||||
|
||||
for ytemp:=191 downto 164 do begin
|
||||
if ytemp>=172 then blockmove(145,ytemp,152,ytemp+10,vaddr2,145,ytemp,vaddr)
|
||||
else blockmove(145,172,152,182,vaddr2,145,172,vaddr);
|
||||
puttruck(145,ytemp,ytemp mod 2,vaddr);
|
||||
pauseawhile(7);
|
||||
if keypressed then if readkey=#27 then exit;
|
||||
flipd320(vaddr,vga);
|
||||
end;
|
||||
|
||||
pauseawhile(20);
|
||||
flipd320(vaddr2,vaddr);
|
||||
putshape(bargeoff,vaddr,16,18,141,157);
|
||||
thrustcol:=0;
|
||||
ytemp:=157;
|
||||
thrust:=0;
|
||||
while ytemp>-25 do begin
|
||||
thrust:=thrust+0.05;
|
||||
if thrustcol<63 then inc(thrustcol);
|
||||
blockmove(141,ytemp,171,ytemp+30,vaddr2,141,ytemp,vaddr);
|
||||
for i:=1 to 17 do
|
||||
if ytemp+i>=0 then
|
||||
putshapeline(bargeoff,vaddr,16,18,141,ytemp,i);
|
||||
pauseawhile(5);
|
||||
if keypressed then if readkey=#27 then exit;
|
||||
pal(250,thrustcol,0,0);
|
||||
flipd320(vaddr,vga);
|
||||
ytemp:=ytemp-round(thrust);
|
||||
end;
|
||||
*/
|
||||
pauseawhile(5);
|
||||
|
||||
|
||||
/****SECOND CHIEF*******/
|
||||
ggiSetGCForeground(vis,0]);
|
||||
ggiDrawBox(vis,0,0,320,200);
|
||||
GGILoadPicPacked(0,0,vaddr2,1,1,
|
||||
tb1_data_file("tbcobj.tb1",(char *)tempst),
|
||||
(ggi_color *)&eight_bit_pal,
|
||||
(ggi_pixel *)&tb1_pal,color_depth);
|
||||
GGILoadPicPacked(0,0,vis,1,1,
|
||||
tb1_data_file("tbchief.tb1",(char *)tempst),
|
||||
(ggi_color *)&eight_bit_pal,
|
||||
(ggi_pixel *)&tb1_pal,color_depth);
|
||||
/* vmwArbitraryCrossBlit(plb_vaddr2->read,7,104,90,21,
|
||||
plb_vis->write,6,174,plb_vis->stride,
|
||||
stride_factor);
|
||||
*/
|
||||
vmwTextXY("You might wonder why this is important.",1,1,15],0],1,tb1_font,virtual_1);
|
||||
pauseawhile(6);
|
||||
vmwTextXY("Last week we received a message. ",1,1,15],0],1,tb1_font,virtual_1);
|
||||
pauseawhile(6);
|
||||
vmwTextXY("It is of extra-terrestrial origin. ",1,1,15],0],1,tb1_font,virtual_1);
|
||||
pauseawhile(6);
|
||||
vmwTextXY("Watch the screen. ",1,1,15],0],1,tb1_font,virtual_1);
|
||||
/* Roll the truck up to the barge */
|
||||
for(ytemp=190;ytemp>=164;ytemp--) {
|
||||
|
||||
/*vmwArbitraryCrossBlit(plb_vaddr2->read,210,136,85,59,
|
||||
plb_vis->write,210,136,plb_vis->stride,
|
||||
stride_factor);*/
|
||||
if (ytemp>=172)
|
||||
vmwArbitraryCrossBlit(game_state->virtual_2,
|
||||
145,ytemp,7,10,
|
||||
game_state->virtual_1,145,ytemp);
|
||||
else
|
||||
vmwArbitraryCrossBlit(game_state->virtual_2,
|
||||
145,172,7,10,
|
||||
game_state->virtual_1,145,172);
|
||||
|
||||
if (ytemp%2) vmwPutPartialSprite(game_state->virtual_1,
|
||||
truck1,145,ytemp,
|
||||
0,319,172,199);
|
||||
else vmwPutPartialSprite(game_state->virtual_1,
|
||||
truck2,145,ytemp,
|
||||
0,319,172,199);
|
||||
|
||||
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
||||
|
||||
usleep(80000);
|
||||
}
|
||||
pauseawhile(2);
|
||||
|
||||
/* Have the barge take off */
|
||||
vmwFlipVirtual(game_state->virtual_1,game_state->virtual_2,320,200);
|
||||
|
||||
vmwPutSprite(barge,141,157,game_state->virtual_1);
|
||||
thrustcol=0;
|
||||
ytemp=157;
|
||||
to_clear=0;
|
||||
thrust=0;
|
||||
while (ytemp> -25) {
|
||||
thrust+=0.15;
|
||||
if (thrustcol<62) thrustcol++;
|
||||
to_clear=ytemp;
|
||||
if (ytemp<0) to_clear=0;
|
||||
vmwArbitraryCrossBlit(game_state->virtual_2,141,to_clear,30,30,
|
||||
game_state->virtual_1,141,to_clear);
|
||||
for(i=1;i<17;i++) {
|
||||
vmwPutPartialSprite(game_state->virtual_1,
|
||||
barge,141,ytemp,
|
||||
0,319,0,199);
|
||||
}
|
||||
usleep(50000);
|
||||
game_state->virtual_1->palette[250]=thrustcol*0x1000;
|
||||
ytemp=ytemp-(int)thrust;
|
||||
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
||||
}
|
||||
pauseawhile(5);
|
||||
|
||||
|
||||
vmwClearScreen(game_state->virtual_2,0);
|
||||
|
||||
/****SECOND CHIEF*******/
|
||||
vmwLoadPicPacked(0,0,game_state->virtual_2,1,1,
|
||||
tb1_data_file("story/tbcobj.tb1",game_state->path_to_data));
|
||||
vmwLoadPicPacked(0,0,game_state->virtual_1,1,1,
|
||||
tb1_data_file("story/tbchief.tb1",game_state->path_to_data));
|
||||
vmwArbitraryCrossBlit(game_state->virtual_2,7,104,90,21,
|
||||
game_state->virtual_1,6,174);
|
||||
vmwTextXY("You might wonder why this is important.",
|
||||
1,1,15,0,1,tb1_font,game_state->virtual_1);
|
||||
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
||||
pauseawhile(6);
|
||||
vmwTextXY("Last week we received a message. ",
|
||||
1,1,15,0,1,tb1_font,game_state->virtual_1);
|
||||
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
||||
pauseawhile(6);
|
||||
vmwTextXY("It is of extra-terrestrial origin. ",
|
||||
1,1,15,0,1,tb1_font,game_state->virtual_1);
|
||||
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
||||
pauseawhile(6);
|
||||
vmwTextXY("Watch the screen. ",
|
||||
1,1,15,0,1,tb1_font,game_state->virtual_1);
|
||||
|
||||
vmwArbitraryCrossBlit(game_state->virtual_2,210,136,85,59,
|
||||
game_state->virtual_1,210,136);
|
||||
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
||||
pauseawhile(4);
|
||||
|
||||
/******ALIEN DELEGATION*****/
|
||||
GGILoadPicPacked(0,0,vaddr2,1,1,
|
||||
tb1_data_file("tbcrash.tb1",(char *)tempst),
|
||||
(ggi_color *)&eight_bit_pal,
|
||||
(ggi_pixel *)&tb1_pal,color_depth);
|
||||
|
||||
/*alienchar:=34;
|
||||
flipd320(vaddr2,vaddr);
|
||||
flipd320(vaddr,vga);
|
||||
putshape(bargeoff,vaddr,16,18,97,180);
|
||||
unfade;
|
||||
xtemp:=97;
|
||||
ytemp:=181;
|
||||
flames:=true;
|
||||
while ytemp>118 do begin
|
||||
blockmove(xtemp,ytemp,xtemp+20,ytemp+20,vaddr2,xtemp,ytemp,vaddr);
|
||||
putshape(bargeoff,vaddr,16,18,xtemp,ytemp);
|
||||
doflames;
|
||||
dec(ytemp);
|
||||
inc(xtemp);
|
||||
pauseawhile(1);
|
||||
if keypressed then if readkey=#27 then exit;
|
||||
end;
|
||||
blockmove(xtemp,ytemp,xtemp+30,ytemp+30,vaddr2,xtemp,ytemp,vaddr);
|
||||
pal(0,63,63,63);
|
||||
putshape(explo1off,vga,16,18,160,118);
|
||||
pauseawhile(5);
|
||||
if keypressed then if readkey=#27 then exit;
|
||||
pal(0,0,0,0);
|
||||
if sbeffects then startsound(sound[3],0,false);
|
||||
for xtemp:=0 to 10 do begin
|
||||
putshapeover(explo2off,vaddr,16,18,160,118);
|
||||
doflames;
|
||||
putshapeover(explo1off,vaddr,16,18,160,118);
|
||||
doflames;
|
||||
end;
|
||||
blockmove(159,114,189,144,vaddr2,159,114,vaddr);
|
||||
putshapeover(rent1off,vaddr,16,6,160,115);
|
||||
flipd320(vaddr,vga);
|
||||
cycles:=0;
|
||||
repeat
|
||||
doflames;
|
||||
inc(cycles);
|
||||
until ((keypressed) or (cycles>60));
|
||||
if keypressed then if readkey=#27 then exit;
|
||||
*/
|
||||
|
||||
/* Something is not quite right here */
|
||||
// vmwLoadPicPacked(0,0,game_state->virtual_2,1,1,
|
||||
// tb1_data_file("story/tbcrash.tb1",
|
||||
// game_state->path_to_data));
|
||||
vmwLoadPicPacked(0,0,game_state->virtual_1,1,1,
|
||||
tb1_data_file("story/tbcrash.tb1",
|
||||
game_state->path_to_data));
|
||||
vmwLoadPicPacked(0,0,game_state->virtual_1,1,0,
|
||||
tb1_data_file("tbomb1.tb1",
|
||||
game_state->path_to_data));
|
||||
|
||||
|
||||
vmwFlipVirtual(game_state->virtual_2,game_state->virtual_1,320,200);
|
||||
// flipd320(vaddr,vga);
|
||||
vmwPutSprite(barge,97,180,game_state->virtual_1);
|
||||
xtemp=97;
|
||||
ytemp=181;
|
||||
|
||||
while (ytemp>118) {
|
||||
vmwArbitraryCrossBlit(game_state->virtual_2,xtemp,ytemp,20,20,
|
||||
game_state->virtual_1,xtemp,ytemp);
|
||||
vmwPutSprite(barge,xtemp,ytemp,game_state->virtual_1);
|
||||
doflames(game_state);
|
||||
ytemp--;
|
||||
xtemp++;
|
||||
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
||||
usleep(80000);
|
||||
}
|
||||
vmwArbitraryCrossBlit(game_state->virtual_2,xtemp,ytemp,30,30,
|
||||
game_state->virtual_1,xtemp,ytemp);
|
||||
game_state->virtual_1->palette[0]=0xffffff;
|
||||
vmwPutSprite(explosion1,160,118,game_state->virtual_1);
|
||||
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
||||
game_state->virtual_1->palette[0]=0;
|
||||
usleep(80000);
|
||||
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
||||
|
||||
if (game_state->sound_enabled) playGameFX(2);
|
||||
for(xtemp=0;xtemp<10;xtemp++) {
|
||||
vmwPutSprite(explosion2,160,118,game_state->virtual_1);
|
||||
doflames(game_state);
|
||||
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
||||
usleep(80000);
|
||||
vmwPutSprite(explosion1,160,118,game_state->virtual_1);
|
||||
doflames(game_state);
|
||||
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
||||
usleep(80000);
|
||||
}
|
||||
vmwArbitraryCrossBlit(game_state->virtual_2,159,114,30,30,
|
||||
game_state->virtual_1,159,114);
|
||||
vmwPutSpriteNonTransparent(rent,160,118,game_state->virtual_1);
|
||||
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
||||
|
||||
cycles=0;
|
||||
while ( ((tempch=vmwGetInput())==0) && cycles<12) {
|
||||
doflames(game_state);
|
||||
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
||||
cycles++;
|
||||
usleep(500000);
|
||||
}
|
||||
|
||||
/****ALIEN MESSAGE*****/
|
||||
GGILoadPicPacked(0,0,vis,1,1,
|
||||
tb1_data_file("tbgorg.tb1",(char *)tempst),
|
||||
(ggi_color *)&eight_bit_pal,
|
||||
(ggi_pixel *)&tb1_pal,color_depth);
|
||||
vmwTextXY("GREETINGS EARTHLINGS.",0,162,12],0],0,tb1_font,virtual_1);
|
||||
vmwTextXY("I AM GORGONZOLA THE REPULSIVE.",0,171,12],0],0,tb1_font,virtual_1);
|
||||
vmwTextXY("YOU HAVE MADE A BIG MISTAKE.",0,180,12],0],0,tb1_font,virtual_1);
|
||||
vmwLoadPicPacked(0,0,game_state->virtual_1,1,1,
|
||||
tb1_data_file("story/tbgorg.tb1",game_state->path_to_data));
|
||||
vmwTextXY("GREETINGS EARTHLINGS.",0,162,12,0,0,tb1_font,game_state->virtual_1);
|
||||
vmwTextXY("I AM GORGONZOLA THE REPULSIVE.",0,171,12,0,0,tb1_font,game_state->virtual_1);
|
||||
vmwTextXY("YOU HAVE MADE A BIG MISTAKE.",0,180,12,0,0,tb1_font,game_state->virtual_1);
|
||||
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
||||
pauseawhile(7);
|
||||
vmwTextXY("YOUR SHIP FULL OF REFUSE HAS",0,162,12],0],1,tb1_font,virtual_1);
|
||||
vmwTextXY("DAMAGED OUR OFFICIAL PEACE ",0,171,12],0],1,tb1_font,virtual_1);
|
||||
vmwTextXY("ENVOY. IT WAS ON ITS WAY TO ",0,180,12],0],1,tb1_font,virtual_1);
|
||||
vmwTextXY("YOUR PLANET. ",0,189,12],0],1,tb1_font,virtual_1);
|
||||
vmwTextXY("YOUR SHIP FULL OF REFUSE HAS",0,162,12,0,1,tb1_font,game_state->virtual_1);
|
||||
vmwTextXY("DAMAGED OUR OFFICIAL PEACE ",0,171,12,0,1,tb1_font,game_state->virtual_1);
|
||||
vmwTextXY("ENVOY. IT WAS ON ITS WAY TO ",0,180,12,0,1,tb1_font,game_state->virtual_1);
|
||||
vmwTextXY("YOUR PLANET. ",0,189,12,0,1,tb1_font,game_state->virtual_1);
|
||||
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
||||
pauseawhile(7);
|
||||
vmwTextXY("IN AN IRONIC FORM OF RETALLIATION",0,162,12],0],1,tb1_font,virtual_1);
|
||||
vmwTextXY("WE HAVE MADE YOUR TRASH EVIL AND",0,171,12],0],1,tb1_font,virtual_1);
|
||||
vmwTextXY("TURNED IT AGAINST YOU. ",0,180,12],0],1,tb1_font,virtual_1);
|
||||
vmwTextXY(" DIE EARTH SCUM! ",0,189,12],0],1,tb1_font,virtual_1);
|
||||
vmwTextXY("IN AN IRONIC FORM OF RETALLIATION",0,162,12,0,1,tb1_font,game_state->virtual_1);
|
||||
vmwTextXY("WE HAVE MADE YOUR TRASH EVIL AND",0,171,12,0,1,tb1_font,game_state->virtual_1);
|
||||
vmwTextXY("TURNED IT AGAINST YOU. ",0,180,12,0,1,tb1_font,game_state->virtual_1);
|
||||
vmwTextXY(" DIE EARTH SCUM! ",0,189,12,0,1,tb1_font,game_state->virtual_1);
|
||||
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
||||
pauseawhile(7);
|
||||
|
||||
/****** THIRD CHIEF *******/
|
||||
GGILoadPicPacked(0,0,vaddr2,1,1,
|
||||
tb1_data_file("tbcobj.tb1",(char *)tempst),
|
||||
(ggi_color *)&eight_bit_pal,
|
||||
(ggi_pixel *)&tb1_pal,color_depth);
|
||||
GGILoadPicPacked(0,0,virtual_1,1,1,
|
||||
tb1_data_file("tbchief.tb1",(char *)tempst),
|
||||
(ggi_color *)&eight_bit_pal,
|
||||
(ggi_pixel *)&tb1_pal,color_depth);
|
||||
vmwArbitraryCrossBlit(plb_vaddr2->read,7,127,90,21,
|
||||
plb_vis->write,6,174,plb_vis->stride,
|
||||
stride_factor);
|
||||
vmwLoadPicPacked(0,0,game_state->virtual_2,1,1,
|
||||
tb1_data_file("story/tbcobj.tb1",game_state->path_to_data));
|
||||
vmwLoadPicPacked(0,0,game_state->virtual_1,1,1,
|
||||
tb1_data_file("story/tbchief.tb1",game_state->path_to_data));
|
||||
vmwArbitraryCrossBlit(game_state->virtual_2,7,127,90,21,
|
||||
game_state->virtual_1,6,174);
|
||||
|
||||
vmwTextXY("Tom, our radar detects approaching ",1,1,15],0],1,tb1_font,virtual_1);
|
||||
vmwTextXY("Tom, our radar detects approaching ",1,1,15,0,1,tb1_font,game_state->virtual_1);
|
||||
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
||||
pauseawhile(6);
|
||||
vmwTextXY("objects. They are inside the ",1,1,15],0],1,tb1_font,virtual_1);
|
||||
vmwTextXY("objects. They are inside the ",1,1,15,0,1,tb1_font,game_state->virtual_1);
|
||||
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
||||
pauseawhile(6);
|
||||
vmwTextXY("orbit of Jupiter. ",1,1,15],0],1,tb1_font,virtual_1);
|
||||
vmwTextXY("orbit of Jupiter. ",1,1,15,0,1,tb1_font,game_state->virtual_1);
|
||||
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
||||
pauseawhile(6);
|
||||
vmwTextXY("You are our only hope! ",1,1,15],0],1,tb1_font,virtual_1);
|
||||
vmwTextXY("You are our only hope! ",1,1,15,0,1,tb1_font,game_state->virtual_1);
|
||||
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
||||
pauseawhile(6);
|
||||
vmwTextXY("Will you fly our only spaceship ",1,1,15],0],1,tb1_font,virtual_1);
|
||||
vmwTextXY("Will you fly our only spaceship ",1,1,15,0,1,tb1_font,game_state->virtual_1);
|
||||
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
||||
pauseawhile(6);
|
||||
vmwTextXY("and save the human race? ",1,1,15],0],1,tb1_font,virtual_1);
|
||||
vmwTextXY("and save the human race? ",1,1,15,0,1,tb1_font,game_state->virtual_1);
|
||||
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
||||
pauseawhile(6);
|
||||
vmwArbitraryCrossBlit(plb_vaddr2->read,5,16,39,82,
|
||||
plb_vis->write,146,59,plb_vis->stride,
|
||||
stride_factor);
|
||||
pauseawhile(1);
|
||||
vmwArbitraryCrossBlit(plb_vaddr2->read,46,16,39,82,
|
||||
plb_vis->write,146,59,plb_vis->stride,
|
||||
stride_factor);
|
||||
pauseawhile(1);
|
||||
vmwArbitraryCrossBlit(plb_vaddr2->read,87,16,39,82,
|
||||
plb_vis->write,146,59,plb_vis->stride,
|
||||
stride_factor);
|
||||
vmwTextXY("Scratch. Scratch. <Ow that itches>",1,1,9],0],1,tb1_font,virtual_1);
|
||||
vmwArbitraryCrossBlit(game_state->virtual_2,5,16,39,82,
|
||||
game_state->virtual_1,146,59);
|
||||
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
||||
usleep(500000);
|
||||
vmwArbitraryCrossBlit(game_state->virtual_2,46,16,39,82,
|
||||
game_state->virtual_1,146,59);
|
||||
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
||||
usleep(500000);
|
||||
vmwArbitraryCrossBlit(game_state->virtual_2,87,16,39,82,
|
||||
game_state->virtual_1,146,59);
|
||||
vmwTextXY("Scratch. Scratch. <Ow that itches>",1,1,9,0,1,tb1_font,game_state->virtual_1);
|
||||
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
||||
pauseawhile(5);
|
||||
vmwTextXY("I knew you'd do it. Good Luck! ",1,1,15],0],1,tb1_font,virtual_1);
|
||||
vmwTextXY("I knew you'd do it. Good Luck! ",1,1,15,0,1,tb1_font,game_state->virtual_1);
|
||||
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
||||
pauseawhile(6);
|
||||
vmwTextXY("<Huh?> ",1,1,9],0],1,tb1_font,virtual_1);
|
||||
vmwTextXY("<Huh?> ",1,1,9,0,1,tb1_font,game_state->virtual_1);
|
||||
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
||||
pauseawhile(10);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
@ -5,9 +5,16 @@
|
||||
#include <stdlib.h> /* For atexit() */
|
||||
|
||||
/* Setup the Graphics */
|
||||
void *SDL_setupGraphics(int xsize,int ysize,int bpp,int verbose)
|
||||
void *SDL_setupGraphics(int xsize,int ysize,int bpp,int scale,
|
||||
int fullscreen,int verbose)
|
||||
{
|
||||
SDL_Surface *sdl_screen;
|
||||
int mode;
|
||||
|
||||
|
||||
mode=SDL_SWSURFACE;
|
||||
if (fullscreen) mode|=SDL_FULLSCREEN;
|
||||
|
||||
|
||||
/* Initialize the SDL library */
|
||||
if ( SDL_Init(SDL_INIT_VIDEO) < 0 ) {
|
||||
@ -20,10 +27,10 @@ void *SDL_setupGraphics(int xsize,int ysize,int bpp,int verbose)
|
||||
atexit(SDL_Quit);
|
||||
|
||||
/* Initialize the display */
|
||||
sdl_screen = SDL_SetVideoMode(xsize, ysize, 16, SDL_SWSURFACE);
|
||||
sdl_screen = SDL_SetVideoMode(xsize, ysize, 16, mode);
|
||||
if ( sdl_screen == NULL ) {
|
||||
fprintf(stderr, "Couldn't set %dx%dx%d video mode: %s\n",
|
||||
xsize,ysize,bpp,SDL_GetError());
|
||||
xsize*scale,ysize*scale,bpp,SDL_GetError());
|
||||
exit(1);
|
||||
}
|
||||
if (verbose) {
|
||||
@ -72,6 +79,64 @@ void SDL_NoScale16bpp_BlitMem(vmwSVMWGraphState *target_p, vmwVisual *source) {
|
||||
/* Write this out to the screen */
|
||||
SDL_UpdateRect(target, 0, 0, source->xsize, source->ysize);
|
||||
|
||||
}
|
||||
|
||||
/* I should make this generic, but it makes it really slow */
|
||||
void SDL_Double16bpp_BlitMem(vmwSVMWGraphState *target_p, vmwVisual *source) {
|
||||
|
||||
int x,y,Bpp,scale;
|
||||
|
||||
unsigned char *s_pointer,*t_pointer;
|
||||
|
||||
SDL_Surface *target;
|
||||
|
||||
target=(SDL_Surface *)target_p->output_screen;
|
||||
|
||||
scale=target_p->scale;
|
||||
|
||||
if ( SDL_MUSTLOCK(target) ) {
|
||||
if ( SDL_LockSurface(target) < 0 )
|
||||
return;
|
||||
}
|
||||
|
||||
Bpp=target->format->BytesPerPixel;
|
||||
|
||||
s_pointer=source->memory;
|
||||
t_pointer=((Uint8 *)target->pixels);
|
||||
|
||||
for (y=0;y<source->ysize;y++) {
|
||||
for (x=0;x<source->xsize;x++) {
|
||||
|
||||
/* i=0, j=0 */
|
||||
*((Uint16 *) ( (t_pointer)))=
|
||||
source->palette[*(s_pointer)];
|
||||
|
||||
/* i=1, j=0 */
|
||||
*((Uint16 *) ( (t_pointer+(2*target_p->xsize) )))=
|
||||
source->palette[*(s_pointer)];
|
||||
/* i=0, j=1 */
|
||||
*((Uint16 *) ( (t_pointer+2) ))=
|
||||
source->palette[*(s_pointer)];
|
||||
|
||||
/* i=1 j=1 */
|
||||
*((Uint16 *) ( (t_pointer+2+(2*target_p->xsize) )))=
|
||||
source->palette[*(s_pointer)];
|
||||
|
||||
|
||||
s_pointer++; t_pointer+=4;
|
||||
}
|
||||
t_pointer+=2*target_p->xsize;
|
||||
}
|
||||
|
||||
|
||||
/* Update the display */
|
||||
if ( SDL_MUSTLOCK(target) ) {
|
||||
SDL_UnlockSurface(target);
|
||||
}
|
||||
|
||||
/* Write this out to the screen */
|
||||
SDL_UpdateRect(target, 0, 0, target_p->xsize, target_p->ysize);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -2,7 +2,9 @@
|
||||
|
||||
#include <SDL.h>
|
||||
|
||||
void *SDL_setupGraphics(int xsize,int ysize,int bpp,int verbose);
|
||||
void *SDL_setupGraphics(int xsize,int ysize,int bpp,int scale,int fullscreen,
|
||||
int verbose);
|
||||
void SDL_NoScale16bpp_BlitMem(vmwSVMWGraphState *target, vmwVisual *source);
|
||||
void SDL_Double16bpp_BlitMem(vmwSVMWGraphState *target_p, vmwVisual *source);
|
||||
void SDL_clearKeyboardBuffer();
|
||||
int SDL_getInput();
|
||||
|
@ -29,6 +29,7 @@ typedef struct {
|
||||
int xsize;
|
||||
int ysize;
|
||||
int bpp;
|
||||
int scale;
|
||||
void *output_screen;
|
||||
vmwFont *default_font;
|
||||
} vmwSVMWGraphState;
|
||||
@ -107,12 +108,14 @@ void vmwUnFade(vmwVisual *source);
|
||||
/* From vmw_setup.c */
|
||||
|
||||
|
||||
extern void *(*vmwSetupGraphics)(int xsize,int ysize, int bpp, int verbose);
|
||||
extern void *(*vmwSetupGraphics)(int xsize,int ysize, int bpp, int scale,
|
||||
int fullscreen,int verbose);
|
||||
extern void (*vmwBlitMemToDisplay)(vmwSVMWGraphState *display, vmwVisual *source);
|
||||
extern void (*vmwClearKeyboardBuffer)(void);
|
||||
extern int (*vmwGetInput)(void);
|
||||
vmwSVMWGraphState *vmwSetupSVMWGraph(int display_type,int xsize,int ysize,
|
||||
int bpp,int verbose);
|
||||
int bpp,int scale,int fullscreen,
|
||||
int verbose);
|
||||
vmwVisual *vmwSetupVisual(int xsize,int ysize,int palette_size);
|
||||
|
||||
/* From vmw_sprite.c */
|
||||
@ -123,8 +126,11 @@ vmwSprite *vmwGetSprite(int x, int y,
|
||||
void vmwPutSprite(vmwSprite *sprite,int x,int y,
|
||||
vmwVisual *screen);
|
||||
|
||||
void vmwPutPartialSprite(vmwVisual *destination,
|
||||
vmwSprite *sprite,
|
||||
int x_start,int y_start,
|
||||
int x_stop, int y_stop);
|
||||
void vmwPutSpriteNonTransparent(vmwSprite *sprite,int x,int y,
|
||||
vmwVisual *screen);
|
||||
|
||||
void vmwPutPartialSprite(vmwVisual *destination,
|
||||
vmwSprite *sprite,int x,int y,
|
||||
int x_start,int x_stop,
|
||||
int y_start,int y_stop);
|
||||
|
||||
|
@ -6,13 +6,15 @@
|
||||
#include <stdio.h> /* For printf */
|
||||
#include <stdlib.h> /* For Memory Allocation */
|
||||
|
||||
void *(*vmwSetupGraphics)(int xsize,int ysize, int bpp, int verbose);
|
||||
void *(*vmwSetupGraphics)(int xsize,int ysize, int bpp,
|
||||
int scale, int fullscreen,int verbose);
|
||||
void (*vmwBlitMemToDisplay)(vmwSVMWGraphState *display, vmwVisual *source);
|
||||
void (*vmwClearKeyboardBuffer)(void);
|
||||
int (*vmwGetInput)(void);
|
||||
|
||||
vmwSVMWGraphState *vmwSetupSVMWGraph(int display_type,int xsize,int ysize,
|
||||
int bpp,int verbose) {
|
||||
int bpp,int scale,int fullscreen,
|
||||
int verbose) {
|
||||
|
||||
vmwSVMWGraphState *temp_state;
|
||||
|
||||
@ -23,11 +25,16 @@ vmwSVMWGraphState *vmwSetupSVMWGraph(int display_type,int xsize,int ysize,
|
||||
|
||||
switch (display_type) {
|
||||
case VMW_SDLTARGET: vmwSetupGraphics=SDL_setupGraphics;
|
||||
vmwBlitMemToDisplay=SDL_NoScale16bpp_BlitMem;
|
||||
if (scale==1)
|
||||
vmwBlitMemToDisplay=SDL_NoScale16bpp_BlitMem;
|
||||
else
|
||||
vmwBlitMemToDisplay=SDL_Double16bpp_BlitMem;
|
||||
|
||||
vmwClearKeyboardBuffer=SDL_clearKeyboardBuffer;
|
||||
vmwGetInput=SDL_getInput;
|
||||
temp_state->output_screen=
|
||||
vmwSetupGraphics(xsize,ysize,bpp,verbose);
|
||||
vmwSetupGraphics(xsize,ysize,bpp,scale,
|
||||
fullscreen,verbose);
|
||||
break;
|
||||
default: printf("ERROR! Unknown Display Target %i.\n",display_type);
|
||||
return NULL;
|
||||
@ -36,6 +43,7 @@ vmwSVMWGraphState *vmwSetupSVMWGraph(int display_type,int xsize,int ysize,
|
||||
temp_state->xsize=xsize;
|
||||
temp_state->ysize=ysize;
|
||||
temp_state->bpp=bpp;
|
||||
temp_state->scale=scale;
|
||||
temp_state->default_font=NULL;
|
||||
|
||||
return temp_state;
|
||||
|
@ -46,23 +46,52 @@ void vmwPutSprite(vmwSprite *sprite,int x,int y,
|
||||
}
|
||||
}
|
||||
|
||||
void vmwPutSpriteNonTransparent(vmwSprite *sprite,int x,int y,
|
||||
vmwVisual *screen) {
|
||||
|
||||
unsigned char *temp_source,*temp_destination;
|
||||
int xx,yy;
|
||||
|
||||
temp_source=sprite->spritedata;
|
||||
temp_destination= (unsigned char *)(screen->memory)+(y*screen->xsize+x);
|
||||
|
||||
for (yy=0;yy<sprite->ysize;yy++) {
|
||||
for (xx=0;xx<sprite->xsize;xx++) {
|
||||
*(temp_destination)=*(temp_source);
|
||||
temp_source++;
|
||||
temp_destination++;
|
||||
}
|
||||
temp_destination+=((screen->xsize-sprite->xsize));
|
||||
}
|
||||
}
|
||||
|
||||
void vmwPutPartialSprite(vmwVisual *destination,
|
||||
vmwSprite *sprite,
|
||||
int x_start,int y_start,
|
||||
int x_stop, int y_stop)
|
||||
{ /* x_start/stop not implemented yet */
|
||||
// int xx,yy;
|
||||
/*
|
||||
* dest+=(dest_stride*y);
|
||||
* for(yy=0;yy<h;yy++){
|
||||
* for(xx=0;xx<w;xx++)
|
||||
* if ((*(src+xx)) && ((yy>=y_start) && (yy<=y_stop)) )
|
||||
* memcpy(dest+(stride_factor*(xx+x)),(src+xx),stride_factor);
|
||||
* // **(dest+xx+x)=15;
|
||||
* src+=w;
|
||||
* dest+=dest_stride;
|
||||
* }
|
||||
* */
|
||||
return;
|
||||
vmwSprite *sprite,int x,int y,
|
||||
int x_start,int x_stop,
|
||||
int y_start, int y_stop)
|
||||
{
|
||||
|
||||
unsigned char *temp_source,*temp_destination;
|
||||
int xx,yy;
|
||||
|
||||
temp_source=sprite->spritedata;
|
||||
temp_destination=(unsigned char *)(destination->memory)+(y*destination->xsize+x);
|
||||
|
||||
for (yy=0;yy<sprite->ysize;yy++) {
|
||||
for (xx=0;xx<sprite->xsize;xx++) {
|
||||
/* Only draw if in bounds */
|
||||
if ( (yy+y>=y_start) && (yy+y<=y_stop) &&
|
||||
(xx+x>=x_start) && (xx+x<=x_stop) ) {
|
||||
|
||||
if (*temp_source!=0) {
|
||||
*(temp_destination)=*(temp_source);
|
||||
}
|
||||
}
|
||||
temp_source++;
|
||||
temp_destination++;
|
||||
}
|
||||
temp_destination+=((destination->xsize-sprite->xsize));
|
||||
}
|
||||
return;
|
||||
|
||||
}
|
||||
|
50
tb1.c
50
tb1.c
@ -1,6 +1,6 @@
|
||||
/****************************************************************\
|
||||
\* TOM BOMBEM AND THE INVASION OF THE INANIMATE_OBJECTS */
|
||||
/* version 2.9.2 15 September 2000 *\
|
||||
/* version 2.9.5 16 September 2000 *\
|
||||
\* by Vince Weaver weave@eng.umd.edu */
|
||||
/* *\
|
||||
\* Originally written in Pascal and x86 assembly for DOS */
|
||||
@ -10,7 +10,7 @@
|
||||
\* This source is released under the GPL */
|
||||
/****************************************************************/
|
||||
|
||||
#define TB1_VERSION "2.9.2"
|
||||
#define TB1_VERSION "2.9.5"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h> /* for calloc */
|
||||
@ -36,13 +36,15 @@
|
||||
int command_line_help(int show_version,char *runas)
|
||||
{
|
||||
if (!show_version) {
|
||||
printf("Usage: %s [-force8bpp] [-nosound] [-readonly]"
|
||||
printf("Usage: %s [-8bpp] [-double] [-fullscreen] [-nosound] [-readonly]"
|
||||
" [-version] [-?]\n\n",runas);
|
||||
printf(" -force8bpp : force to run in 8bpp mode\n");
|
||||
printf(" -nosound : disables sound within game\n");
|
||||
printf(" -readonly : don't try to write files to disk\n");
|
||||
printf(" -version : print version\n");
|
||||
printf(" -? : print this help message\n");
|
||||
printf(" -8bpp : force to run in 8bpp mode\n");
|
||||
printf(" -double : play in 640x480 mode\n");
|
||||
printf(" -fullscreen : play in fullscreen mode (if available)\n");
|
||||
printf(" -nosound : disables sound within game\n");
|
||||
printf(" -readonly : don't try to write files to disk\n");
|
||||
printf(" -version : print version\n");
|
||||
printf(" -? : print this help message\n");
|
||||
printf("\n");
|
||||
}
|
||||
return 0;
|
||||
@ -54,7 +56,7 @@ int main(int argc,char **argv)
|
||||
int i,grapherror,reloadpic=0;
|
||||
int custom_palette[256];
|
||||
int ch,x,barpos,time_sec;
|
||||
int scale=1;
|
||||
int scale=1,fullscreen=0;
|
||||
FILE *fff;
|
||||
vmwVisual *virtual_1,*virtual_2,*virtual_3;
|
||||
|
||||
@ -92,7 +94,10 @@ int main(int argc,char **argv)
|
||||
command_line_help(0,argv[0]); return 5; break;
|
||||
case 'v':
|
||||
command_line_help(1,argv[0]); return 5; break;
|
||||
|
||||
case 'f':
|
||||
fullscreen=1; break;
|
||||
case 'd':
|
||||
scale=2; break;
|
||||
case 'n':
|
||||
game_state->sound_enabled=0;
|
||||
printf(" + Sound totally disabled\n");
|
||||
@ -116,17 +121,17 @@ int main(int argc,char **argv)
|
||||
|
||||
/* Find the Data */
|
||||
/* FIXME : User Defined Path Info*/
|
||||
if ( (fff=fopen("./data/data_files_here","r"))!=NULL) {
|
||||
if ( (fff=fopen("./data/tb1_data_files_here","r"))!=NULL) {
|
||||
strncpy(game_state->path_to_data,"./data/",20);
|
||||
}
|
||||
else if ( (fff=fopen("/usr/local/games/tb1/data/data_files_here","r"))
|
||||
else if ( (fff=fopen("/usr/local/games/tb1/data/tb1_data_files_here","r"))
|
||||
!=NULL) {
|
||||
strncpy(game_state->path_to_data,"/usr/local/games/tb1/data/",40);
|
||||
}
|
||||
else {
|
||||
char tempst[200];
|
||||
|
||||
sprintf(tempst,"%s/.tb1/data/data_files_here",getenv("HOME"));
|
||||
sprintf(tempst,"%s/.tb1/data/tb1_data_files_here",getenv("HOME"));
|
||||
if ( (fff=fopen(tempst,"r"))!=NULL) {
|
||||
sprintf(game_state->path_to_data,"%s/.tb1/data/",getenv("HOME"));
|
||||
}
|
||||
@ -155,17 +160,28 @@ int main(int argc,char **argv)
|
||||
|
||||
/* Load sounds */
|
||||
initSound(game_state->path_to_data);
|
||||
loadSound(tb1_data_file("vmwfan.mod",game_state->path_to_data));
|
||||
loadSound(tb1_data_file("music/vmwfan.mod",game_state->path_to_data));
|
||||
|
||||
printf(" + Loaded sounds...\n");
|
||||
|
||||
/* Setup Graphics */
|
||||
|
||||
if (scale==1) {
|
||||
if ( (game_state->graph_state=vmwSetupSVMWGraph(VMW_SDLTARGET,
|
||||
320*scale,200*scale,
|
||||
16,1))==NULL) {
|
||||
320,200,
|
||||
16,scale,fullscreen,1))==NULL) {
|
||||
fprintf(stderr,"ERROR: Couldn't get display set up properly.\n");
|
||||
return VMW_ERROR_DISPLAY;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if ( (game_state->graph_state=vmwSetupSVMWGraph(VMW_SDLTARGET,
|
||||
640,480,
|
||||
16,scale,fullscreen,1))==NULL) {
|
||||
fprintf(stderr,"ERROR: Couldn't get display set up properly.\n");
|
||||
return VMW_ERROR_DISPLAY;
|
||||
}
|
||||
}
|
||||
|
||||
/* Load the tom bombem font */
|
||||
game_state->graph_state->default_font=
|
||||
@ -234,7 +250,7 @@ int main(int argc,char **argv)
|
||||
pauseawhile(5);
|
||||
|
||||
stopSound();
|
||||
loadSound(tb1_data_file("weave1.mod",game_state->path_to_data));
|
||||
loadSound(tb1_data_file("music/weave1.mod",game_state->path_to_data));
|
||||
|
||||
|
||||
/* Clear the Screen and get ready for the Menu */
|
||||
|
1
tools/README
Normal file
1
tools/README
Normal file
@ -0,0 +1 @@
|
||||
Tools that will be useful for developing new levels of tb1.
|
103
tools/lev2edit.c
103
tools/lev2edit.c
@ -1,12 +1,3 @@
|
||||
/****************************************************************\
|
||||
\* TOM BOMBEM AND THE INVASION OF THE INANIMATE_OBJECTS */
|
||||
/* version 2.9.0 February 28, 1998 *\
|
||||
\* by Vince Weaver weave@eng.umd.edu */
|
||||
/* *\
|
||||
\* Originally written in Pascal and x86 assembly for DOS */
|
||||
/* Ported to Linux, C, and ggi late 1997-early 1998 *\
|
||||
\* This source is released under the GPL */
|
||||
/****************************************************************/
|
||||
|
||||
#define TB1_VERSION "2.9.0"
|
||||
|
||||
@ -19,8 +10,8 @@
|
||||
#include <sys/time.h>
|
||||
|
||||
#include <ggi/libggi.h>
|
||||
#include "svmwgrap.h"
|
||||
#include "tblib.h"
|
||||
#include "../svmwgrap.h"
|
||||
#include "../gtblib.h"
|
||||
|
||||
/* Exported Global Variables */
|
||||
ggi_visual_t vis,vaddr,vaddr2;
|
||||
@ -38,6 +29,13 @@ char path_to_data[256];
|
||||
struct timeval time_info;
|
||||
struct timezone dontcare;
|
||||
|
||||
/*----------------*/
|
||||
|
||||
int game_map[12][200];
|
||||
int max_x,max_y,u_x,u_y,x_pos=0,y_pos=0,x,y;
|
||||
char tempst[40];
|
||||
|
||||
|
||||
/* Setup the Graphics */
|
||||
int setup_graphics(int force_8bpp)
|
||||
{
|
||||
@ -188,7 +186,7 @@ int main(int argc,char **argv)
|
||||
srandom(time(NULL));
|
||||
|
||||
/* Load the tom bombem font */
|
||||
tb1_font=LoadVMWFont(tb1_data_file("tbfont.tb1",(char *)tempst),8,16,256);
|
||||
tb1_font=LoadVMWFont("../data/tbfont.tb1",8,16,256);
|
||||
|
||||
/* Setup Graphics */
|
||||
if (setup_graphics(force_8bpp)==2) {
|
||||
@ -210,58 +208,36 @@ int main(int argc,char **argv)
|
||||
|
||||
Load the title screen */
|
||||
grapherror=GGILoadPicPacked(0,0,vis,1,1,
|
||||
tb1_data_file("tbomb1.tb1",(char *)tempst),
|
||||
"../data/tbomb1.tb1",
|
||||
(ggi_color *)&eight_bit_pal,
|
||||
(ggi_pixel *)&tb1_pal,color_depth);
|
||||
grapherror=GGILoadPicPacked(0,0,vaddr2,1,1,
|
||||
tb1_data_file("tbomb1.tb1",(char *)tempst),
|
||||
"../data/tbomb1.tb1",
|
||||
(ggi_color *)&eight_bit_pal,
|
||||
(ggi_pixel *)&tb1_pal,color_depth);
|
||||
ggiFlush(vis);
|
||||
ggiFlush(vaddr2);
|
||||
pauseawhile(5);
|
||||
|
||||
max_x=12;max_y=200;
|
||||
x_pos=0; y_pos=0;
|
||||
|
||||
for(x=0;x<max_x;x++)
|
||||
for(y=0;y<max_y;y++)
|
||||
game_map[x][y]=(rand()%26)+65;
|
||||
|
||||
/* Main Menu Loop */
|
||||
while (1) {
|
||||
|
||||
vmwCrossBlit(plb_vis->write,plb_vaddr2->read,plb_vis->stride,200);
|
||||
vmwCrossBlit(plb_vis->write,plb_vaddr->read,plb_vis->stride,200);
|
||||
ggiFlush(vis);
|
||||
|
||||
barpos=0;
|
||||
VMWtextxy("F1 HELP",0,190,tb1_pal[9],tb1_pal[7],0,tb1_font,vis);
|
||||
coolbox(117,61,199,140,1,vis);
|
||||
|
||||
ggiFlush(vis);
|
||||
ch=0;
|
||||
while(ch!=TB_ENTER){
|
||||
if (barpos==0) VMWtextxy("NEW GAME",123,67,
|
||||
tb1_pal[32],tb1_pal[0],1,tb1_font,vis);
|
||||
else VMWtextxy("NEW GAME",123,67,
|
||||
tb1_pal[32],tb1_pal[7],1,tb1_font,vis);
|
||||
if (barpos==1) VMWtextxy("OPTIONS",123,77,
|
||||
tb1_pal[32],tb1_pal[0],1,tb1_font,vis);
|
||||
else VMWtextxy("OPTIONS",123,77,
|
||||
tb1_pal[32],tb1_pal[7],1,tb1_font,vis);
|
||||
if (barpos==2) VMWtextxy("ABOUT",123,87,
|
||||
tb1_pal[32],tb1_pal[0],1,tb1_font,vis);
|
||||
else VMWtextxy("ABOUT",123,87,
|
||||
tb1_pal[32],tb1_pal[7],1,tb1_font,vis);
|
||||
if (barpos==3) VMWtextxy("LOAD GAME",123,97,
|
||||
tb1_pal[32],tb1_pal[0],1,tb1_font,vis);
|
||||
else VMWtextxy("LOAD GAME",123,97,
|
||||
tb1_pal[32],tb1_pal[7],1,tb1_font,vis);
|
||||
if (barpos==4) VMWtextxy("STORY",123,107,
|
||||
tb1_pal[32],tb1_pal[0],1,tb1_font,vis);
|
||||
else VMWtextxy("STORY",123,107,
|
||||
tb1_pal[32],tb1_pal[7],1,tb1_font,vis);
|
||||
if (barpos==5) VMWtextxy("CREDITS",123,117,
|
||||
tb1_pal[32],tb1_pal[0],1,tb1_font,vis);
|
||||
else VMWtextxy("CREDITS",123,117,
|
||||
tb1_pal[32],tb1_pal[7],1,tb1_font,vis);
|
||||
if (barpos==6) VMWtextxy("QUIT",123,127,
|
||||
tb1_pal[32],tb1_pal[0],1,tb1_font,vis);
|
||||
else VMWtextxy("QUIT",123,127,
|
||||
tb1_pal[32],tb1_pal[7],1,tb1_font,vis);
|
||||
ggiFlush(vis);
|
||||
|
||||
|
||||
|
||||
while( ((ch=get_input())==0)) {
|
||||
usleep(10);
|
||||
@ -269,15 +245,26 @@ int main(int argc,char **argv)
|
||||
|
||||
/* Change menu position based on key pressed */
|
||||
ch2=toupper(ch);
|
||||
if ((ch==TB_DOWN)||(ch==TB_RIGHT)) barpos++;
|
||||
if ((ch==TB_UP) || (ch==TB_LEFT)) barpos--;
|
||||
if (ch==TB_F1) {barpos=10; ch=TB_ENTER;} /*F1*/
|
||||
if (ch2=='N') barpos=0; /*N*/
|
||||
if (ch2=='O') barpos=1; /*O*/
|
||||
if (ch2=='A') barpos=2; /*A*/
|
||||
if (ch2=='L') barpos=3; /*L*/
|
||||
if (ch2=='S') barpos=4; /*S*/
|
||||
if (ch2=='C') barpos=5; /*C*/
|
||||
if (ch==TB_DOWN) y_pos++;
|
||||
if (ch==TB_RIGHT) x_pos++;
|
||||
if (ch==TB_UP) y_pos--;
|
||||
if (ch==TB_LEFT) x_pos--;
|
||||
if (y_pos<0) y_pos=0; if(x_pos<0) x_pos=0;
|
||||
if (y_pos>(max_y-20)) y_pos=max_y-20;
|
||||
if (x_pos>(max_x)) x_pos=max_x;
|
||||
|
||||
ggiSetGCForeground(vaddr,tb1_pal[0]);
|
||||
ggiFillscreen(vaddr);
|
||||
|
||||
|
||||
for(x=0;x<max_x;x++)
|
||||
for(y=y_pos;y<(y_pos+20);y++) {
|
||||
sprintf(tempst,"%c",game_map[x][y]);
|
||||
VMWtextxy(tempst,x*20,(y-y_pos)*10,
|
||||
tb1_pal[32],tb1_pal[0],1,tb1_font,vaddr);
|
||||
|
||||
}
|
||||
|
||||
if (ch2=='Q') barpos=6; /*Q*/
|
||||
if (ch==27){ /* escape */
|
||||
barpos=6;
|
||||
@ -285,8 +272,8 @@ int main(int argc,char **argv)
|
||||
}
|
||||
if(barpos==7) barpos=0;
|
||||
if(barpos<0) barpos=6;
|
||||
}
|
||||
|
||||
/* Run whatever it was that the person pressed */
|
||||
|
||||
if(barpos==6) quit();
|
||||
}
|
||||
}
|
||||
|
0
tools/pcx2ppp.c
Normal file
0
tools/pcx2ppp.c
Normal file
Loading…
Reference in New Issue
Block a user