extern int environment;
extern float texscale;
extern Terrain terrain;
-extern int channels[100];
extern int kTextureSize;
extern float screenwidth,screenheight;
extern float gravity;
extern float texdetail;
extern GLubyte bloodText[512*512*3];
extern GLubyte wolfbloodText[512*512*3];
-extern float terraindetail;
extern float camerashake;
extern float woozy;
extern float blackout;
extern bool keyboardfrozen;
extern int netdatanew;
extern bool loadingstuff;
-extern char mapname[256];
extern XYZ windvector;
extern bool debugmode;
static int music1;
extern bool alwaysblur;
extern float gamespeed;
extern bool decals;
-extern bool vblsync;
extern bool immediate;
extern bool velocityblur;
extern float tintr,tintg,tintb;
extern bool stillloading;
extern bool winfreeze;
-extern int numdialogues;
-extern int numdialogueboxes[max_dialogues];
-extern int dialoguetype[max_dialogues];
-extern int dialogueboxlocation[max_dialogues][max_dialoguelength];
-extern float dialogueboxcolor[max_dialogues][max_dialoguelength][3];
-extern int dialogueboxsound[max_dialogues][max_dialoguelength];
-extern char dialoguetext[max_dialogues][max_dialoguelength][128];
-extern char dialoguename[max_dialogues][max_dialoguelength][64];
-extern XYZ dialoguecamera[max_dialogues][max_dialoguelength];
-extern XYZ participantlocation[max_dialogues][10];
-extern int participantfocus[max_dialogues][max_dialoguelength];
-extern int participantaction[max_dialogues][max_dialoguelength];
-extern float participantrotation[max_dialogues][10];
-extern XYZ participantfacing[max_dialogues][max_dialoguelength][10];
-extern float dialoguecamerarotation[max_dialogues][max_dialoguelength];
-extern float dialoguecamerarotation2[max_dialogues][max_dialoguelength];
-extern int indialogue;
-extern int whichdialogue;
-extern int directing;
-extern float dialoguetime;
-extern int dialoguegonethrough[20];
-
extern bool campaign;
extern float oldgamespeed;
static void ch_map(Game *game, const char *args)
{
- char buf[64];
- snprintf(buf, 63, ":Data:Maps:%s", args);
- game->Loadlevel(buf);
+ game->Loadlevel(args);
game->whichlevel = -2;
campaign = 0;
}
float temptexdetail;
environment=which;
-/*
- OPENAL_SetPaused(channels[music1snow], true);
- OPENAL_SetPaused(channels[music1grass], true);
- OPENAL_SetPaused(channels[music1desert], true);
- OPENAL_SetPaused(channels[wind], true);
- OPENAL_SetPaused(channels[desertambient], true);
-*/
- OPENAL_SetPaused(channels[stream_music1snow], true);
- OPENAL_SetPaused(channels[stream_music1grass], true);
- OPENAL_SetPaused(channels[stream_music1desert], true);
- OPENAL_SetPaused(channels[stream_wind], true);
- OPENAL_SetPaused(channels[stream_desertambient], true);
+
+ pause_sound(stream_music1snow);
+ pause_sound(stream_music1grass);
+ pause_sound(stream_music1desert);
+ pause_sound(stream_wind);
+ pause_sound(stream_desertambient);
if(environment==snowyenvironment){
":Data:Textures:Skybox(snow):Back.jpg",
":Data:Textures:Skybox(snow):Right.jpg",
":Data:Textures:Skybox(snow):Up.jpg",
- ":Data:Textures:Skybox(snow):Down.jpg",
- ":Data:Textures:Skybox(snow):Cloud.jpg",
- ":Data:Textures:Skybox(snow):Reflect.jpg");
+ ":Data:Textures:Skybox(snow):Down.jpg");
":Data:Textures:Skybox(sand):Back.jpg",
":Data:Textures:Skybox(sand):Right.jpg",
":Data:Textures:Skybox(sand):Up.jpg",
- ":Data:Textures:Skybox(sand):Down.jpg",
- ":Data:Textures:Skybox(sand):Cloud.jpg",
- ":Data:Textures:Skybox(sand):Reflect.jpg");
+ ":Data:Textures:Skybox(sand):Down.jpg");
":Data:Textures:Skybox(grass):Back.jpg",
":Data:Textures:Skybox(grass):Right.jpg",
":Data:Textures:Skybox(grass):Up.jpg",
- ":Data:Textures:Skybox(grass):Down.jpg",
- ":Data:Textures:Skybox(grass):Cloud.jpg",
- ":Data:Textures:Skybox(grass):Reflect.jpg");
+ ":Data:Textures:Skybox(grass):Down.jpg");
void Game::Loadlevel(int which){
stealthloading=0;
-
- if(which==0)Loadlevel((char *)":Data:Maps:map1");
- else if(which==1)Loadlevel((char *)":Data:Maps:map2");
- else if(which==2)Loadlevel((char *)":Data:Maps:map3");
- else if(which==3)Loadlevel((char *)":Data:Maps:map4");
- else if(which==4)Loadlevel((char *)":Data:Maps:map5");
- else if(which==5)Loadlevel((char *)":Data:Maps:map6");
- else if(which==6)Loadlevel((char *)":Data:Maps:map7");
- else if(which==7)Loadlevel((char *)":Data:Maps:map8");
- else if(which==8)Loadlevel((char *)":Data:Maps:map9");
- else if(which==9)Loadlevel((char *)":Data:Maps:map10");
- else if(which==10)Loadlevel((char *)":Data:Maps:map11");
- else if(which==11)Loadlevel((char *)":Data:Maps:map12");
- else if(which==12)Loadlevel((char *)":Data:Maps:map13");
- else if(which==13)Loadlevel((char *)":Data:Maps:map14");
- else if(which==14)Loadlevel((char *)":Data:Maps:map15");
- else if(which==15)Loadlevel((char *)":Data:Maps:map16");
- else if(which==-1){tutoriallevel=-1;Loadlevel((char *)":Data:Maps:tutorial");}
- else Loadlevel((char *)":Data:Maps:mapsave");
-
whichlevel=which;
+
+ if (which == -1)
+ {
+ tutoriallevel = -1;
+ Loadlevel("tutorial");
+ }
+ else if (which >= 0 && which <= 15)
+ {
+ char buf[32];
+ snprintf(buf, 32, "map%d", which + 1);
+ Loadlevel(buf);
+ }
+ else
+ Loadlevel("mapsave");
}
-void Game::Loadlevel(char *name){
+void Game::Loadlevel(const char *name){
int i,j,k,l,m;
static int oldlevel;
int templength;
float lamefloat;
int lameint;
+ static const char *pfx = ":Data:Maps:";
+ char *buf;
float headprop,legprop,armprop,bodyprop;
if(!firstload){
oldlevel=50;
}
- OPENAL_SetPaused(channels[whooshsound], true);
- OPENAL_SetPaused(channels[stream_firesound], true);
+ pause_sound(whooshsound);
+ pause_sound(stream_firesound);
// Change the map filename into something that is os specific
- char *FixedFN = ConvertFileName(name);
+ buf = (char*) alloca(strlen(pfx) + strlen(name) + 1);
+ sprintf(buf, "%s%s", pfx, name);
+ const char *FixedFN = ConvertFileName(buf);
int mapvers;
FILE *tfile;
tfile=fopen( FixedFN, "rb" );
if(tfile)
{
- OPENAL_SetPaused(channels[stream_firesound], true);
+ pause_sound(stream_firesound);
scoreadded=0;
player[0].creature=rabbittype;
}
- for(i=0;i<max_dialogues;i++)
- {
- for(j=0;j<max_dialoguelength;j++)
- {
- for(k=0;k<128;k++)
- {
- dialoguetext[i][j][k]='\0';
- }
- for(k=0;k<64;k++)
- {
- dialoguename[i][j][k]='\0';
- }
- }
- }
-
player[0].lastattack=-1;
player[0].lastattack2=-1;
player[0].lastattack3=-1;
funpackf(tfile, "Bb", &dialoguetext[k][l][m]);
if(dialoguetext[k][l][m]=='\0')break;
}
+ dialoguetext[k][l][m] = 0;
funpackf(tfile, "Bi",&templength);
if(templength>64||templength<=0)templength=64;
break;
}
}
+ dialoguename[k][l][m] = 0;
funpackf(tfile, "Bf Bf Bf", &dialoguecamera[k][l].x, &dialoguecamera[k][l].y, &dialoguecamera[k][l].z);
funpackf(tfile, "Bi", &participantfocus[k][l]);
funpackf(tfile, "Bi", &participantaction[k][l]);
if(mainmenu==1||mainmenu==2||mainmenu==100){
OPENAL_SetFrequency(OPENAL_ALL, 0.001);
emit_stream_np(stream_music3);
- OPENAL_SetPaused(channels[music1], true);
+ pause_sound(music1);
}
}
if(!mainmenu){
- OPENAL_SetPaused(channels[stream_music3], true);
- OPENAL_SetPaused(channels[music1], false);
+ pause_sound(stream_music3);
+ resume_stream(music1);
}
}
if(mainmenu==3){
{
//resume
mainmenu=0;
- OPENAL_SetPaused(channels[stream_music3], true);
- OPENAL_SetPaused(channels[music1], false);
+ pause_sound(stream_music3);
+ resume_stream(music1);
}
}
if(!gameon){
//quit
tryquit=1;
- OPENAL_SetPaused(channels[stream_music3], true);
+ pause_sound(stream_music3);
}
else{
//end game
musictoggle=1-musictoggle;
if(!musictoggle){
- OPENAL_SetPaused(channels[music1], true);
- OPENAL_SetPaused(channels[stream_music2], true);
- OPENAL_SetPaused(channels[stream_music3], true);
+ pause_sound(music1);
+ pause_sound(stream_music2);
+ pause_sound(stream_music3);
for(i=0;i<4;i++){
oldmusicvolume[i]=0;
mainmenu=0;
gameon=1;
- OPENAL_SetPaused(channels[stream_music3], true);
+ pause_sound(stream_music3);
}
if(Input::Button()&&!oldbutton&&(selected-7>=accountactive->getCampaignChoicesMade())){
fireSound();
targetlevel=7;
if(firstload) TickOnceAfter();
else LoadStuff();
- for(i=0;i<255;i++){
- mapname[i]='\0';
- }
- mapname[0]=':';
- mapname[1]='D';
- mapname[2]='a';
- mapname[3]='t';
- mapname[4]='a';
- mapname[5]=':';
- mapname[6]='M';
- mapname[7]='a';
- mapname[8]='p';
- mapname[9]='s';
- mapname[10]=':';
- strcat(mapname,campaignmapname[campaignchoicewhich[selected-7-accountactive->getCampaignChoicesMade()]]);
whichchoice=selected-7-accountactive->getCampaignChoicesMade();
visibleloading=1;
stillloading=1;
- Loadlevel(mapname);
+ Loadlevel(campaignmapname[campaignchoicewhich[selected-7-accountactive->getCampaignChoicesMade()]]);
//Loadlevel(campaignmapname[levelorder[selected-7]]);
campaign=1;
mainmenu=0;
gameon=1;
- OPENAL_SetPaused(channels[stream_music3], true);
+ pause_sound(stream_music3);
}
if(Input::Button()&&!oldbutton&&selected==4){
fireSound();
mainmenu=0;
gameon=1;
- OPENAL_SetPaused(channels[stream_music3], true);
+ pause_sound(stream_music3);
}
if(Input::Button()&&!oldbutton&&selected==numchallengelevels){
fireSound();
player[k].targetanimation=walljumpleftanim;
player[k].targetframe=0;
emit_sound_at(movewhooshsound, player[k].coords);
- if(k==0)OPENAL_SetPaused(channels[whooshsound], true);
+ if(k==0)pause_sound(whooshsound);
lowpointtarget=DoRotation(objects.model[i].facenormals[whichhit],0,objects.rotation[i],0);
player[k].rotation=-asin(0-lowpointtarget.x);
player[k].targetanimation=walljumprightanim;
player[k].targetframe=0;
emit_sound_at(movewhooshsound, player[k].coords);
- if(k==0)OPENAL_SetPaused(channels[whooshsound], true);
+ if(k==0)pause_sound(whooshsound);
lowpointtarget=DoRotation(objects.model[i].facenormals[whichhit],0,objects.rotation[i],0);
player[k].rotation=-asin(0-lowpointtarget.x);
player[k].targetanimation=walljumpbackanim;
player[k].targetframe=0;
emit_sound_at(movewhooshsound, player[k].coords);
- if(k==0)OPENAL_SetPaused(channels[whooshsound], true);
+ if(k==0)pause_sound(whooshsound);
lowpointtarget=DoRotation(objects.model[i].facenormals[whichhit],0,objects.rotation[i],0);
player[k].rotation=-asin(0-lowpointtarget.x);
player[k].targetanimation=walljumpfrontanim;
player[k].targetframe=0;
emit_sound_at(movewhooshsound, player[k].coords);
- if(k==0)OPENAL_SetPaused(channels[whooshsound], true);
+ if(k==0)pause_sound(whooshsound);
lowpointtarget=DoRotation(objects.model[i].facenormals[whichhit],0,objects.rotation[i],0);
player[k].rotation=-asin(0-lowpointtarget.x);
player[k].onterrain=1;
if(player[k].id==0){
- OPENAL_SetPaused(channels[whooshsound], true);
+ pause_sound(whooshsound);
OPENAL_SetVolume(channels[whooshsound], 0);
}
if(j>10||!player[k].isRun()){
if(player[k].targetanimation==jumpdownanim||player[k].targetanimation==jumpupanim){
- if(k==0)OPENAL_SetPaused(channels[whooshsound], true);
+ if(k==0)pause_sound(whooshsound);
}
emit_sound_at(jumpsound, player[k].coords, 128.);
}
}
if(!directing){
- OPENAL_SetPaused(channels[whooshsound], true);
+ pause_sound(whooshsound);
viewer=dialoguecamera[whichdialogue][indialogue];
if(viewer.y<terrain.getHeight(viewer.x,viewer.z)+.1){
viewer.y=terrain.getHeight(viewer.x,viewer.z)+.1;
dialoguetime+=multiplier;
- skybox.cloudmove+=multiplier;
hawkrotation+=multiplier*25;
realhawkcoords=0;
realhawkcoords.x=25;
}
if(!player[0].onfire){
emit_sound_at(fireendsound, player[0].coords);
- OPENAL_SetPaused(channels[stream_firesound], true);
+ pause_sound(stream_firesound);
}
slomotogglekeydown=1;
}
//player[0].DoDamage(1000);
emit_sound_at(whooshsound, player[0].coords, 128.);
- //OPENAL_SetPaused(channels[whooshsound], true);
texturesizetogglekeydown=1;
}
for(k=0;k<numplayers;k++){
player[k].DoAnimations();
- player[k].whichpatchx=player[k].coords.x/(terrain.size/subdivision*terrain.scale*terraindetail);
- player[k].whichpatchz=player[k].coords.z/(terrain.size/subdivision*terrain.scale*terraindetail);
+ player[k].whichpatchx=player[k].coords.x/(terrain.size/subdivision*terrain.scale);
+ player[k].whichpatchz=player[k].coords.z/(terrain.size/subdivision*terrain.scale);
}
objects.DoStuff();
if(musicvolume[2]>0&&oldmusicvolume[2]<=0)
emit_stream_np(stream_music3, musicvolume[2]);
if(musicvolume[0]<=0&&oldmusicvolume[0]>0){
- OPENAL_SetPaused(channels[music1], true);
+ pause_sound(music1);
}
if(musicvolume[1]<=0&&oldmusicvolume[1]>0){
- OPENAL_SetPaused(channels[stream_music2], true);
+ pause_sound(stream_music2);
}
if(musicvolume[2]<=0&&oldmusicvolume[2]>0){
- OPENAL_SetPaused(channels[stream_music3], true);
+ pause_sound(stream_music3);
}
if(musicvolume[0]!=oldmusicvolume[0]){
oldmusicvolume[i]=musicvolume[i];
}
} else {
- OPENAL_SetPaused(channels[music1], true);
- OPENAL_SetPaused(channels[stream_music2], true);
- OPENAL_SetPaused(channels[stream_music3], true);
+ pause_sound(music1);
+ pause_sound(stream_music2);
+ pause_sound(stream_music3);
for(i=0;i<4;i++){
oldmusicvolume[i]=0;
fireSound(firestartsound);
- for(i=0;i<255;i++){
- mapname[i]='\0';
- }
- mapname[0]=':';
- mapname[1]='D';
- mapname[2]='a';
- mapname[3]='t';
- mapname[4]='a';
- mapname[5]=':';
- mapname[6]='M';
- mapname[7]='a';
- mapname[8]='p';
- mapname[9]='s';
- mapname[10]=':';
- strcat(mapname,campaignmapname[levelorder[accountactive->getCampaignChoicesMade()]]);//[campaignchoicewhich[whichchoice]]);
- Loadlevel(mapname);
+ Loadlevel(campaignmapname[levelorder[accountactive->getCampaignChoicesMade()]]);
fireSound();
loading=2;
loadtime=0;
targetlevel=7;
- //if(firstload)TickOnceAfter();
if(!firstload)LoadStuff();
- //else {
- for(i=0;i<255;i++){
- mapname[i]='\0';
- }
- mapname[0]=':';
- mapname[1]='D';
- mapname[2]='a';
- mapname[3]='t';
- mapname[4]='a';
- mapname[5]=':';
- mapname[6]='M';
- mapname[7]='a';
- mapname[8]='p';
- mapname[9]='s';
- mapname[10]=':';
-
- strcat(mapname,campaignmapname[campaignchoicewhich[0]]);
whichchoice=0;
visibleloading=1;
stillloading=1;
- Loadlevel(mapname);
+ Loadlevel(campaignmapname[campaignchoicewhich[0]]);
campaign=1;
mainmenu=0;
gameon=1;
- OPENAL_SetPaused(channels[stream_music3], true);
+ pause_sound(stream_music3);
stealthloading=0;
}