mirror of
https://github.com/deater/tb1.git
synced 2024-12-23 04:29:42 +00:00
440 lines
19 KiB
C
440 lines
19 KiB
C
#include <stdio.h>
|
|
#include <unistd.h> /* for usleep */
|
|
|
|
#include "svmwgraph/svmwgraph.h"
|
|
#include "tb1_state.h"
|
|
|
|
#include "tblib.h"
|
|
#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 i;
|
|
int xtemp,ytemp;
|
|
int thrustcol=0;
|
|
float thrust;
|
|
char tempch;
|
|
int cycles,to_clear;
|
|
|
|
vmwFont *tb1_font;
|
|
|
|
tb1_font=game_state->graph_state->default_font;
|
|
|
|
|
|
vmwLoadPicPacked(0,0,game_state->virtual_2,1,1,
|
|
tb1_data_file("story/tbsobj.tb1",game_state->path_to_data),
|
|
game_state->graph_state);
|
|
|
|
/* 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);
|
|
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
|
pauseawhile(7);
|
|
|
|
vmwClearScreen(game_state->virtual_1,0);
|
|
|
|
vmwLoadPicPacked(0,0,game_state->virtual_2,1,1,
|
|
tb1_data_file("story/tbcobj.tb1",game_state->path_to_data),
|
|
game_state->graph_state);
|
|
|
|
vmwArbitraryCrossBlit(game_state->virtual_2,129,56,49,132,
|
|
game_state->virtual_1,10,10);
|
|
vmwTextXY("YOU ARE TOM BOMBEM, A STRANGE",80,10,1,0,0,tb1_font,game_state->virtual_1);
|
|
vmwTextXY(" BUT EFFICIENT MEMBER OF",80,20,1,0,0,tb1_font,game_state->virtual_1);
|
|
vmwTextXY(" THE LUNAR SPACE FORCE.",80,30,1,0,0,tb1_font,game_state->virtual_1);
|
|
vmwTextXY("YOU NEVER SAY MUCH AND YOU ARE",80,50,4,0,0,tb1_font,game_state->virtual_1);
|
|
vmwTextXY(" RARELY SEEN OUTSIDE OF",80,60,4,0,0,tb1_font,game_state->virtual_1);
|
|
vmwTextXY(" YOUR BLUE SPACESUIT.",80,70,4,0,0,tb1_font,game_state->virtual_1);
|
|
vmwTextXY("YOU OFTEN GET YOURSELF IN ",80,90,2,0,0,tb1_font,game_state->virtual_1);
|
|
vmwTextXY(" TROUBLE BY SCRATCHING",80,100,2,0,0,tb1_font,game_state->virtual_1);
|
|
vmwTextXY(" YOUR HEAD AT INAPPROPRIATE",80,110,2,0,0,tb1_font,game_state->virtual_1);
|
|
vmwTextXY(" TIMES.",80,120,2,0,0,tb1_font,game_state->virtual_1);
|
|
vmwTextXY("PRESS ANY KEY....",96,185,15,0,0,tb1_font,game_state->virtual_1);
|
|
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
|
pauseawhile(15);
|
|
|
|
vmwClearScreen(game_state->virtual_1,0);
|
|
|
|
vmwArbitraryCrossBlit(game_state->virtual_2,129,56,49,132,
|
|
game_state->virtual_1,260,10);
|
|
vmwArbitraryCrossBlit(game_state->virtual_2,99,104,29,81,
|
|
game_state->virtual_1,287,13);
|
|
|
|
vmwTextXY("IT IS THE YEAR 2028.",10,10,1,0,0,tb1_font,game_state->virtual_1);
|
|
vmwTextXY("YOU HAVE BEEN SUMMONED BY",10,30,3,0,0,tb1_font,game_state->virtual_1);
|
|
vmwTextXY(" LUNAR DICTATOR-IN-CHIEF",10,40,3,0,0,tb1_font,game_state->virtual_1);
|
|
vmwTextXY(" VINCENT WEAVER ABOUT A",10,50,3,0,0,tb1_font,game_state->virtual_1);
|
|
vmwTextXY(" TOP SECRET THREAT TO ",10,60,3,0,0,tb1_font,game_state->virtual_1);
|
|
vmwTextXY(" INTERPLANETARY SECURITY.",10,70,3,0,0,tb1_font,game_state->virtual_1);
|
|
vmwTextXY("YOU ATTEND THE BRIEFING WITH",10,90,5,0,0,tb1_font,game_state->virtual_1);
|
|
vmwTextXY(" YOUR USUAL CONFUSED",10,100,5,0,0,tb1_font,game_state->virtual_1);
|
|
vmwTextXY(" QUIETNESS. YOU STILL DO",10,110,5,0,0,tb1_font,game_state->virtual_1);
|
|
vmwTextXY(" NOT UNDERSTAND YOUR OWN",10,120,5,0,0,tb1_font,game_state->virtual_1);
|
|
vmwTextXY(" SUCCESSFULNESS.",10,130,5,0,0,tb1_font,game_state->virtual_1);
|
|
vmwTextXY("PRESS ANY KEY....",96,185,15,0,0,tb1_font,game_state->virtual_1);
|
|
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
|
pauseawhile(12);
|
|
|
|
vmwLoadPicPacked(0,0,game_state->virtual_1,1,1,
|
|
tb1_data_file("story/tbchief.tb1",game_state->path_to_data),
|
|
game_state->graph_state);
|
|
|
|
/* Save the area where the error will go */
|
|
vmwArbitraryCrossBlit(game_state->virtual_1,115,55,91,59,
|
|
game_state->virtual_2,115,255);
|
|
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
|
pauseawhile(6);
|
|
|
|
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_possible) && (game_state->sound_enabled))
|
|
playGameFX(0);
|
|
|
|
pauseawhile(6);
|
|
|
|
if ((game_state->sound_possible) && (game_state->sound_enabled))
|
|
playGameFX(2);
|
|
|
|
/* Show fake error message */
|
|
vmwArbitraryCrossBlit(game_state->virtual_2,188,14,91,59,
|
|
game_state->virtual_1,115,55);
|
|
|
|
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
|
pauseawhile(6);
|
|
|
|
/* Restore background where error was */
|
|
vmwArbitraryCrossBlit(game_state->virtual_2,115,255,91,59,
|
|
game_state->virtual_1,115,55);
|
|
|
|
vmwTextXY("I'll be brief. ",1,1,15,0,1,tb1_font,game_state->virtual_1);
|
|
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
|
pauseawhile(5);
|
|
|
|
vmwTextXY("Do you know how this base was founded?",1,1,15,0,1,tb1_font,game_state->virtual_1);
|
|
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
|
pauseawhile(5);
|
|
|
|
vmwTextXY("No? Well watch the screen. ",1,1,15,0,1,tb1_font,game_state->virtual_1);
|
|
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
|
pauseawhile(5);
|
|
|
|
/* Put picture on screen */
|
|
vmwArbitraryCrossBlit(game_state->virtual_2,210,75,85,60,
|
|
game_state->virtual_1,210,136);
|
|
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
|
pauseawhile(4);
|
|
|
|
/******BARGE TAKING OFF***********/
|
|
|
|
vmwClearScreen(game_state->virtual_2,0);
|
|
vmwLoadPicPacked(0,0,game_state->virtual_2,1,1,
|
|
tb1_data_file("story/tbma1.tb1",game_state->path_to_data),
|
|
game_state->graph_state);
|
|
|
|
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);
|
|
vmwSmallTextXY("THE ONLY WAY TO ",212,16,13,0,0,tb1_font,game_state->virtual_2);
|
|
vmwSmallTextXY("FINANCE IT WAS TO",212,22,13,0,0,tb1_font,game_state->virtual_2);
|
|
vmwSmallTextXY("ENGAGE IN A DUBIOUS",212,28,13,0,0,tb1_font,game_state->virtual_2);
|
|
vmwSmallTextXY("BUSINESS.",212,34,13,0,0,tb1_font,game_state->virtual_2);
|
|
vmwSmallTextXY("WE LAUNCHED EARTH'S",212,41,12,0,0,tb1_font,game_state->virtual_2);
|
|
vmwSmallTextXY("TRASH INTO SPACE",212,47,12,0,0,tb1_font,game_state->virtual_2);
|
|
vmwSmallTextXY("FOR A PROFIT.",212,53,12,0,0,tb1_font,game_state->virtual_2);
|
|
vmwSmallTextXY("HERE IS FOOTAGE FROM",212,60,11,0,0,tb1_font,game_state->virtual_2);
|
|
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);
|
|
|
|
vmwLoadPalette(game_state->graph_state,thrustcol*4,0,0,250);
|
|
|
|
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);
|
|
|
|
|
|
/* Roll the truck up to the barge */
|
|
for(ytemp=190;ytemp>=164;ytemp--) {
|
|
|
|
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);
|
|
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);
|
|
vmwLoadPalette(game_state->graph_state,thrustcol*4,0,0,250);
|
|
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),
|
|
game_state->graph_state);
|
|
vmwLoadPicPacked(0,0,game_state->virtual_1,1,1,
|
|
tb1_data_file("story/tbchief.tb1",game_state->path_to_data),
|
|
game_state->graph_state);
|
|
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*****/
|
|
|
|
/* 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),game_state->graph_state);
|
|
vmwLoadPicPacked(0,0,game_state->virtual_1,1,0,
|
|
tb1_data_file("tbomb1.tb1",
|
|
game_state->path_to_data),game_state->graph_state);
|
|
|
|
|
|
vmwLoadPalette(game_state->graph_state,thrustcol*4,0,0,250);
|
|
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);
|
|
vmwLoadPalette(game_state->graph_state,0xff,0xff,0xff,0);
|
|
vmwPutSprite(explosion1,160,118,game_state->virtual_1);
|
|
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
|
vmwLoadPalette(game_state->graph_state,0,0,0,0);
|
|
usleep(80000);
|
|
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
|
|
|
if ((game_state->sound_possible) && (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<120) {
|
|
doflames(game_state);
|
|
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
|
cycles++;
|
|
usleep(80000);
|
|
}
|
|
|
|
/****ALIEN MESSAGE*****/
|
|
vmwLoadPicPacked(0,0,game_state->virtual_1,1,1,
|
|
tb1_data_file("story/tbgorg.tb1",game_state->path_to_data),
|
|
game_state->graph_state);
|
|
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,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,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 *******/
|
|
vmwLoadPicPacked(0,0,game_state->virtual_2,1,1,
|
|
tb1_data_file("story/tbcobj.tb1",game_state->path_to_data),
|
|
game_state->graph_state);
|
|
vmwLoadPicPacked(0,0,game_state->virtual_1,1,1,
|
|
tb1_data_file("story/tbchief.tb1",game_state->path_to_data),
|
|
game_state->graph_state);
|
|
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,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,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,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,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,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,game_state->virtual_1);
|
|
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
|
pauseawhile(6);
|
|
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,game_state->virtual_1);
|
|
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
|
pauseawhile(6);
|
|
vmwTextXY("<Huh?> ",1,1,9,0,1,tb1_font,game_state->virtual_1);
|
|
vmwBlitMemToDisplay(game_state->graph_state,game_state->virtual_1);
|
|
pauseawhile(10);
|
|
|
|
/* Free the sprites! End memory leaks! */
|
|
vmwFreeSprite(bigFlame1);
|
|
vmwFreeSprite(bigFlame2);
|
|
vmwFreeSprite(smallFlame1);
|
|
vmwFreeSprite(smallFlame2);
|
|
vmwFreeSprite(rent);
|
|
vmwFreeSprite(truck1);
|
|
vmwFreeSprite(truck2);
|
|
vmwFreeSprite(barge);
|
|
vmwFreeSprite(explosion1);
|
|
vmwFreeSprite(explosion2);
|
|
|
|
}
|