More changes.

Sadly my archives are all mixed up
This commit is contained in:
Vince Weaver 1999-03-27 22:38:00 -05:00
parent de396082e5
commit a276e7e57a
5 changed files with 384 additions and 273 deletions

25
devel/brodsky_conv.c Normal file
View File

@ -0,0 +1,25 @@
#include <stdio.h>
/* Converts SMIX (ethan brodsky) sound samples back to standard
* raw audio format
*/
int main(int argc,char **argv)
{
FILE *fff;
int ch;
fff=fopen(argv[1],"r");
if(fff==NULL) {
printf("\n\nUsage '%s filename'\n\n",argv[0]);
return 1;
}
while(!feof(fff)) {
ch=fgetc(fff);
printf("%c",(ch+128));
}
fclose(fff);
}

View File

@ -6,12 +6,11 @@
#include <stdio.h>
#include <sys/time.h>
#include <unistd.h>
#include <ggi/libggi.h>
#include <ggi/ggi.h>
#include <stdlib.h>
#include "svmwgrap.h"
#include "levels.h"
#include "tblib.h"
#include "gtblib.h"
#include "soundIt.h"
/* Define this to get a frames per second readout */
@ -31,9 +30,9 @@ extern ggi_visual_t vaddr;
extern ggi_visual_t vaddr2;
extern ggi_color eight_bit_pal[256];
extern ggi_pixel tb1_pal[256];
extern ggi_directbuffer_t dbuf_vis;
/*extern ggi_directbuffer_t dbuf_vis;
extern ggi_directbuffer_t dbuf_vaddr;
extern ggi_directbuffer_t dbuf_vaddr2;
extern ggi_directbuffer_t dbuf_vaddr2;*/
extern ggi_pixellinearbuffer *plb_vis;
extern ggi_pixellinearbuffer *plb_vaddr;
extern ggi_pixellinearbuffer *plb_vaddr2;
@ -245,7 +244,7 @@ void beforeboss()
(ggi_pixel *)&tb1_pal,color_depth);
ggiSetGCForeground(vis,0);
ggiDrawBox(vis,0,0,320,200);
vmwArbitraryCrossBlit(plb_vaddr->read,0,5,58,37,
/* vmwArbitraryCrossBlit(plb_vaddr->read,0,5,58,37,
plb_vis->write,10,10,plb_vis->stride,stride_factor);
VMWsmalltextxy("HUMAN!",70,10,tb1_pal[2],tb1_pal[0],1,tb1_font,vis);
VMWsmalltextxy("WHAT ARE YOU DOING?!",70,20,tb1_pal[2],
@ -275,7 +274,7 @@ void beforeboss()
tb1_pal[2],tb1_pal[0],1,tb1_font,vis);
VMWsmalltextxy("TO DESTROY MY SHIP! DIE EARTH SCUM!!!!",70,140,
tb1_pal[2],tb1_pal[0],1,tb1_font,vis);
pauseawhile(5);
pauseawhile(5);*/
}
/* The Sequence After You Defeat (hopefully) the Boss */
@ -283,7 +282,7 @@ void afterboss()
{
char *tempst[300];
GGILoadPicPacked(0,0,vaddr,0,1,
/*GGILoadPicPacked(0,0,vaddr,0,1,
tb1_data_file("viewscr.tb1",(char *)tempst),
(ggi_color *)&eight_bit_pal,
(ggi_pixel *)&tb1_pal,color_depth);
@ -325,7 +324,7 @@ void afterboss()
tb1_pal[9],tb1_pal[0],1,tb1_font,vis);
VMWsmalltextxy("WELL AT LEAST I HAVE SOME SMALLER SPARES.",70,160,
tb1_pal[9],tb1_pal[0],1,tb1_font,vis);
pauseawhile(5);
pauseawhile(5);*/
}
/* The Main Level One */
@ -397,7 +396,7 @@ void levelone(int *level,int *shields,int *score)
/* Setup and draw the sidebar */
setupsidebar(*score,0,*shields);
ggiSetGCForeground(vis,tb1_pal[0]);
vmwCrossBlit(plb_vaddr->write,plb_vaddr2->read,plb_vaddr->stride,200);
/* vmwCrossBlit(plb_vaddr->write,plb_vaddr2->read,plb_vaddr->stride,200);*/
sprintf(tempst,"%d",*level);
ggiDrawBox(vaddr2,251,52,63,7);
VMWtextxy(tempst,307,51,tb1_pal[12],tb1_pal[0],0,tb1_font,vaddr2);
@ -406,12 +405,12 @@ void levelone(int *level,int *shields,int *score)
ggiSetGCForeground(vaddr2,tb1_pal[0]);
ggiDrawBox(vaddr2,0,0,320,400);
for(i=0;i<100;i++) {
vmwPutSprite(shapetable[11],18,18,stride_factor,
/*vmwPutSprite(shapetable[11],18,18,stride_factor,
plb_vaddr2->write,rand()%238,
rand()%400,plb_vaddr2->stride);
vmwPutSprite(shapetable[12],18,18,stride_factor,
plb_vaddr2->write,rand()%238,
rand()%400,plb_vaddr2->stride);
rand()%400,plb_vaddr2->stride);*/
}
change_shields(shields);
@ -435,6 +434,7 @@ void levelone(int *level,int *shields,int *score)
if (speed_factor>1) howmuchscroll-=speed_factor;
else howmuchscroll--;
if (howmuchscroll<0) howmuchscroll=399;
#if 0
if (howmuchscroll>199) {
vmwArbitraryCrossBlit(plb_vaddr2->read,0,howmuchscroll,240,
400-howmuchscroll,
@ -450,7 +450,7 @@ void levelone(int *level,int *shields,int *score)
plb_vaddr->write,0,0,plb_vaddr->stride,
stride_factor);
}
#endif
/* Check for Collisions */
for(i=0;i<5;i++) {
@ -478,10 +478,10 @@ void levelone(int *level,int *shields,int *score)
if (enemy[i].exploding) {
enemy[i].explodeprogress++;
if (enemy[i].explodeprogress<=5)
vmwPutSprite(shapetable[enemy[i].explodeprogress+14],
/* vmwPutSprite(shapetable[enemy[i].explodeprogress+14],
18,18,stride_factor,
plb_vaddr->write,enemy[i].x,enemy[i].y,
plb_vaddr->stride);
plb_vaddr->stride)*/;
else if (enemy[i].dead) {
enemy[i].out=0;
enemy[i].exploding=0;
@ -496,18 +496,18 @@ void levelone(int *level,int *shields,int *score)
if (speed_factor>1) bullet[i].y-=(5*speed_factor);
else bullet[i].y-=5;
if (bullet[i].y<5) bullet[i].out=0;
else vmwPutSprite(shapetable[0],18,18,stride_factor,
else /*vmwPutSprite(shapetable[0],18,18,stride_factor,
plb_vaddr->write,bullet[i].x,bullet[i].y,
plb_vaddr->stride);
plb_vaddr->stride)*/;
}
}
/* MOVE ENEMIES */
for(i=0;i<5;i++) {
if ((enemy[i].out) && (!enemy[i].dead)) {
vmwPutSprite(shapetable[enemy[i].kind-1],18,18,stride_factor,
/*vmwPutSprite(shapetable[enemy[i].kind-1],18,18,stride_factor,
plb_vaddr->write,enemy[i].x,enemy[i].y,
plb_vaddr->stride);
plb_vaddr->stride)*/;
if (speed_factor==1) enemy[i].x+=enemy[i].xspeed;
else enemy[i].x+=(enemy[i].xspeed*speed_factor);
/* Check Position */
@ -578,9 +578,9 @@ void levelone(int *level,int *shields,int *score)
bullet[j].out=1;
bullet[j].x=shipx+15;
bullet[j].y=165;
vmwPutSprite(shapetable[0],18,18,stride_factor,
/*vmwPutSprite(shapetable[0],18,18,stride_factor,
plb_vaddr->write,bullet[j].x,
bullet[j].y,plb_vaddr->stride);
bullet[j].y,plb_vaddr->stride);*/
j=3;
}
}
@ -592,22 +592,22 @@ void levelone(int *level,int *shields,int *score)
if (shipx<1) shipx=1;
if (shipx>190) shipx=190;
switch(shipframe) {
case 1: vmwPutSprite(bigship1,48,30,stride_factor,
case 1: /*vmwPutSprite(bigship1,48,30,stride_factor,
plb_vaddr->write,shipx,165,
plb_vaddr->stride); break;
case 3: vmwPutSprite(bigship2,48,30,stride_factor,
plb_vaddr->stride);*/ break;
case 3: /*vmwPutSprite(bigship2,48,30,stride_factor,
plb_vaddr->write,shipx,165,
plb_vaddr->stride); break;
plb_vaddr->stride); */ break;
case 2:
case 4: vmwPutSprite(bigship3,48,30,stride_factor,
case 4: /*vmwPutSprite(bigship3,48,30,stride_factor,
plb_vaddr->write,shipx,165,
plb_vaddr->stride); break;
plb_vaddr->stride);*/ break;
}
shipframe++;
if (shipframe==5) shipframe=1;
/* Flip Pages */
vmwCrossBlit(plb_vis->write,plb_vaddr->read,plb_vis->stride,200);
/*vmwCrossBlit(plb_vis->write,plb_vaddr->read,plb_vis->stride,200);*/
ggiFlush(vis);
/* Calculate how much time has passed */
@ -660,21 +660,21 @@ void littleopener()
vmwGetSprite(vaddr,30,178,15,18,ship2);
ggiSetGCForeground(vis,tb1_pal[0]);
ggiDrawBox(vaddr,0,178,319,21);
vmwCrossBlit(plb_vis->write,plb_vaddr->read,plb_vis->stride,200);
vmwCrossBlit(plb_vaddr2->write,plb_vaddr->read,plb_vaddr->stride,200);
/*vmwCrossBlit(plb_vis->write,plb_vaddr->read,plb_vis->stride,200);
vmwCrossBlit(plb_vaddr2->write,plb_vaddr->read,plb_vaddr->stride,200);*/
for(i=100;i>0;i--) {
vmwArbitraryCrossBlit(plb_vaddr2->read,0,95,320,40,
/* vmwArbitraryCrossBlit(plb_vaddr2->read,0,95,320,40,
plb_vaddr->write,0,95,
plb_vaddr->stride,stride_factor);
vmwPutSprite(ship2,15,18,stride_factor,
plb_vaddr->write,i*2,100,plb_vaddr->stride);
vmwArbitraryCrossBlit(plb_vaddr->read,0,95,320,40,
plb_vis->write,0,95,plb_vaddr->stride,
stride_factor);
stride_factor);*/
usleep(30000);
if (get_input()!=0) break;
}
vmwCrossBlit(plb_vis->write,plb_vaddr2->read,plb_vis->stride,200);
/* vmwCrossBlit(plb_vis->write,plb_vaddr2->read,plb_vis->stride,200);*/
VMWtextxy(">KCHK< TOM! WHERE ARE YOU GOING?",5,180,tb1_pal[15],tb1_pal[0],1,tb1_font,vis);
ggiFlush(vis);
pauseawhile(3);
@ -682,18 +682,18 @@ void littleopener()
VMWtextxy("Ooops. ",5,180,tb1_pal[24],tb1_pal[0],1,tb1_font,vis);
pauseawhile(3);
for(i=0;i<151;i++) {
vmwArbitraryCrossBlit(plb_vaddr2->read,0,95,320,40,
/*vmwArbitraryCrossBlit(plb_vaddr2->read,0,95,320,40,
plb_vaddr->write,0,95,plb_vaddr->stride,
stride_factor);
vmwPutSprite(ship1,15,18,stride_factor,
plb_vaddr->write,i*2,100,plb_vaddr->stride);
vmwArbitraryCrossBlit(plb_vaddr->read,0,95,320,40,
plb_vis->write,0,95,plb_vaddr->stride,
stride_factor);
stride_factor);*/
usleep(30000);
if (get_input()!=0) break;
}
vmwCrossBlit(plb_vis->write,plb_vaddr2->read,plb_vis->stride,200);
/* vmwCrossBlit(plb_vis->write,plb_vaddr2->read,plb_vis->stride,200);*/
ggiSetGCForeground(vis,tb1_pal[0]);
ggiDrawBox(vis,0,0,320,200);
GGILoadPicPacked(0,0,vis,1,0,

View File

@ -2,7 +2,7 @@
#include <stdlib.h>
#include <time.h>
#include <unistd.h>
#include <ggi/libggi.h>
#include <ggi/ggi.h>
/*var unfadered:array[0..255] of byte;
@ -66,7 +66,6 @@ int vmwArbitraryCrossBlit(char *src,int x1,int y1,int w,int h,
return 0;
}
int vmwPutSprite(int *src,int w,int h,int stride_factor,
char *dest,int x,int y,int dest_stride)
{
@ -83,25 +82,6 @@ int vmwPutSprite(int *src,int w,int h,int stride_factor,
}
int vmwPutPartialSprite(int *src,int w,int h,int stride_factor,
char *dest,int x,int y,int dest_stride,
int x_start,int x_stop,int y_start,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 0;
}
int vmwGetSprite(ggi_visual_t visual,int x,int y,int w,int h,
int *sprite)
{
@ -287,7 +267,7 @@ int GGILoadPicPacked(int x1,int y1,ggi_visual_t vis
}
else {
for(i=0;i<256;i++) tb1_pal[i]=(ggi_pixel)i;
ggiSetPaletteVec(vis,0,256,eight_bit_pal);
/*ggiSetPaletteVec(vis,0,256,eight_bit_pal);*/
}
}
x=x1;

64
tb1.c
View File

@ -18,9 +18,9 @@
#include <unistd.h>
#include <sys/time.h>
#include <ggi/libggi.h>
#include <ggi/ggi.h>
#include "svmwgrap.h"
#include "gtblib.h"
#include "tblib.h"
/* Exported Global Variables */
@ -30,7 +30,7 @@ uint white;
ggi_color eight_bit_pal[256];
ggi_pixel tb1_pal[256];
int color_depth;
ggi_directbuffer_t dbuf_vis,dbuf_vaddr,dbuf_vaddr2;
ggi_directbuffer *dbuf_vis,*dbuf_vaddr,*dbuf_vaddr2;
ggi_pixellinearbuffer *plb_vis = NULL,*plb_vaddr= NULL,*plb_vaddr2=NULL;
int stride_factor=1;
int sound_enabled=1,sound_possible=1,read_only_mode=0;
@ -46,9 +46,20 @@ int setup_graphics(int force_8bpp)
ggi_mode mode;
int vx,vy,sx,sy;
ggiInit();
if (ggiInit()) {
fprintf(stderr,"Cannot initialize libGGI!\n");
return 1;
}
vis=ggiOpen(NULL);
if(!vis) {
fprintf(stderr,"Cannot open default visual!\n");
ggiExit();
return 1;
}
/* Do I really want to do this? */
ggiSetFlags(vis, GGIFLAG_ASYNC);
if (force_8bpp)
err=ggiSetGraphMode(vis,320,200,320,200,GT_8BIT);
else
@ -56,9 +67,16 @@ int setup_graphics(int force_8bpp)
if (err) {
fprintf(stderr,"ERROR! Problem opening 320x200 vis\n\n");
return 2;
}
}
mode.frames=3;
ggiGetMode(vis,&mode);
if (ggiGetMode(vis,&mode)) {
fprintf(stderr,"Cannot set mode!\n");
ggiClose(vis);
ggiExit();
return 1;
}
vx=mode.virt.x; vy=mode.virt.y;
sx=mode.visible.x;sy=mode.visible.y;
switch (mode.graphtype) {
@ -74,36 +92,39 @@ int setup_graphics(int force_8bpp)
printf(" + Opened a %d x %d (%d x %d) mode with %d bpp\n",
sx,sy,vx,vy,color_depth);
err = ggiDBGetBuffer (vis, &dbuf_vis);
if (err) {
/*dbuf_vis=ggiDBGetBuffer(vis,0);*/
/*err = ggiDBGetBuffer (vis, &dbuf_vis);*/
/*if (!(dbuf_vis=ggiDBGetBuffer(vis,0)) ) {
printf("Error! Could not get directbuffer\n");
return 2;
}
if (!(ggiDBGetLayout (dbuf_vis) == blPixelLinearBuffer)) {
*/
/*if (!(ggiDBGetLayout (dbuf_vis) == blPixelLinearBuffer)) {
printf("Error! Nonlinear Display Buffer.\n");
return 2;
}
if (!(plb_vis = ggiDBGetPLB (dbuf_vis)) ) {
}*/
/*if (!(plb_vis = ggiDBGetPLB (dbuf_vis)) ) {
printf("Error! Problem getting pixel linear buffer.\n");
return 2;
}
*/
vaddr=ggiOpen("display-memory",NULL);
err=ggiSetGraphMode(vaddr,320,200,320,200,mode.graphtype);
if (err) {
printf("ERROR! Problem opening 320x200x%d vaddr\n",color_depth);
return 2;
}
err = ggiDBGetBuffer (vaddr, &dbuf_vaddr);
/*err = ggiDBGetBuffer (vaddr, &dbuf_vaddr);
if (err) {
printf("Error! Could not get directbuffer\n");
return 2;
}
if (!(ggiDBGetLayout (dbuf_vaddr) == blPixelLinearBuffer)) {
}*/
/*if (!(ggiDBGetLayout (dbuf_vaddr) == blPixelLinearBuffer)) {
printf("Error! Nonlinear Display Buffer.\n");
return 2;
}
if (!(plb_vaddr = ggiDBGetPLB (dbuf_vaddr)) ) {
*/
/*if (!(plb_vaddr = ggiDBGetPLB (dbuf_vaddr)) ) {
printf("Error! Problem getting pixel linear buffer.\n");
return 2;
}
@ -128,6 +149,7 @@ int setup_graphics(int force_8bpp)
return 2;
}
stride_factor=(plb_vis->stride)/320;
*/
printf(" + Using a stride factor of %d\n",stride_factor);
printf(" + GGI Graphics Initialization successful...\n");
printf(" + Running TB1 in %dbpp Mode...\n",color_depth);
@ -269,11 +291,11 @@ int main(int argc,char **argv)
eight_bit_pal[15].b=255*0x100;
/* Finalize Pallette Stuff */
if (color_depth!=8) {
/*if (color_depth!=8) {
tb1_pal[15]=ggiMapColor(vis,&eight_bit_pal[15]);
}
else ggiSetPaletteVec(vis,0,256,eight_bit_pal);
*/
/* Actually draw the stylized VMW */
for(x=0;x<=40;x++){
ggiSetGCForeground(vis,tb1_pal[100+x]);
@ -329,9 +351,9 @@ int main(int argc,char **argv)
ggiFlush(vaddr2);
reloadpic=0;
}
vmwCrossBlit(plb_vis->write,plb_vaddr2->read,plb_vis->stride,200);
/*vmwCrossBlit(plb_vis->write,plb_vaddr2->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);

474
tblib.c
View File

@ -5,7 +5,8 @@
#include <stdlib.h>
#include <ctype.h>
#include <sys/stat.h>
#include <ggi/libggi.h>
#include <ggi/gii.h>
#include <ggi/ggi.h>
#include "soundIt.h"
#include "svmwgrap.h"
#include "levels.h"
@ -14,9 +15,9 @@ extern vmw_font *tb1_font;
extern ggi_visual_t vis;
extern ggi_visual_t vaddr;
extern ggi_visual_t vaddr2;
extern ggi_directbuffer_t dbuf_vis;
/*extern ggi_directbuffer_t dbuf_vis;
extern ggi_directbuffer_t dbuf_vaddr;
extern ggi_directbuffer_t dbuf_vaddr2;
extern ggi_directbuffer_t dbuf_vaddr2;*/
extern ggi_pixellinearbuffer *plb_vis;
extern ggi_pixellinearbuffer *plb_vaddr;
extern ggi_pixellinearbuffer *plb_vaddr2;
@ -29,8 +30,6 @@ extern ggi_color eight_bit_pal[256];
extern ggi_pixel tb1_pal[256];
extern int color_depth;
Sample sound_effects[1];
#define TB_ESC 27
#define TB_ENTER 1024
#define TB_F1 1025
@ -56,7 +55,7 @@ int change_shields(int *shields)
tb1_pal[254]=ggiMapColor(vis,&eight_bit_pal[254]);
else {
tb1_pal[254]=254;
ggiSetPaletteVec(vis,254,1,&eight_bit_pal[254]);
/*ggiSetPaletteVec(vis,254,1,&eight_bit_pal[254]);*/
}
ggiSetGCForeground(vaddr,tb1_pal[0]);
ggiDrawBox(vaddr,250,71,64,8);
@ -101,6 +100,122 @@ char *tb1_data_file(char *name, char *store)
return store;
}
int get_input() {
int evmask;
ggi_event event;
struct timeval t={0,0};
/*evmask=emKeyPress|emKeyRelease|emPointer;*/
if (ggiEventPoll(vis,emKey,&t)) {
ggiEventRead(vis,&event,emKey);
if (event.any.type==evKeyPress) {
switch(event.key.sym) {
case GIIK_Up: /* CrSr up */
case GIIK_P8: /* Keypad 8 */
return TB_UP;break;
case GIIK_Down: /* CrSr down */
case GIIK_P2: /* Keypad 2 */
return TB_DOWN;break;
case GIIK_Right: /* CrSr right */
case GIIK_P6: /* CrSr right */
return TB_RIGHT;break;
case GIIK_Left: /* CrSr left */
case GIIK_P4: /* CrSr left */
return TB_LEFT;break;
case GIIK_F1:
return TB_F1;break;
case GIIK_F2:
return TB_F2;break;
case GIIK_Enter: /* enter */
return TB_ENTER;break;
default:
return event.key.sym;
/*printf("sym=%4x code=%4x\n",ev.key.sym,ev.key.code);*/break;
}
}
}
return 0;
}
void clear_keyboard_buffer()
{
while (get_input()!=0) ;
}
void drawsquare(int x1,int y1,int x2,int y2,int col,ggi_visual_t page)
{
ggiSetGCForeground(page,tb1_pal[col]);
/*ggiDrawHLine(page,x1,y1,(x2-x1));
ggiDrawHLine(page,x1,y2,(x2-x1));
ggiDrawVLine(page,x1,y1,(y2-y1));
ggiDrawVLine(page,x2,y1,(y2-y1));*/
ggiDrawLine(page,x1,y1,x1,y2);
ggiDrawLine(page,x2,y1,x2,y2);
ggiDrawLine(page,x1,y1,x2,y1);
ggiDrawLine(page,x1,y2,x2,y2);
}
void coolbox(int x1,int y1,int x2,int y2,int fill,ggi_visual_t page)
{
int i;
for(i=0;i<5;i++) {
/*ggiSetGCForeground(page,31-i);
ggiDrawBox(page,x1+i,y1+i,(x2-x1-i-i),(y2-y1-i-i));*/
drawsquare(x1+i,y1+i,x2-i,y2-i,31-i,page);
}
if (fill) {
ggiSetGCForeground(page,tb1_pal[7]);
for(i=y1+5;i<y2-4;i++) ggiDrawHLine(page,x1+5,i,(x2-x1-9));
}
}
int close_graphics()
{
int err=0;
err=ggiClose(vis);
err+=ggiClose(vaddr);
err+=ggiClose(vaddr2);
if(err) fprintf(stderr,"Probelms shutting down GGI!\n");
else fprintf(stderr,"Shutting down GGI...\n");
ggiExit();
return 0;
}
int quit()
{
int barpos=0,ch=0,ch2;
coolbox(90,75,230,125,1,vis);
VMWtextxy("QUIT??? ARE YOU",97,82,tb1_pal[9],tb1_pal[7],0,tb1_font,vis);
VMWtextxy("ABSOLUTELY SURE?",97,90,tb1_pal[9],tb1_pal[7],0,tb1_font,vis);
while (ch!=TB_ENTER){
if (barpos==0) VMWtextxy("YES-RIGHT NOW!",97,98,tb1_pal[150],tb1_pal[0],1,tb1_font,vis);
else VMWtextxy("YES-RIGHT NOW!",97,98,tb1_pal[150],tb1_pal[7],1,tb1_font,vis);
if (barpos==1) VMWtextxy("NO--NOT YET.",97,106,tb1_pal[150],tb1_pal[0],1,tb1_font,vis);
else VMWtextxy("NO--NOT YET.",97,106,tb1_pal[150],tb1_pal[7],1,tb1_font,vis);
while ( (ch=get_input())==0);
ch2=toupper(ch);
if ((ch==TB_UP)||(ch==TB_DOWN)||(ch==TB_LEFT)||(ch==TB_RIGHT)) barpos++;
if (ch2=='Y') barpos=0;
if (ch2=='N') barpos=1;
if (barpos==2) barpos=0;
}
if (barpos==0){
close_graphics();
exit(1);
}
else return 6;
/*move(imagedata,screen,4000); textcolor(7);*/
}
int showhiscore(int showchart)
{
@ -282,6 +397,25 @@ void setupsidebar(int score,int hiscore,int shields)
VMWtextxy("S-SOUND ",251,165,tb1_pal[10],tb1_pal[0],0,tb1_font,vaddr2);
}
void pauseawhile(int howlong)
{
struct timeval bob;
struct timezone mree;
long begin_s,begin_u;
clear_keyboard_buffer();
gettimeofday(&bob,&mree);
begin_s=bob.tv_sec; begin_u=bob.tv_usec;
while(( (bob.tv_sec-begin_s)<howlong) && (get_input()==0)) {
usleep(30);
gettimeofday(&bob,&mree);
}
}
void savegame(int level,int begin_score,int begin_shields)
{
char ch;
@ -378,6 +512,13 @@ void savegame(int level,int begin_score,int begin_shields)
while( (ch=get_input())==0) usleep(30);
}
void shadowrite(char *st,int x5,int y5,int forecol,int backcol,
ggi_visual_t vis)
{
VMWtextxy(st,x5+1,y5+1,tb1_pal[backcol],0,0,tb1_font,vis);
VMWtextxy(st,x5,y5,tb1_pal[forecol],0,0,tb1_font,vis);
}
void options()
{
int opbarpos,argh=0,ch=0;
@ -486,17 +627,15 @@ void loadgame()
void story()
{
int error,yzrrp;
int error;
int xtemp,ytemp;
int thrustcol;
float thrust;
char tempch;
int alienchar;
int cycles;
int explo1[325],explo2[325],bigflame1[600],bigflame2[600];
int rent[125],sflame1[25],sflame2[25],barge[310];
int truck1[60],truck2[60];
char *tempst[300];
#if 0
/*
procedure doflames;
begin
@ -534,151 +673,135 @@ begin
end;
*/
GGILoadPicPacked(0,0,vaddr,0,1,
GGILoadPicPacked(0,0,vaddr,1,1,
tb1_data_file("tbsobj.tb1",(char *)tempst),
(ggi_color *)&eight_bit_pal,
(ggi_pixel *)&tb1_pal,color_depth);
vmwGetSprite(vaddr,0,2,26,18,bigflame1);
vmwGetSprite(vaddr,0,21,26,18,bigflame2);
vmwGetSprite(vaddr,127,100,15,18,explo1);
vmwGetSprite(vaddr,148,100,15,18,explo2);
vmwGetSprite(vaddr,168,100,15,6,rent);
vmwGetSprite(vaddr,0,43,3,4,sflame1);
vmwGetSprite(vaddr,0,47,3,4,sflame2);
vmwGetSprite(vaddr,65,100,18,15,barge);
vmwGetSprite(vaddr,85,100,5,8,truck1);
vmwGetSprite(vaddr,95,100,5,8,truck2);
/*
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;
*/
/******FIRST MESSAGE********/
ggiSetGCForeground(vis,tb1_pal[0]);
ggiDrawBox(vis,0,0,320,200);
VMWtextxy("THE STORY SO FAR...",
20,20,tb1_pal[4],tb1_pal[0],0,tb1_font,vis);
if (pauseawhile(7)==TB_ESC) goto end;
VMWtextxy("THE STORY SO FAR...",20,20,tb1_pal[4],tb1_pal[0],0,tb1_font,vis);
pauseawhile(7);
ggiSetGCForeground(vis,tb1_pal[0]);
ggiDrawBox(vis,0,0,320,200);
GGILoadPicPacked(0,0,vaddr2,0,1,
/* GGILoadPicPacked(0,0,vaddr2,1,1,
tb1_data_file("tbcobj.tb1",(char *)tempst),
(ggi_color *)&eight_bit_pal,
(ggi_pixel *)&tb1_pal,color_depth);
vmwArbitraryCrossBlit(plb_vaddr2->read,129,56,49,132,
plb_vis->write,10,10,plb_vaddr2->stride,
stride_factor);
VMWtextxy("YOU ARE TOM BOMBEM, A STRANGE",
80,10,tb1_pal[1],tb1_pal[0],0,tb1_font,vis);
VMWtextxy(" BUT EFFICIENT MEMBER OF",
80,20,tb1_pal[1],tb1_pal[0],0,tb1_font,vis);
VMWtextxy(" THE LUNAR SPACE FORCE.",
80,30,tb1_pal[1],tb1_pal[0],0,tb1_font,vis);
VMWtextxy("YOU NEVER SAY MUCH AND YOU ARE",
80,50,tb1_pal[4],tb1_pal[0],0,tb1_font,vis);
VMWtextxy(" RARELY SEEN OUTSIDE OF",
80,60,tb1_pal[4],tb1_pal[0],0,tb1_font,vis);
VMWtextxy(" YOUR BLUE SPACESUIT.",
80,70,tb1_pal[4],tb1_pal[0],0,tb1_font,vis);
VMWtextxy("YOU OFTEN GET YOURSELF IN ",
80,90,tb1_pal[2],tb1_pal[0],0,tb1_font,vis);
VMWtextxy(" TROUBLE BY SCRATCHING",
80,100,tb1_pal[2],tb1_pal[0],0,tb1_font,vis);
VMWtextxy(" YOUR HEAD AT INAPPROPRIATE",
80,110,tb1_pal[2],tb1_pal[0],0,tb1_font,vis);
VMWtextxy(" TIMES.",
80,120,tb1_pal[2],tb1_pal[0],0,tb1_font,vis);
VMWtextxy("PRESS ANY KEY....",
96,185,tb1_pal[15],tb1_pal[0],0,tb1_font,vis);
if (pauseawhile(12)==TB_ESC) goto end;
plb_vis->write,10,10,plb_vis->stride,
stride_factor);*/
VMWtextxy("YOU ARE TOM BOMBEM, A STRANGE",80,10,tb1_pal[1],tb1_pal[0],0,tb1_font,vis);
VMWtextxy(" BUT EFFICIENT MEMBER OF",80,20,tb1_pal[1],tb1_pal[0],0,tb1_font,vis);
VMWtextxy(" THE LUNAR SPACE FORCE.",80,30,tb1_pal[1],tb1_pal[0],0,tb1_font,vis);
VMWtextxy("YOU NEVER SAY MUCH AND YOU ARE",80,50,tb1_pal[4],tb1_pal[0],0,tb1_font,vis);
VMWtextxy(" RARELY SEEN OUTSIDE OF",80,60,tb1_pal[4],tb1_pal[0],0,tb1_font,vis);
VMWtextxy(" YOUR BLUE SPACESUIT.",80,70,tb1_pal[4],tb1_pal[0],0,tb1_font,vis);
VMWtextxy("YOU OFTEN GET YOURSELF IN ",80,90,tb1_pal[2],tb1_pal[0],0,tb1_font,vis);
VMWtextxy(" TROUBLE BY SCRATCHING",80,100,tb1_pal[2],tb1_pal[0],0,tb1_font,vis);
VMWtextxy(" YOUR HEAD AT INAPPROPRIATE",80,110,tb1_pal[2],tb1_pal[0],0,tb1_font,vis);
VMWtextxy(" TIMES.",80,120,tb1_pal[2],tb1_pal[0],0,tb1_font,vis);
VMWtextxy("PRESS ANY KEY....",96,185,tb1_pal[15],tb1_pal[0],0,tb1_font,vis);
pauseawhile(12);
ggiSetGCForeground(vis,tb1_pal[0]);
ggiDrawBox(vis,0,0,320,200);
ggiSetGCForeground(vis,tb1_pal[0]);
ggiDrawBox(vis,0,0,320,200);
vmwArbitraryCrossBlit(plb_vaddr2->read,129,56,49,132,
plb_vis->write,260,10,plb_vis->stride,
stride_factor);
vmwArbitraryCrossBlit(plb_vaddr2->read,99,104,29,81,
plb_vis->write,287,13,plb_vis->stride,
stride_factor);
VMWtextxy("IT IS THE YEAR 2028.",
10,10,tb1_pal[1],tb1_pal[0],0,tb1_font,vis);
VMWtextxy("YOU HAVE BEEN SUMMONED BY",
10,30,tb1_pal[3],tb1_pal[0],0,tb1_font,vis);
VMWtextxy(" LUNAR DICTATOR-IN-CHIEF",
10,40,tb1_pal[3],tb1_pal[0],0,tb1_font,vis);
VMWtextxy(" VINCENT WEAVER ABOUT A",
10,50,tb1_pal[3],tb1_pal[0],0,tb1_font,vis);
VMWtextxy(" TOP SECRET THREAT TO ",
10,60,tb1_pal[3],tb1_pal[0],0,tb1_font,vis);
VMWtextxy(" INTERPLANETARY SECURITY.",
10,70,tb1_pal[3],tb1_pal[0],0,tb1_font,vis);
VMWtextxy("YOU ATTEND THE BRIEFING WITH",
10,90,tb1_pal[5],tb1_pal[0],0,tb1_font,vis);
VMWtextxy(" YOUR USUAL CONFUSED",
10,100,tb1_pal[5],tb1_pal[0],0,tb1_font,vis);
VMWtextxy(" QUIETNESS. YOU STILL DO",
10,110,tb1_pal[5],tb1_pal[0],0,tb1_font,vis);
VMWtextxy(" NOT UNDERSTAND YOUR OWN",
10,120,tb1_pal[5],tb1_pal[0],0,tb1_font,vis);
VMWtextxy(" SUCCESSFULNESS.",
10,130,tb1_pal[5],tb1_pal[0],0,tb1_font,vis);
/* vmwArbitraryCrossBlit(plb_vaddr2->read,129,56,49,132,
plb_vis->write,260,10,plb_vis->stride,
stride_factor);
vmwArbitraryCrossBlit(plb_vaddr2->read,99,104,29,81,
plb_vis->write,287,13,plb_vis->stride,
stride_factor);
*/
VMWtextxy("IT IS THE YEAR 2028.",10,10,tb1_pal[1],tb1_pal[0],0,tb1_font,vis);
VMWtextxy("YOU HAVE BEEN SUMMONED BY",10,30,tb1_pal[3],tb1_pal[0],0,tb1_font,vis);
VMWtextxy(" LUNAR DICTATOR-IN-CHIEF",10,40,tb1_pal[3],tb1_pal[0],0,tb1_font,vis);
VMWtextxy(" VINCENT WEAVER ABOUT A",10,50,tb1_pal[3],tb1_pal[0],0,tb1_font,vis);
VMWtextxy(" TOP SECRET THREAT TO ",10,60,tb1_pal[3],tb1_pal[0],0,tb1_font,vis);
VMWtextxy(" INTERPLANETARY SECURITY.",10,70,tb1_pal[3],tb1_pal[0],0,tb1_font,vis);
VMWtextxy("YOU ATTEND THE BRIEFING WITH",10,90,tb1_pal[5],tb1_pal[0],0,tb1_font,vis);
VMWtextxy(" YOUR USUAL CONFUSED",10,100,tb1_pal[5],tb1_pal[0],0,tb1_font,vis);
VMWtextxy(" QUIETNESS. YOU STILL DO",10,110,tb1_pal[5],tb1_pal[0],0,tb1_font,vis);
VMWtextxy(" NOT UNDERSTAND YOUR OWN",10,120,tb1_pal[5],tb1_pal[0],0,tb1_font,vis);
VMWtextxy(" SUCCESSFULNESS.",10,130,tb1_pal[5],tb1_pal[0],0,tb1_font,vis);
VMWtextxy("PRESS ANY KEY....",96,185,tb1_pal[15],tb1_pal[0],0,tb1_font,vis);
if (pauseawhile(10)==TB_ESC) goto end;
pauseawhile(10);
GGILoadPicPacked(0,0,vis,0,1,
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_vis->read,115,55,91,59,
/* vmwArbitraryCrossBlit(plb_vis->read,115,55,91,59,
plb_vaddr->write,115,55,plb_vis->stride,
stride_factor);
if (pauseawhile(6)==TB_ESC) goto end;
*/
pauseawhile(6);
VMWtextxy("Ahhh.... Mr. Bombem.... ",1,1,tb1_pal[15],tb1_pal[0],0,tb1_font,vis);
/* Load The Sound */
if (sound_possible) {
Snd_loadRawSample(tb1_data_file("tbahh.raw",(char *)&tempst),
&sound_effects[0],0);
/* Initialize Sound, if Possible */
if (Snd_init( 1,sound_effects,22050,4,
"/dev/dsp")==EXIT_FAILURE) {
printf("ERROR! Cannot init sound.\n");
sound_enabled=0;
}
}
/* Play "Ahhhhhhh Mr. Bombem..... */
if (sound_enabled) Snd_effect(0,1);
pauseawhile(2);
vmwArbitraryCrossBlit(plb_vaddr2->read,188,14,91,59,
plb_vis->write,115,55,plb_vaddr2->stride,
/* if sbeffects then startsound(sound[1],0,false);*/
pauseawhile(2);
/*if sbeffects then startsound(sound[3],0,false);*/
/*vmwArbitraryCrossBlit(plb_vaddr2->read,188,14,91,59,
plb_vis->write,115,55,plb_vis->stride,
stride_factor);
if (pauseawhile(6)==TB_ESC) goto end;
pauseawhile(6);
vmwArbitraryCrossBlit(plb_vaddr->read,115,55,91,59,
plb_vis->write,115,55,plb_vaddr2->stride,
plb_vis->write,115,55,plb_vis->stride,
stride_factor);
VMWtextxy("I'll be brief. ",
1,1,tb1_pal[15],tb1_pal[0],1,tb1_font,vis);
if (pauseawhile(5)==TB_ESC) goto end;
VMWtextxy("Do you know how this base was founded?",
1,1,tb1_pal[15],tb1_pal[0],1,tb1_font,vis);
if (pauseawhile(5)==TB_ESC) goto end;
*/
VMWtextxy("I'll be brief. ",1,1,tb1_pal[15],tb1_pal[0],1,tb1_font,vis);
pauseawhile(5);
VMWtextxy("Do you know how this base was founded?",1,1,tb1_pal[15],tb1_pal[0],1,tb1_font,vis);
pauseawhile(5);
VMWtextxy("No? Well watch the screen. ",1,1,tb1_pal[15],tb1_pal[0],1,tb1_font,vis);
if (pauseawhile(5)==TB_ESC) goto end;
vmwArbitraryCrossBlit(plb_vaddr2->read,210,75,85,60,
pauseawhile(5);
/* vmwArbitraryCrossBlit(plb_vaddr2->read,210,75,85,60,
plb_vis->write,210,136,plb_vis->stride,
stride_factor);
if (pauseawhile(4)==TB_ESC) goto end;
pauseawhile(4);
*/
/*pal(250,0,0,0);*/
/******BARGE TAKING OFF***********/
GGILoadPicPacked(0,0,vaddr2,1,1,
@ -686,71 +809,36 @@ end;
(ggi_color *)&eight_bit_pal,
(ggi_pixel *)&tb1_pal,color_depth);
VMWsmalltextxy("MY WIFE AND I FOUNDED",
212,3,tb1_pal[14],tb1_pal[0],0,tb1_font,vaddr2);
VMWsmalltextxy("THIS BASE IN 2008.",
212,9,tb1_pal[14],tb1_pal[0],0,tb1_font,vaddr2);
VMWsmalltextxy("THE ONLY WAY TO ",
212,16,tb1_pal[13],tb1_pal[0],0,tb1_font,vaddr2);
VMWsmalltextxy("FINANCE IT WAS TO",
212,22,tb1_pal[13],tb1_pal[0],0,tb1_font,vaddr2);
VMWsmalltextxy("ENGAGE IN A DUBIOUS",
212,28,tb1_pal[13],tb1_pal[0],0,tb1_font,vaddr2);
VMWsmalltextxy("BUSINESS.",
212,34,tb1_pal[13],tb1_pal[0],0,tb1_font,vaddr2);
VMWsmalltextxy("WE LAUNCHED EARTH'S",
212,41,tb1_pal[12],tb1_pal[0],0,tb1_font,vaddr2);
VMWsmalltextxy("TRASH INTO SPACE",
212,47,tb1_pal[12],tb1_pal[0],0,tb1_font,vaddr2);
VMWsmalltextxy("FOR A PROFIT.",
212,53,tb1_pal[12],tb1_pal[0],0,tb1_font,vaddr2);
VMWsmalltextxy("HERE IS FOOTAGE FROM",
212,60,tb1_pal[11],tb1_pal[0],0,tb1_font,vaddr2);
VMWsmalltextxy("THE LAST LAUNCH EIGHT",
212,66,tb1_pal[11],tb1_pal[0],0,tb1_font,vaddr2);
VMWsmalltextxy("YEARS AGO.",
212,72,tb1_pal[11],tb1_pal[0],0,tb1_font,vaddr2);
VMWsmalltextxy("MY WIFE AND I FOUNDED",212,3,tb1_pal[14],tb1_pal[0],0,tb1_font,vaddr2);
VMWsmalltextxy("THIS BASE IN 2008.",212,9,tb1_pal[14],tb1_pal[0],0,tb1_font,vaddr2);
VMWsmalltextxy("THE ONLY WAY TO ",212,16,tb1_pal[13],tb1_pal[0],0,tb1_font,vaddr2);
VMWsmalltextxy("FINANCE IT WAS TO",212,22,tb1_pal[13],tb1_pal[0],0,tb1_font,vaddr2);
VMWsmalltextxy("ENGAGE IN A DUBIOUS",212,28,tb1_pal[13],tb1_pal[0],0,tb1_font,vaddr2);
VMWsmalltextxy("BUSINESS.",212,34,tb1_pal[13],tb1_pal[0],0,tb1_font,vaddr2);
VMWsmalltextxy("WE LAUNCHED EARTH'S",212,41,tb1_pal[12],tb1_pal[0],0,tb1_font,vaddr2);
VMWsmalltextxy("TRASH INTO SPACE",212,47,tb1_pal[12],tb1_pal[0],0,tb1_font,vaddr2);
VMWsmalltextxy("FOR A PROFIT.",212,53,tb1_pal[12],tb1_pal[0],0,tb1_font,vaddr2);
VMWsmalltextxy("HERE IS FOOTAGE FROM",212,60,tb1_pal[11],tb1_pal[0],0,tb1_font,vaddr2);
VMWsmalltextxy("THE LAST LAUNCH EIGHT",212,66,tb1_pal[11],tb1_pal[0],0,tb1_font,vaddr2);
VMWsmalltextxy("YEARS AGO.",212,72,tb1_pal[11],tb1_pal[0],0,tb1_font,vaddr2);
vmwCrossBlit(plb_vaddr->write,plb_vaddr2->read,plb_vis->stride,200);
/* vmwCrossBlit(plb_vaddr->write,plb_vaddr2->read,plb_vis->stride,200);
*/
/* putshape(bargeoff,vaddr,16,18,141,157);*/
/* vmwCrossBlit(plb_vis->write,plb_vaddr->read,plb_vis->stride,200);
pauseawhile(7);*/
/*
vmwPutSprite(barge,18,15,stride_factor,
plb_vaddr->write,141,157,plb_vaddr->stride);
vmwCrossBlit(plb_vis->write,plb_vaddr->read,plb_vis->stride,200);
if (pauseawhile(7)==TB_ESC) goto end;
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;
for(ytemp=191;ytemp>163;ytemp--) {
if (ytemp>=172) vmwArbitraryCrossBlit(plb_vaddr2->read,145,ytemp,
7,9,plb_vaddr->write,145,ytemp,
plb_vaddr->stride,stride_factor);
/*blockmove(145,ytemp,152,ytemp+10,vaddr2,145,ytemp,vaddr)*/
else vmwArbitraryCrossBlit(plb_vaddr2->read,145,172,
7,9,plb_vaddr->write,145,172,
plb_vaddr->stride,stride_factor);
/*blockmove(145,172,152,182,vaddr2,145,172,vaddr);*/
yzrrp=ytemp-172;
if (yzrrp<0) yzrrp=-yzrrp;
else yzrrp=0;
if (ytemp%2) vmwPutPartialSprite(truck1,5,8,stride_factor,
plb_vaddr->write,145,ytemp,
plb_vaddr->stride,0,5,yzrrp,8);
else vmwPutPartialSprite(truck2,5,8,stride_factor,
plb_vaddr->write,145,ytemp,
plb_vaddr->stride,0,5,yzrrp,8);
/* truck1,truck2
puttruck(145,ytemp,ytemp mod 2,vaddr);*/
/*if (pauseawhile(1)==TB_ESC) break;*/
usleep(30000);
vmwCrossBlit(plb_vis->write,plb_vaddr->read,plb_vis->stride,200);
}
/*
pauseawhile(20);
flipd320(vaddr2,vaddr);
putshape(bargeoff,vaddr,16,18,141,157);
@ -771,7 +859,7 @@ end;
ytemp:=ytemp-round(thrust);
end;
*/
if (pauseawhile(5)==TB_ESC) goto end;
pauseawhile(5);
/****SECOND CHIEF*******/
@ -785,10 +873,10 @@ end;
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,
/* 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,tb1_pal[15],tb1_pal[0],1,tb1_font,vis);
pauseawhile(6);
VMWtextxy("Last week we received a message. ",1,1,tb1_pal[15],tb1_pal[0],1,tb1_font,vis);
@ -797,9 +885,9 @@ end;
pauseawhile(6);
VMWtextxy("Watch the screen. ",1,1,tb1_pal[15],tb1_pal[0],1,tb1_font,vis);
vmwArbitraryCrossBlit(plb_vaddr2->read,210,136,85,59,
/*vmwArbitraryCrossBlit(plb_vaddr2->read,210,136,85,59,
plb_vis->write,210,136,plb_vis->stride,
stride_factor);
stride_factor);*/
pauseawhile(4);
/******ALIEN DELEGATION*****/
@ -911,12 +999,7 @@ end;
pauseawhile(6);
VMWtextxy("<Huh?> ",1,1,tb1_pal[9],tb1_pal[0],1,tb1_font,vis);
pauseawhile(10);
end:
/* All Done. Close up sound */
Snd_restore();
#endif
}
void credits()
@ -937,7 +1020,7 @@ void credits()
VMWtextxy(" SOUND EFFECTS",0,340,tb1_pal[11],tb1_pal[0],1,tb1_font,vaddr2);
VMWtextxy(" VINCENT M WEAVER",0,360,tb1_pal[11],tb1_pal[0],1,tb1_font,vaddr2);
VMWtextxy(" GRAPHICS INSPIRATION",0,390,tb1_pal[12],tb1_pal[0],1,tb1_font,vaddr2);
#if 0
for(i=0;i<200;i++){
vmwArbitraryCrossBlit(plb_vaddr2->read,0,i,320,200,
plb_vis->write,0,0,
@ -1051,13 +1134,14 @@ void credits()
vmwArbitraryCrossBlit(plb_vaddr2->read,0,200,320,200,
plb_vaddr2->write,0,0,
plb_vaddr2->stride,stride_factor);
#endif
}
void about()
{
int pagenum=1,firstime=0,oldpagenum=0,numpages=4,ch=0;
char tempst[300];
#if 0
ggiSetGCForeground(vaddr,tb1_pal[0]);
ggiFillscreen(vaddr);
@ -1155,7 +1239,7 @@ void about()
tb1_data_file("tbgorg.tb1",(char *)&tempst),
(ggi_color *)&eight_bit_pal,
(ggi_pixel *)&tb1_pal,color_depth);
#endif
}