- float maxdistance=0;
- float tempdist;
- int whichclosest;
- for(i=0;i<objects.numobjects;i++)
- {
- tempdist=findDistancefast(&objects.center,&objects.position[i]);
- if(tempdist>maxdistance)
- {
- whichclosest=i;
- maxdistance=tempdist;
- }
- }
- objects.radius=fast_sqrt(maxdistance);
- }
-
- if(visibleloading){loadscreencolor=4; LoadingScreen();}
- //mapcenter=objects.center;
- //mapradius=objects.radius;
-
- funpackf(tfile, "Bi", &numplayers);
- int howmanyremoved=0;
- bool removeanother=0;
- if(numplayers>1&&numplayers<maxplayers)
- {
- for(i=1;i<numplayers;i++)
- {
- if(visibleloading){loadscreencolor=4; LoadingScreen();}
- removeanother=0;
-
- funpackf(tfile, "Bi Bi Bf Bf Bf Bi",&player[i-howmanyremoved].whichskin,&player[i-howmanyremoved].creature, &player[i-howmanyremoved].coords.x,&player[i-howmanyremoved].coords.y,&player[i-howmanyremoved].coords.z,&player[i-howmanyremoved].num_weapons);
- if(mapvers>=5)funpackf(tfile, "Bi", &player[i-howmanyremoved].howactive);
- else player[i-howmanyremoved].howactive=typeactive;
- if(mapvers>=3)funpackf(tfile, "Bf",&player[i-howmanyremoved].scale);
- else player[i-howmanyremoved].scale=-1;
- if(mapvers>=11)funpackf(tfile, "Bb",&player[i-howmanyremoved].immobile);
- else player[i-howmanyremoved].immobile=0;
- if(mapvers>=12)funpackf(tfile, "Bf",&player[i-howmanyremoved].rotation);
- else player[i-howmanyremoved].rotation=0;
- player[i-howmanyremoved].targetrotation=player[i-howmanyremoved].rotation;
- if(player[i-howmanyremoved].num_weapons<0||player[i-howmanyremoved].num_weapons>5){
- removeanother=1;
- howmanyremoved++;
- }
- if(!removeanother)
- {
- if(player[i-howmanyremoved].num_weapons>0&&player[i-howmanyremoved].num_weapons<5)
- {
- for(j=0;j<player[i-howmanyremoved].num_weapons;j++)
- {
- player[i-howmanyremoved].weaponids[j]=weapons.numweapons;
- funpackf(tfile, "Bi", &weapons.type[player[i-howmanyremoved].weaponids[j]]);
- weapons.owner[player[i-howmanyremoved].weaponids[j]]=i;
- weapons.numweapons++;
- }
- }
- funpackf(tfile, "Bi", &player[i-howmanyremoved].numwaypoints);
- //player[i-howmanyremoved].numwaypoints=10;
- for(j=0;j<player[i-howmanyremoved].numwaypoints;j++)
- {
- funpackf(tfile, "Bf", &player[i-howmanyremoved].waypoints[j].x);
- funpackf(tfile, "Bf", &player[i-howmanyremoved].waypoints[j].y);
- funpackf(tfile, "Bf", &player[i-howmanyremoved].waypoints[j].z);
- if(mapvers>=5)funpackf(tfile, "Bi", &player[i-howmanyremoved].waypointtype[j]);
- else player[i-howmanyremoved].waypointtype[j] = wpkeepwalking;
- }
-
- funpackf(tfile, "Bi", &player[i-howmanyremoved].waypoint);
- if(player[i-howmanyremoved].waypoint>player[i-howmanyremoved].numwaypoints-1)player[i-howmanyremoved].waypoint=0;
-
- funpackf(tfile, "Bf Bf Bf", &player[i-howmanyremoved].armorhead, &player[i-howmanyremoved].armorhigh, &player[i-howmanyremoved].armorlow);
- funpackf(tfile, "Bf Bf Bf", &player[i-howmanyremoved].protectionhead, &player[i-howmanyremoved].protectionhigh, &player[i-howmanyremoved].protectionlow);
- funpackf(tfile, "Bf Bf Bf", &player[i-howmanyremoved].metalhead, &player[i-howmanyremoved].metalhigh, &player[i-howmanyremoved].metallow);
- funpackf(tfile, "Bf Bf", &player[i-howmanyremoved].power, &player[i-howmanyremoved].speedmult);
-
- if(mapvers>=4)funpackf(tfile, "Bf Bf Bf Bf", &headprop, &bodyprop, &armprop, &legprop);
- else
- {
- headprop=1;
- bodyprop=1;
- armprop=1;
- legprop=1;
- }
- if(player[i-howmanyremoved].creature==wolftype)
- {
- player[i-howmanyremoved].proportionhead=1.1*headprop;
- player[i-howmanyremoved].proportionbody=1.1*bodyprop;
- player[i-howmanyremoved].proportionarms=1.1*armprop;
- player[i-howmanyremoved].proportionlegs=1.1*legprop;
- }
-
- if(player[i-howmanyremoved].creature==rabbittype)
- {
- player[i-howmanyremoved].proportionhead=1.2*headprop;
- player[i-howmanyremoved].proportionbody=1.05*bodyprop;
- player[i-howmanyremoved].proportionarms=1.00*armprop;
- player[i-howmanyremoved].proportionlegs=1.1*legprop;
- player[i-howmanyremoved].proportionlegs.y=1.05*legprop;
- }
-
- funpackf(tfile, "Bi", &player[i-howmanyremoved].numclothes);
- if(player[i-howmanyremoved].numclothes)
- {
- for(k=0;k<player[i-howmanyremoved].numclothes;k++)
- {
- int templength;
- funpackf(tfile, "Bi", &templength);
- for(l=0;l<templength;l++)
- funpackf(tfile, "Bb", &player[i-howmanyremoved].clothes[k][l]);
- player[i-howmanyremoved].clothes[k][templength]='\0';
- funpackf(tfile, "Bf Bf Bf", &player[i-howmanyremoved].clothestintr[k], &player[i-howmanyremoved].clothestintg[k], &player[i-howmanyremoved].clothestintb[k]);
- }
- }
- }
- }
- }
- if(visibleloading){loadscreencolor=4; LoadingScreen();}
-
- numplayers-=howmanyremoved;
- funpackf(tfile, "Bi", &numpathpoints);
- if(numpathpoints>30||numpathpoints<0)
- numpathpoints=0;
- if(numpathpoints)
- {
- for(j=0;j<numpathpoints;j++)
- {
- funpackf(tfile, "Bf Bf Bf Bi", &pathpoint[j].x,&pathpoint[j].y,&pathpoint[j].z,&numpathpointconnect[j]);
- for(k=0;k<numpathpointconnect[j];k++){
- funpackf(tfile, "Bi", &pathpointconnect[j][k]);
- }
- }
- }
- if(visibleloading){loadscreencolor=4; LoadingScreen();}
-
- funpackf(tfile, "Bf Bf Bf Bf", &mapcenter.x,&mapcenter.y,&mapcenter.z,&mapradius);
-
- SetUpLighting();
- if(environment!=oldenvironment)Setenvironment(environment);
- oldenvironment=environment;
-
- if(!stealthloading)
- {
- j=objects.numobjects;
- objects.numobjects=0;
- for(i=0;i<j;i++)
- {
- //if(objects.type[i]!=spiketype)
- objects.MakeObject(objects.type[i],objects.position[i],objects.rotation[i],objects.rotation2[i],objects.scale[i]);
- if(visibleloading){loadscreencolor=4; LoadingScreen();}
- }
-
- //if(skyboxtexture){
- terrain.DoShadows();
- if(visibleloading){loadscreencolor=4; LoadingScreen();}
- objects.DoShadows();
- if(visibleloading){loadscreencolor=4; LoadingScreen();}
- /*}
- else terrain.DoLighting();
- */
- }
-
- fclose(tfile);
-
- oldlevel=whichlevel;
-
-
- if(numplayers>maxplayers-1)numplayers=maxplayers-1;
- for(i=0;i<numplayers;i++)
- {
- if(visibleloading){loadscreencolor=4; LoadingScreen();}
- player[i].burnt=0;
- player[i].bled=0;
- player[i].onfire=0;
- if(i==0||player[i].scale<0)player[i].scale=.2;
- player[i].skeleton.free=0;
- player[i].skeleton.id=i;
- //if(Random()%2==0)player[i].creature=wolftype;
- //else player[i].creature=rabbittype;
- if(i==0&&mapvers<9)player[i].creature=rabbittype;
- if(player[i].creature!=wolftype)player[i].skeleton.Load((char *)":Data:Skeleton:Basic Figure",(char *)":Data:Skeleton:Basic Figurelow",(char *)":Data:Skeleton:Rabbitbelt",(char *)":Data:Models:Body.solid",(char *)":Data:Models:Body2.solid",(char *)":Data:Models:Body3.solid",(char *)":Data:Models:Body4.solid",(char *)":Data:Models:Body5.solid",(char *)":Data:Models:Body6.solid",(char *)":Data:Models:Body7.solid",(char *)":Data:Models:Bodylow.solid",(char *)":Data:Models:Belt.solid",0);
- else
- {
- if(player[i].creature!=wolftype){
- player[i].skeleton.Load((char *)":Data:Skeleton:Basic Figure",(char *)":Data:Skeleton:Basic Figurelow",(char *)":Data:Skeleton:Rabbitbelt",(char *)":Data:Models:Body.solid",(char *)":Data:Models:Body2.solid",(char *)":Data:Models:Body3.solid",(char *)":Data:Models:Body4.solid",(char *)":Data:Models:Body5.solid",(char *)":Data:Models:Body6.solid",(char *)":Data:Models:Body7.solid",(char *)":Data:Models:Bodylow.solid",(char *)":Data:Models:Belt.solid",1);
- LoadTexture(":Data:Textures:Belt.png",&player[i].skeleton.drawmodelclothes.textureptr,1,1);
- }
- if(player[i].creature==wolftype){
- player[i].skeleton.Load((char *)":Data:Skeleton:Basic Figure Wolf",(char *)":Data:Skeleton:Basic Figure Wolf Low",(char *)":Data:Skeleton:Rabbitbelt",(char *)":Data:Models:Wolf.solid",(char *)":Data:Models:Wolf2.solid",(char *)":Data:Models:Wolf3.solid",(char *)":Data:Models:Wolf4.solid",(char *)":Data:Models:Wolf5.solid",(char *)":Data:Models:Wolf6.solid",(char *)":Data:Models:Wolf7.solid",(char *)":Data:Models:Wolflow.solid",(char *)":Data:Models:Belt.solid",0);
- }
- }
-
-
- int texsize;
- texsize=512*512*3/texdetail/texdetail;
- //if(!player[i].loaded)player[i].skeleton.skinText = new GLubyte[texsize];
- //player[i].skeleton.skinText.resize(texsize);
-
- LoadTextureSave(creatureskin[player[i].creature][player[i].whichskin],&player[i].skeleton.drawmodel.textureptr,1,&player[i].skeleton.skinText[0],&player[i].skeleton.skinsize);
-
- if(player[i].numclothes)
- {
- for(j=0;j<player[i].numclothes;j++)
- {
- tintr=player[i].clothestintr[j];
- tintg=player[i].clothestintg[j];
- tintb=player[i].clothestintb[j];
- AddClothes((char *)player[i].clothes[j],0,1,&player[i].skeleton.skinText[0],&player[i].skeleton.skinsize);
- }
- player[i].DoMipmaps(5,0,0,player[i].skeleton.skinsize,player[i].skeleton.skinsize);
- }
-
- player[i].currentanimation=bounceidleanim;
- player[i].targetanimation=bounceidleanim;
- player[i].currentframe=0;
- player[i].targetframe=1;
- player[i].target=0;
- player[i].speed=1+(float)(Random()%100)/1000;
- if(difficulty==0)player[i].speed-=.2;
- if(difficulty==1)player[i].speed-=.1;
-
- player[i].velocity=0;
- player[i].oldcoords=player[i].coords;
- player[i].realoldcoords=player[i].coords;
-
- player[i].id=i;
- player[i].skeleton.id=i;
- player[i].updatedelay=0;
- player[i].normalsupdatedelay=0;
-
- player[i].aitype=passivetype;
- player[i].aitarget=0;
- player[i].madskills=0;
-
- if(i==0)
- {
- player[i].proportionhead=1.2;
- player[i].proportionbody=1.05;
- player[i].proportionarms=1.00;
- player[i].proportionlegs=1.1;
- player[i].proportionlegs.y=1.05;
- }
- player[i].headless=0;
- player[i].currentoffset=0;
- player[i].targetoffset=0;
- /*player[i].armorhead=1;
- player[i].armorhigh=1;
- player[i].armorlow=1;
- player[i].protectionhead=1;
- player[i].protectionhigh=1;
- player[i].protectionlow=1;
- player[i].metalhead=1;
- player[i].metalhigh=1;
- player[i].metallow=1;
- player[i].power=1;
- player[i].speedmult=1;*/
-
- player[i].damagetolerance=200;
-
- if(player[i].creature==wolftype)
- {
- /*player[i].proportionhead=1.1;
- player[i].proportionbody=1.1;
- player[i].proportionarms=1.1;
- player[i].proportionlegs=1.1;
- player[i].proportionlegs.y=1.1;*/
- if(i==0||player[i].scale<0)player[i].scale=.23;
-
- player[i].damagetolerance=300;
- }
-
- if(visibleloading){loadscreencolor=4; LoadingScreen();}
- if(cellophane)
- {
- player[i].proportionhead.z=0;
- player[i].proportionbody.z=0;
- player[i].proportionarms.z=0;
- player[i].proportionlegs.z=0;
- }
-
- player[i].tempanimation.Load((char *)":Data:Animations:Tempanim",0,0);
-
- player[i].headmorphness=0;
- player[i].targetheadmorphness=1;
- player[i].headmorphstart=0;
- player[i].headmorphend=0;
-
- player[i].pausetime=0;
-
- player[i].dead=0;
- player[i].jumppower=5;
- player[i].damage=0;
- player[i].permanentdamage=0;
- player[i].superpermanentdamage=0;
-
- player[i].forwardkeydown=0;
- player[i].leftkeydown=0;
- player[i].backkeydown=0;
- player[i].rightkeydown=0;
- player[i].jumpkeydown=0;
- player[i].crouchkeydown=0;
- player[i].throwkeydown=0;
-
- player[i].collided=-10;
- player[i].loaded=1;
- player[i].bloodloss=0;
- player[i].weaponactive=-1;
- player[i].weaponstuck=-1;
- player[i].bleeding=0;
- player[i].deathbleeding=0;
- player[i].stunned=0;
- player[i].hasvictim=0;
- player[i].wentforweapon=0;
- }
-
- player[0].aitype=playercontrolled;
- player[0].weaponactive=-1;
-
- if(difficulty==1)
- {
- //player[0].speedmult=1/.9;
- player[0].power=1/.9;
- }
-
- if(difficulty==0)
- {
- //player[0].speedmult=1/.8;
- player[0].power=1/.8;
- }
-
- //player[0].weaponstuck=1;
-
- if(difficulty==1)player[0].damagetolerance=250;
- if(difficulty==0)player[0].damagetolerance=300;
- if(difficulty==0)player[0].armorhead*=1.5;
- if(difficulty==0)player[0].armorhigh*=1.5;
- if(difficulty==0)player[0].armorlow*=1.5;
- cameraloc=player[0].coords;
- cameraloc.y+=5;
- rotation=player[0].rotation;
-
- hawkcoords=player[0].coords;
- hawkcoords.y+=30;
-
- if(visibleloading){loadscreencolor=4; LoadingScreen();}
- //weapons.numweapons=numplayers;
- for(i=0;i<weapons.numweapons;i++)
- {
- weapons.bloody[i]=0;
- weapons.blooddrip[i]=0;
- weapons.blooddripdelay[i]=0;
- weapons.onfire[i]=0;
- weapons.flamedelay[i]=0;
- weapons.damage[i]=0;
- //weapons.type[i]=sword;
- if(weapons.type[i]==sword){
- weapons.mass[i]=1.5;
- weapons.tipmass[i]=1;
- weapons.length[i]=.8;
- }
- if(weapons.type[i]==staff){
- weapons.mass[i]=2;
- weapons.tipmass[i]=1;
- weapons.length[i]=1.5;
- }
- if(weapons.type[i]==knife){
- weapons.mass[i]=1;
- weapons.tipmass[i]=1.2;
- weapons.length[i]=.25;
- }
- weapons.position[i]=-1000;
- weapons.tippoint[i]=-1000;
- }
-
-/* for(i=0;i<32;i++){
- //if(i<16||i>20)
- OPENAL_StopSound(i);
- }
-*/
- LOG("Starting background music...");
-
- OPENAL_StopSound(OPENAL_ALL);
- if(environment==snowyenvironment)
- {
- if(ambientsound)
- {
- PlayStreamEx(stream_wind, strm[stream_wind], NULL, true);
- OPENAL_SetPaused(channels[stream_wind], false);
- OPENAL_SetVolume(channels[stream_wind], 256);
- }
- }
- else if(environment==desertenvironment)
- {
- if(ambientsound)
- {
- //PlaySoundEx(desertambient,
- // samp[desertambient], NULL, true);
- PlayStreamEx(stream_desertambient,
- strm[stream_desertambient], NULL, true);
- OPENAL_SetPaused(channels[stream_desertambient], false);
- OPENAL_SetVolume(channels[stream_desertambient], 256);
- }
- }
- else if(environment==grassyenvironment)
- {
- if(ambientsound)
- {
- //PlaySoundEx(wind, samp[wind], NULL, true);
- PlayStreamEx(stream_wind, strm[stream_wind], NULL, true);
- OPENAL_SetPaused(channels[stream_wind], false);
- OPENAL_SetVolume(channels[stream_wind], 100);
- }
- }
- oldmusicvolume[0]=0;
- oldmusicvolume[1]=0;
- oldmusicvolume[2]=0;
- oldmusicvolume[3]=0;
-
-
- /*LoadTexture(":Data:Textures:cloud.png",&sprites.cloudtexture,1,1);
- LoadTexture(":Data:Textures:cloudimpact.png",&sprites.cloudimpacttexture,1,1);
- LoadTexture(":Data:Textures:bloodparticle.png",&sprites.bloodtexture,1,1);
- LoadTexture(":Data:Textures:snowflake.png",&sprites.snowflaketexture,1,1);
- LoadTexture(":Data:Textures:flame.png",&sprites.flametexture,1,1);
- LoadTexture(":Data:Textures:bloodflame.png",&sprites.bloodflametexture,1,1);
- LoadTexture(":Data:Textures:smoke.png",&sprites.smoketexture,1,1);
- LoadTexture(":Data:Textures:shine.png",&sprites.shinetexture,1,0);
- */
-
- if(!firstload)
- {
- firstload=1;
- }
- }
- leveltime=0;
- loadingstuff=0;
- visibleloading=0;
-}
-
-void Game::Tick()
-{
- static int i,k,j,l,m;
- static XYZ facing,flatfacing,absflatfacing;
- static XYZ rotatetarget;
- static bool oldkey;
- static float oldtargetrotation;
- static int target, numgood;
- static XYZ tempcoords1,tempcoords2;
- static XYZ test;
- static XYZ test2;
- static XYZ lowpoint,lowpointtarget,lowpoint2,lowpointtarget2,lowpoint3,lowpointtarget3,lowpoint4,lowpointtarget4,lowpoint5,lowpointtarget5,lowpoint6,lowpointtarget6,lowpoint7,lowpointtarget7,colpoint,colpoint2;
- static int whichhit;
- static bool donesomething;
- static bool oldjumpkeydown;
-
- int templength;
-
- float headprop,bodyprop,armprop,legprop;
-
- for(i=0;i<15;i++){
- displaytime[i]+=multiplier;
- }
-
- static unsigned char theKeyMap[16];
- GetKeys( theKeyMap );
-
- keyboardfrozen=0;
-
-
- static bool mainmenutogglekeydown;
-
- if (IsKeyDown(theKeyMap, MAC_F6_KEY) && !freezetogglekeydown) {
- if (IsKeyDown(theKeyMap, MAC_SHIFT_KEY)) {
- stereoreverse=true;
- } else {
- stereoreverse=false;
- }
-
- if (stereoreverse) {
- printf("Stereo reversed\n");
- } else {
- printf("Stereo unreversed\n");
- }
- freezetogglekeydown=1;
- }
-
- if (IsKeyDown(theKeyMap, MAC_F7_KEY)) {
- if (IsKeyDown(theKeyMap, MAC_SHIFT_KEY)) {
- stereoseparation -= 0.001;
- } else {
- stereoseparation -= 0.010;
- }
-
- printf("Stereo decreased increased to %f\n", stereoseparation);
- }
-
- if (IsKeyDown(theKeyMap, MAC_F8_KEY)) {
- if (IsKeyDown(theKeyMap, MAC_SHIFT_KEY)) {
- stereoseparation += 0.001;
- } else {
- stereoseparation += 0.010;
- }
-
- printf("Stereo separation increased to %f\n", stereoseparation);
- }
-
-
- if(!console){
- if(mainmenu&&endgame==1)mainmenu=10;
- if(IsKeyDown(theKeyMap, MAC_ESCAPE_KEY)&&!mainmenutogglekeydown&&(mainmenu==7&&entername)){
- for(j=0;j<255;j++){
- displaytext[0][j]=' ';
- }
- displaychars[0]=0;
- displayselected=0;
- entername=0;
- mainmenutogglekeydown=1;
- }
- if((IsKeyDown(theKeyMap, MAC_ESCAPE_KEY)||(mainmenu==0&&((IsKeyDown(theKeyMap, jumpkey)||IsKeyDown(theKeyMap, MAC_SPACE_KEY)||(campaign)))&&!oldjumpkeydown&&campaign&&winfreeze))&&!mainmenutogglekeydown&&(!mainmenu||gameon||mainmenu==3||mainmenu==4||mainmenu==5||mainmenu==6||(mainmenu==7&&!entername)||mainmenu==9||mainmenu==11||mainmenu==13||mainmenu==17||mainmenu==10)){
- selected=-1;
- if(mainmenu==1||mainmenu==2||mainmenu==0){
- if(mainmenu==0&&!winfreeze)mainmenu=2;
- else if(mainmenu==0&&winfreeze&&(campaignchoosenext[campaignchoicewhich[whichchoice]])==1)mainmenu=100;
- else if(mainmenu==0&&winfreeze){
- /* if(campaignchoosenext[campaignchoicewhich[whichchoice]]==2)
- stealthloading=1;
- else stealthloading=0;
-
- if(!stealthloading){
- float gLoc[3]={0,0,0};
- float vel[3]={0,0,0};
- OPENAL_Sample_SetMinMaxDistance(samp[firestartsound], 9999.0f, 99999.0f);
- PlaySoundEx( firestartsound, samp[firestartsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[firestartsound], gLoc, vel);
- OPENAL_SetVolume(channels[firestartsound], 256);
- OPENAL_SetPaused(channels[firestartsound], false);
- OPENAL_Sample_SetMinMaxDistance(samp[firestartsound], 8.0f, 2000.0f);
-
- flashr=1;
- flashg=0;
- flashb=0;
- flashamount=1;
- flashdelay=1;
- }
-
- startbonustotal=0;
-
- for(i=0;i<campaignnumlevels;i++){
- levelvisible[i]=0;
- levelhighlight[i]=0;
- }
-
- levelorder[0]=0;
- levelvisible[0]=1;
- if(accountcampaignchoicesmade[accountactive])
- for(i=0;i<accountcampaignchoicesmade[accountactive];i++){
- levelorder[i+1]=campaignnextlevel[levelorder[i]][accountcampaignchoices[accountactive][i]];
- levelvisible[levelorder[i+1]]=1;
- }
- int whichlevelstart;
- whichlevelstart=accountcampaignchoicesmade[accountactive]-1;
- if(whichlevelstart<0){
- campaignchoicenum=1;
- campaignchoicewhich[0]=0;
- }
- else
- {
- campaignchoicenum=campaignnumnext[levelorder[whichlevelstart]];
- if(campaignchoicenum)
- for(i=0;i<campaignchoicenum;i++){
- campaignchoicewhich[i]=campaignnextlevel[levelorder[whichlevelstart]][i];
- levelvisible[campaignnextlevel[levelorder[whichlevelstart]][i]]=1;
- levelhighlight[campaignnextlevel[levelorder[whichlevelstart]][i]]=1;
- }
- }
-
- 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]=':';
-
- //accountcampaignchoices[accountactive][accountcampaignchoicesmade[accountactive]]=whichchoice;
- //accountcampaignchoicesmade[accountactive]++;
-
-
- strcat(mapname,campaignmapname[campaignchoicewhich[0]]);
- whichchoice=0;
- visibleloading=1;
- stillloading=1;
- Loadlevel(mapname);
- campaign=1;
- mainmenu=0;
- gameon=1;
- OPENAL_SetPaused(channels[music3], true);
-
- stealthloading=0;*/
- }
- else if(mainmenu==1||mainmenu==2)mainmenu=0;
- if(mainmenu&&musictoggle){
- if(mainmenu==1||mainmenu==2||mainmenu==100){
- OPENAL_SetFrequency(OPENAL_ALL, 0.001);
- PlayStreamEx( stream_music3, strm[stream_music3], NULL, true);
- OPENAL_SetPaused(channels[stream_music3], false);
- OPENAL_SetVolume(channels[stream_music3], 256);
- OPENAL_SetPaused(channels[music1], true);
- }
- }
- if(!mainmenu){
- OPENAL_SetPaused(channels[stream_music3], true);
- OPENAL_SetPaused(channels[music1], false);
- }
- }
- if(mainmenu==3){
- float gLoc[3]={0,0,0};
- float vel[3]={0,0,0};
- OPENAL_Sample_SetMinMaxDistance(samp[fireendsound], 9999.0f, 99999.0f);
- PlaySoundEx( fireendsound, samp[fireendsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[fireendsound], gLoc, vel);
- OPENAL_SetVolume(channels[fireendsound], 256);
- OPENAL_SetPaused(channels[fireendsound], false);
- OPENAL_Sample_SetMinMaxDistance(samp[fireendsound], 8.0f, 2000.0f);
-
- flashr=1;
- flashg=0;
- flashb=0;
- flashamount=1;
- flashdelay=1;
-
- if(newdetail>2)newdetail=detail;
- if(newdetail<0)newdetail=detail;
- if(newscreenwidth<0)newscreenwidth=screenwidth;
- if(newscreenheight<0)newscreenheight=screenheight;
-
- ofstream opstream(ConvertFileName(":Data:config.txt", "w"));
- opstream << "Screenwidth:\n";
- opstream << newscreenwidth;
- opstream << "\nScreenheight:\n";
- opstream << newscreenheight;
- opstream << "\nMouse sensitivity:\n";
- opstream << usermousesensitivity;
- opstream << "\nBlur(0,1):\n";
- opstream << ismotionblur;
- opstream << "\nOverall Detail(0,1,2) higher=better:\n";
- opstream << newdetail;
- opstream << "\nFloating jump:\n";
- opstream << floatjump;
- opstream << "\nMouse jump:\n";
- opstream << mousejump;
- opstream << "\nAmbient sound:\n";
- opstream << ambientsound;
- opstream << "\nBlood (0,1,2):\n";
- opstream << bloodtoggle;
- opstream << "\nAuto slomo:\n";
- opstream << autoslomo;
- opstream << "\nFoliage:\n";
- opstream << foliage;
- opstream << "\nMusic:\n";
- opstream << musictoggle;
- opstream << "\nTrilinear:\n";
- opstream << trilinear;
- opstream << "\nDecals(shadows,blood puddles,etc):\n";
- opstream << decals;
- opstream << "\nInvert mouse:\n";
- opstream << invertmouse;
- opstream << "\nGamespeed:\n";
- if(oldgamespeed==0)oldgamespeed=1;
- opstream << oldgamespeed;
- opstream << "\nDifficulty(0,1,2) higher=harder:\n";
- opstream << difficulty;
- opstream << "\nDamage effects(blackout, doublevision):\n";
- opstream << damageeffects;
- opstream << "\nText:\n";
- opstream << texttoggle;
- opstream << "\nDebug:\n";
- opstream << debugmode;
- opstream << "\nVBL Sync:\n";
- opstream << vblsync;
- opstream << "\nShow Points:\n";
- opstream << showpoints;
- opstream << "\nAlways Blur:\n";
- opstream << alwaysblur;
- opstream << "\nImmediate mode (turn on on G5):\n";
- opstream << immediate;
- opstream << "\nVelocity blur:\n";
- opstream << velocityblur;
- opstream << "\nVolume:\n";
- opstream << volume;
- opstream << "\nForward key:\n";
- opstream << KeyToChar(forwardkey);
- opstream << "\nBack key:\n";
- opstream << KeyToChar(backkey);
- opstream << "\nLeft key:\n";
- opstream << KeyToChar(leftkey);
- opstream << "\nRight key:\n";
- opstream << KeyToChar(rightkey);
- opstream << "\nJump key:\n";
- opstream << KeyToChar(jumpkey);
- opstream << "\nCrouch key:\n";
- opstream << KeyToChar(crouchkey);
- opstream << "\nDraw key:\n";
- opstream << KeyToChar(drawkey);
- opstream << "\nThrow key:\n";
- opstream << KeyToChar(throwkey);
- opstream << "\nAttack key:\n";
- opstream << KeyToChar(attackkey);
- opstream << "\nChat key:\n";
- opstream << KeyToChar(chatkey);
- opstream.close();
- }
- if(mainmenu==4||mainmenu==5||mainmenu==6||mainmenu==7||mainmenu==9||mainmenu==13||mainmenu==10||mainmenu==11||mainmenu==100){
- float gLoc[3]={0,0,0};
- float vel[3]={0,0,0};
- OPENAL_Sample_SetMinMaxDistance(samp[fireendsound], 9999.0f, 99999.0f);
- PlaySoundEx( fireendsound, samp[fireendsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[fireendsound], gLoc, vel);
- OPENAL_SetVolume(channels[fireendsound], 256);
- OPENAL_SetPaused(channels[fireendsound], false);
- OPENAL_Sample_SetMinMaxDistance(samp[fireendsound], 8.0f, 2000.0f);
-
- flashr=1;
- flashg=0;
- flashb=0;
- flashamount=1;
- flashdelay=1;
- }
- if(mainmenu==3&&gameon)mainmenu=2;
- if(mainmenu==3&&!gameon)mainmenu=1;
- if(mainmenu==5&&gameon)mainmenu=2;
- if(mainmenu==5&&!gameon)mainmenu=1;
- if(mainmenu==4)mainmenu=3;
- if(mainmenu==6)mainmenu=5;
- if(mainmenu==7)mainmenu=1;
- if(mainmenu==9)mainmenu=5;
- if(mainmenu==11)mainmenu=5;
- if(mainmenu==13)mainmenu=12;
- if(mainmenu==10)mainmenu=5;
- if(mainmenu==100){
- mainmenu=5;
- gameon=0;
- winfreeze=0;
- }
- mainmenutogglekeydown=1;
- }
- if(!IsKeyDown(theKeyMap, MAC_ESCAPE_KEY)){
- mainmenutogglekeydown=0;
- }
- }
-
- /*static bool minimaptogglekeydown;
- if(IsKeyDown(theKeyMap, MAC_TAB_KEY)&&!minimaptogglekeydown){
- minimap=1-minimap;
- minimaptogglekeydown=1;
- }
- if(!IsKeyDown(theKeyMap, MAC_TAB_KEY)){
- minimaptogglekeydown=0;
- }
- */
-
- static bool minimaptogglekeydown;
- if(IsKeyDown(theKeyMap, MAC_TAB_KEY)&&!minimaptogglekeydown&&tutoriallevel){
- if(tutorialstage!=51)
- tutorialstagetime=tutorialmaxtime;
- PlaySoundEx( consolefailsound, samp[consolefailsound], NULL, true);
- OPENAL_SetVolume(channels[consolefailsound], 128);
- OPENAL_SetPaused(channels[consolefailsound], false);
- minimaptogglekeydown=1;
- }
- if(!IsKeyDown(theKeyMap, MAC_TAB_KEY)){
- minimaptogglekeydown=0;
- }
-
- if(mainmenu){
- //menu buttons
- if(mainmenu==1||mainmenu==2){
- if(Button()&&!oldbutton&&selected==1){
- if(!gameon){
- float gLoc[3]={0,0,0};
- float vel[3]={0,0,0};
- OPENAL_Sample_SetMinMaxDistance(samp[firestartsound], 9999.0f, 99999.0f);
- PlaySoundEx( firestartsound, samp[firestartsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[firestartsound], gLoc, vel);
- OPENAL_SetVolume(channels[firestartsound], 256);
- OPENAL_SetPaused(channels[firestartsound], false);
- OPENAL_Sample_SetMinMaxDistance(samp[firestartsound], 8.0f, 2000.0f);
-
- flashr=1;
- flashg=0;
- flashb=0;
- flashamount=1;
- flashdelay=1;
-
- //new game
- if(accountactive!=-1)mainmenu=5;
- else mainmenu=7;
- /*
- startbonustotal=0;
-
- loading=2;
- loadtime=0;
- if(firstload)TickOnceAfter();
- if(!firstload)LoadStuff();
- else {
- Loadlevel(0);
- }
- mainmenu=0;
- gameon=1;
- OPENAL_SetPaused(channels[music3], true); */
- }
- else
- {
- //resume
- mainmenu=0;
- OPENAL_SetPaused(channels[stream_music3], true);
- OPENAL_SetPaused(channels[music1], false);
- }
- }
-
- if(Button()&&!oldbutton&&selected==2){
- float gLoc[3]={0,0,0};
- float vel[3]={0,0,0};
- OPENAL_Sample_SetMinMaxDistance(samp[firestartsound], 9999.0f, 99999.0f);
- PlaySoundEx( firestartsound, samp[firestartsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[firestartsound], gLoc, vel);
- OPENAL_SetVolume(channels[firestartsound], 256);
- OPENAL_SetPaused(channels[firestartsound], false);
- OPENAL_Sample_SetMinMaxDistance(samp[firestartsound], 8.0f, 2000.0f);
-
- flashr=1;
- flashg=0;
- flashb=0;
- flashamount=1;
- flashdelay=1;
-
- //options
-
- mainmenu=3;
-
- if(newdetail>2)newdetail=detail;
- if(newdetail<0)newdetail=detail;
- if(newscreenwidth>3000)newscreenwidth=screenwidth;
- if(newscreenwidth<0)newscreenwidth=screenwidth;
- if(newscreenheight>3000)newscreenheight=screenheight;
- if(newscreenheight<0)newscreenheight=screenheight;
- }
-
- if(Button()&&!oldbutton&&selected==3){
- float gLoc[3]={0,0,0};
- float vel[3]={0,0,0};
- OPENAL_Sample_SetMinMaxDistance(samp[fireendsound], 9999.0f, 99999.0f);
- PlaySoundEx( fireendsound, samp[fireendsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[fireendsound], gLoc, vel);
- OPENAL_SetVolume(channels[fireendsound], 256);
- OPENAL_SetPaused(channels[fireendsound], false);
- OPENAL_Sample_SetMinMaxDistance(samp[fireendsound], 8.0f, 2000.0f);
-
- flashr=1;
- flashg=0;
- flashb=0;
- flashamount=1;
- flashdelay=1;
-
- if(!gameon){
- //quit
- tryquit=1;
- OPENAL_SetPaused(channels[stream_music3], true);
- }
- else{
- //end game
- gameon=0;
- mainmenu=1;
- }
- }
- if(Button())oldbutton=1;
- else oldbutton=0;
- }
-
- if(mainmenu==3){
- if(Button()&&!oldbutton&&selected!=-1){
- float gLoc[3]={0,0,0};
- float vel[3]={0,0,0};
- OPENAL_Sample_SetMinMaxDistance(samp[firestartsound], 9999.0f, 99999.0f);
- PlaySoundEx( firestartsound, samp[firestartsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[firestartsound], gLoc, vel);
- OPENAL_SetVolume(channels[firestartsound], 256);
- OPENAL_SetPaused(channels[firestartsound], false);
- OPENAL_Sample_SetMinMaxDistance(samp[firestartsound], 8.0f, 2000.0f);
- }
- if(Button()&&!oldbutton&&selected==0){
-
- extern SDL_Rect **resolutions;
- bool isCustomResolution = true;
- bool found = false;
- for (int i = 0; (!found) && (resolutions[i]); i++)
- {
- if ((resolutions[i]->w == screenwidth) && (resolutions[i]->h == screenwidth))
- isCustomResolution = false;
-
- if ((resolutions[i]->w == newscreenwidth) && (resolutions[i]->h == newscreenheight))
- {
- i++;
- if (resolutions[i] != NULL)
- {
- newscreenwidth = (int) resolutions[i]->w;
- newscreenheight = (int) resolutions[i]->h;
- }
- else if (isCustomResolution)
- {
- if ((screenwidth == newscreenwidth) && (screenheight == newscreenheight))
- {
- newscreenwidth = (int) resolutions[0]->w;
- newscreenheight = (int) resolutions[0]->h;
- }
- else
- {
- newscreenwidth = screenwidth;
- newscreenheight = screenheight;
- }
- }
- else
- {
- newscreenwidth = (int) resolutions[0]->w;
- newscreenheight = (int) resolutions[0]->h;
- }
- found = true;
- }
- }
-
- if (!found)
- {
- newscreenwidth = (int) resolutions[0]->w;
- newscreenheight = (int) resolutions[0]->h;
- }
-
-
- }
- if(Button()&&!oldbutton&&selected==1){
- newdetail++;
- if(newdetail>2)newdetail=0;
- }
- if(Button()&&!oldbutton&&selected==2){
- bloodtoggle++;
- if(bloodtoggle>2)bloodtoggle=0;
- }
- if(Button()&&!oldbutton&&selected==3){
- difficulty++;
- if(difficulty>2)difficulty=0;
- }
- if(Button()&&!oldbutton&&selected==4){
- ismotionblur=1-ismotionblur;
- }
- if(Button()&&!oldbutton&&selected==5){
- decals=1-decals;
- }
- if(Button()&&!oldbutton&&selected==6){
- musictoggle=1-musictoggle;
-
- if(!musictoggle){
- OPENAL_SetPaused(channels[music1], true);
- OPENAL_SetPaused(channels[stream_music2], true);
- OPENAL_SetPaused(channels[stream_music3], true);
-
- for(i=0;i<4;i++){
- oldmusicvolume[i]=0;
- musicvolume[i]=0;
- }
- }
-
- if(musictoggle){
- PlayStreamEx( stream_music3, strm[stream_music3], NULL, true);
- OPENAL_SetPaused(channels[stream_music3], false);
- OPENAL_SetVolume(channels[stream_music3], 256);
- }
- }
- if(Button()&&!oldbutton&&selected==9){
- invertmouse=1-invertmouse;
- }
- if(Button()&&!oldbutton&&selected==10){
- usermousesensitivity+=.2;
- if(usermousesensitivity>2)usermousesensitivity=.2;
- }
- if(Button()&&!oldbutton&&selected==11){
- volume+=.1f;
- if(volume>1.0001f)volume=0;
- OPENAL_SetSFXMasterVolume((int)(volume*255));
- }
- if(Button()&&!oldbutton&&selected==7){
- /*float gLoc[3]={0,0,0};
- float vel[3]={0,0,0};
- OPENAL_Sample_SetMinMaxDistance(samp[firestartsound], 9999.0f, 99999.0f);
- PlaySoundEx( firestartsound, samp[firestartsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[firestartsound], gLoc, vel);
- OPENAL_SetVolume(channels[firestartsound], 256);
- OPENAL_SetPaused(channels[firestartsound], false);
- OPENAL_Sample_SetMinMaxDistance(samp[firestartsound], 8.0f, 2000.0f);
- */
- flashr=1;
- flashg=0;
- flashb=0;
- flashamount=1;
- flashdelay=1;
-
- //options
-
- mainmenu=4;
- keyselect=-1;
- }
- if(Button()&&!oldbutton&&selected==8){
- float gLoc[3]={0,0,0};
- float vel[3]={0,0,0};
- OPENAL_Sample_SetMinMaxDistance(samp[fireendsound], 9999.0f, 99999.0f);
- PlaySoundEx( fireendsound, samp[fireendsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[fireendsound], gLoc, vel);
- OPENAL_SetVolume(channels[fireendsound], 256);
- OPENAL_SetPaused(channels[fireendsound], false);
- OPENAL_Sample_SetMinMaxDistance(samp[fireendsound], 8.0f, 2000.0f);
-
- flashr=1;
- flashg=0;
- flashb=0;
- flashamount=1;
- flashdelay=1;
-
- if(newdetail>2)newdetail=detail;
- if(newdetail<0)newdetail=detail;
- if(newscreenwidth<0)newscreenwidth=screenwidth;
- if(newscreenheight<0)newscreenheight=screenheight;
-
-
- ofstream opstream(ConvertFileName(":Data:config.txt", "w"));
- opstream << "Screenwidth:\n";
- opstream << newscreenwidth;
- opstream << "\nScreenheight:\n";
- opstream << newscreenheight;
- opstream << "\nMouse sensitivity:\n";
- opstream << usermousesensitivity;
- opstream << "\nBlur(0,1):\n";
- opstream << ismotionblur;
- opstream << "\nOverall Detail(0,1,2) higher=better:\n";
- opstream << newdetail;
- opstream << "\nFloating jump:\n";
- opstream << floatjump;
- opstream << "\nMouse jump:\n";
- opstream << mousejump;
- opstream << "\nAmbient sound:\n";
- opstream << ambientsound;
- opstream << "\nBlood (0,1,2):\n";
- opstream << bloodtoggle;
- opstream << "\nAuto slomo:\n";
- opstream << autoslomo;
- opstream << "\nFoliage:\n";
- opstream << foliage;
- opstream << "\nMusic:\n";
- opstream << musictoggle;
- opstream << "\nTrilinear:\n";
- opstream << trilinear;
- opstream << "\nDecals(shadows,blood puddles,etc):\n";
- opstream << decals;
- opstream << "\nInvert mouse:\n";
- opstream << invertmouse;
- opstream << "\nGamespeed:\n";
- if(oldgamespeed==0)oldgamespeed=1;
- opstream << oldgamespeed;
- opstream << "\nDifficulty(0,1,2) higher=harder:\n";
- opstream << difficulty;
- opstream << "\nDamage effects(blackout, doublevision):\n";
- opstream << damageeffects;
- opstream << "\nText:\n";
- opstream << texttoggle;
- opstream << "\nDebug:\n";
- opstream << debugmode;
- opstream << "\nVBL Sync:\n";
- opstream << vblsync;
- opstream << "\nShow Points:\n";
- opstream << showpoints;
- opstream << "\nAlways Blur:\n";
- opstream << alwaysblur;
- opstream << "\nImmediate mode (turn on on G5):\n";
- opstream << immediate;
- opstream << "\nVelocity blur:\n";
- opstream << velocityblur;
- opstream << "\nVolume:\n";
- opstream << volume;
- opstream << "\nForward key:\n";
- opstream << KeyToChar(forwardkey);
- opstream << "\nBack key:\n";
- opstream << KeyToChar(backkey);
- opstream << "\nLeft key:\n";
- opstream << KeyToChar(leftkey);
- opstream << "\nRight key:\n";
- opstream << KeyToChar(rightkey);
- opstream << "\nJump key:\n";
- opstream << KeyToChar(jumpkey);
- opstream << "\nCrouch key:\n";
- opstream << KeyToChar(crouchkey);
- opstream << "\nDraw key:\n";
- opstream << KeyToChar(drawkey);
- opstream << "\nThrow key:\n";
- opstream << KeyToChar(throwkey);
- opstream << "\nAttack key:\n";
- opstream << KeyToChar(attackkey);
- opstream << "\nChat key:\n";
- opstream << KeyToChar(chatkey);
- opstream.close();
-
- if(mainmenu==3&&gameon)mainmenu=2;
- if(mainmenu==3&&!gameon)mainmenu=1;
- }
- if(Button())oldbutton=1;
- else oldbutton=0;
- }
- if(mainmenu==4){
- if(Button()&&!oldbutton&&selected!=-1&&keyselect==-1){
- float gLoc[3]={0,0,0};
- float vel[3]={0,0,0};
- OPENAL_Sample_SetMinMaxDistance(samp[firestartsound], 9999.0f, 99999.0f);
- PlaySoundEx( firestartsound, samp[firestartsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[firestartsound], gLoc, vel);
- OPENAL_SetVolume(channels[firestartsound], 256);
- OPENAL_SetPaused(channels[firestartsound], false);
- OPENAL_Sample_SetMinMaxDistance(samp[firestartsound], 8.0f, 2000.0f);
- }
- if(Button()&&!oldbutton&&selected<9&&keyselect==-1){
- keyselect=selected;
- oldbuttons[0]=1;
- oldbuttons[1]=1;
- oldbuttons[2]=1;
- }
- if(keyselect!=-1){
- for(i=0;i<3;i++)
- if(!buttons[i]&&!oldbutton&&!Button())oldbuttons[i]=0;
- for(i=0;i<140;i++){
- if((IsKeyDown(theKeyMap, i)||(buttons[0]&&!oldbuttons[0]&&!oldbutton)||(buttons[1]&&!oldbuttons[1]&&!oldbutton))&&keyselect!=-1){
- if(i!=MAC_ESCAPE_KEY&&(strcmp(KeyToChar(i),"unknown")||(buttons[0]&&!oldbuttons[0]&&!oldbutton)||(buttons[1]&&!oldbuttons[1]&&!oldbutton))){
- float gLoc[3]={0,0,0};
- float vel[3]={0,0,0};
- OPENAL_Sample_SetMinMaxDistance(samp[fireendsound], 9999.0f, 99999.0f);
- PlaySoundEx( fireendsound, samp[fireendsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[fireendsound], gLoc, vel);
- OPENAL_SetVolume(channels[fireendsound], 256);
- OPENAL_SetPaused(channels[fireendsound], false);
- OPENAL_Sample_SetMinMaxDistance(samp[fireendsound], 8.0f, 2000.0f);
-
- int keynum;
- keynum=i;
- if(buttons[0]&&!oldbuttons[0])keynum=MAC_MOUSEBUTTON1;
- if(buttons[1]&&!oldbuttons[1])keynum=MAC_MOUSEBUTTON2;
-
-
-
- if(keyselect==0)forwardkey=keynum;
- if(keyselect==1)backkey=keynum;
- if(keyselect==2)leftkey=keynum;
- if(keyselect==3)rightkey=keynum;
- if(keyselect==4)crouchkey=keynum;
- if(keyselect==5)jumpkey=keynum;
- if(keyselect==6)drawkey=keynum;
- if(keyselect==7)throwkey=keynum;
- if(keyselect==8)attackkey=keynum;
- keyselect=-1;
- }
- }
- }}
- if(Button()&&!oldbutton&&selected==9){
- float gLoc[3]={0,0,0};
- float vel[3]={0,0,0};
- OPENAL_Sample_SetMinMaxDistance(samp[fireendsound], 9999.0f, 99999.0f);
- PlaySoundEx( fireendsound, samp[fireendsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[fireendsound], gLoc, vel);
- OPENAL_SetVolume(channels[fireendsound], 256);
- OPENAL_SetPaused(channels[fireendsound], false);
- OPENAL_Sample_SetMinMaxDistance(samp[fireendsound], 8.0f, 2000.0f);
-
- flashr=1;
- flashg=0;
- flashb=0;
- flashamount=1;
- flashdelay=1;
-
- mainmenu=3;
-
- if(newdetail>2)newdetail=detail;
- if(newdetail<0)newdetail=detail;
- if(newscreenwidth>3000)newscreenwidth=screenwidth;
- if(newscreenwidth<0)newscreenwidth=screenwidth;
- if(newscreenheight>3000)newscreenheight=screenheight;
- if(newscreenheight<0)newscreenheight=screenheight;
- }
- }
-
- if(mainmenu==5){
-
- if(endgame==2){
- accountcampaignchoicesmade[accountactive]=0;
- accountcampaignscore[accountactive]=0;
- accountcampaigntime[accountactive]=0;
- endgame=0;
- }
-
- if(Button()&&!oldbutton&&selected==1){
- float gLoc[3]={0,0,0};
- float vel[3]={0,0,0};
- OPENAL_Sample_SetMinMaxDistance(samp[firestartsound], 9999.0f, 99999.0f);
- PlaySoundEx( firestartsound, samp[firestartsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[firestartsound], gLoc, vel);
- OPENAL_SetVolume(channels[firestartsound], 256);
- OPENAL_SetPaused(channels[firestartsound], false);
- OPENAL_Sample_SetMinMaxDistance(samp[firestartsound], 8.0f, 2000.0f);
-
- flashr=1;
- flashg=0;
- flashb=0;
- flashamount=1;
- flashdelay=1;
-
- startbonustotal=0;
-
- loading=2;
- loadtime=0;
- targetlevel=-1;
- if(firstload)TickOnceAfter();
- if(!firstload)LoadStuff();
- else {
- Loadlevel(-1);
- }
-
- mainmenu=0;
- gameon=1;
- OPENAL_SetPaused(channels[stream_music3], true);
- }
- if(Button()&&!oldbutton&&selected-7>=accountcampaignchoicesmade[accountactive]){//selected>=7&&(selected-7<=campaignnumchoices)){
- float gLoc[3]={0,0,0};
- float vel[3]={0,0,0};
- OPENAL_Sample_SetMinMaxDistance(samp[firestartsound], 9999.0f, 99999.0f);
- PlaySoundEx( firestartsound, samp[firestartsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[firestartsound], gLoc, vel);
- OPENAL_SetVolume(channels[firestartsound], 256);
- OPENAL_SetPaused(channels[firestartsound], false);
- OPENAL_Sample_SetMinMaxDistance(samp[firestartsound], 8.0f, 2000.0f);
-
- flashr=1;
- flashg=0;
- flashb=0;
- flashamount=1;
- flashdelay=1;
-
- startbonustotal=0;
-
- 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[selected-7-accountcampaignchoicesmade[accountactive]]]);
- whichchoice=selected-7-accountcampaignchoicesmade[accountactive];
- visibleloading=1;
- stillloading=1;
- Loadlevel(mapname);
- //Loadlevel(campaignmapname[levelorder[selected-7]]);
- //}
- campaign=1;
- mainmenu=0;
- gameon=1;
- OPENAL_SetPaused(channels[stream_music3], true);
- }
- if(Button()&&!oldbutton&&selected==4){
- float gLoc[3]={0,0,0};
- float vel[3]={0,0,0};
- OPENAL_Sample_SetMinMaxDistance(samp[fireendsound], 9999.0f, 99999.0f);
- PlaySoundEx( fireendsound, samp[fireendsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[fireendsound], gLoc, vel);
- OPENAL_SetVolume(channels[fireendsound], 256);
- OPENAL_SetPaused(channels[fireendsound], false);
- OPENAL_Sample_SetMinMaxDistance(samp[fireendsound], 8.0f, 2000.0f);
-
- flashr=1;
- flashg=0;
- flashb=0;
- flashamount=1;
- flashdelay=1;
-
- if(mainmenu==5&&gameon)mainmenu=2;
- if(mainmenu==5&&!gameon)mainmenu=1;
- }
- if(Button()&&!oldbutton&&selected==5){
- float gLoc[3]={0,0,0};
- float vel[3]={0,0,0};
- OPENAL_Sample_SetMinMaxDistance(samp[fireendsound], 9999.0f, 99999.0f);
- PlaySoundEx( fireendsound, samp[fireendsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[fireendsound], gLoc, vel);
- OPENAL_SetVolume(channels[fireendsound], 256);
- OPENAL_SetPaused(channels[fireendsound], false);
- OPENAL_Sample_SetMinMaxDistance(samp[fireendsound], 8.0f, 2000.0f);
-
- flashr=1;
- flashg=0;
- flashb=0;
- flashamount=1;
- flashdelay=1;
-
- mainmenu=7;
- }
- if(Button()&&!oldbutton&&selected==3){
- float gLoc[3]={0,0,0};
- float vel[3]={0,0,0};
- OPENAL_Sample_SetMinMaxDistance(samp[firestartsound], 9999.0f, 99999.0f);
- PlaySoundEx( firestartsound, samp[firestartsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[firestartsound], gLoc, vel);
- OPENAL_SetVolume(channels[firestartsound], 256);
- OPENAL_SetPaused(channels[firestartsound], false);
- OPENAL_Sample_SetMinMaxDistance(samp[firestartsound], 8.0f, 2000.0f);
-
- flashr=1;
- flashg=0;
- flashb=0;
- flashamount=1;
- flashdelay=1;
-
- mainmenu=6;
- }
- if(Button()&&!oldbutton&&selected==2){
- float gLoc[3]={0,0,0};
- float vel[3]={0,0,0};
- OPENAL_Sample_SetMinMaxDistance(samp[firestartsound], 9999.0f, 99999.0f);
- PlaySoundEx( firestartsound, samp[firestartsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[firestartsound], gLoc, vel);
- OPENAL_SetVolume(channels[firestartsound], 256);
- OPENAL_SetPaused(channels[firestartsound], false);
- OPENAL_Sample_SetMinMaxDistance(samp[firestartsound], 8.0f, 2000.0f);
-
- flashr=1;
- flashg=0;
- flashb=0;
- flashamount=1;
- flashdelay=1;
-
- mainmenu=9;
- }
- if(Button())oldbutton=1;
- else oldbutton=0;
- }
- if(mainmenu==9){
- if(Button()&&!oldbutton&&selected<numchallengelevels&&selected>=0&&selected<=accountprogress[accountactive]){
- float gLoc[3]={0,0,0};
- float vel[3]={0,0,0};
- OPENAL_Sample_SetMinMaxDistance(samp[firestartsound], 9999.0f, 99999.0f);
- PlaySoundEx( firestartsound, samp[firestartsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[firestartsound], gLoc, vel);
- OPENAL_SetVolume(channels[firestartsound], 256);
- OPENAL_SetPaused(channels[firestartsound], false);
- OPENAL_Sample_SetMinMaxDistance(samp[firestartsound], 8.0f, 2000.0f);
-
- flashr=1;
- flashg=0;
- flashb=0;
- flashamount=1;
- flashdelay=1;
-
- startbonustotal=0;
-
- loading=2;
- loadtime=0;
- targetlevel=selected;
- if(firstload)TickOnceAfter();
- if(!firstload)LoadStuff();
- else {
- Loadlevel(selected);
- }
- campaign=0;
-
- mainmenu=0;
- gameon=1;
- OPENAL_SetPaused(channels[stream_music3], true);
- }
- if(Button()&&!oldbutton&&selected==numchallengelevels){
- float gLoc[3]={0,0,0};
- float vel[3]={0,0,0};
- OPENAL_Sample_SetMinMaxDistance(samp[fireendsound], 9999.0f, 99999.0f);
- PlaySoundEx( fireendsound, samp[fireendsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[fireendsound], gLoc, vel);
- OPENAL_SetVolume(channels[fireendsound], 256);
- OPENAL_SetPaused(channels[fireendsound], false);
- OPENAL_Sample_SetMinMaxDistance(samp[fireendsound], 8.0f, 2000.0f);
-
- flashr=1;
- flashg=0;
- flashb=0;
- flashamount=1;
- flashdelay=1;
-
- mainmenu=5;
- }
- if(Button())oldbutton=1;
- else oldbutton=0;
- }
- if(mainmenu==11){
- if(Button()&&!oldbutton&&selected<numchallengelevels&&selected>=0&&selected<=accountprogress[accountactive]){
- float gLoc[3]={0,0,0};
- float vel[3]={0,0,0};
- OPENAL_Sample_SetMinMaxDistance(samp[firestartsound], 9999.0f, 99999.0f);
- PlaySoundEx( firestartsound, samp[firestartsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[firestartsound], gLoc, vel);
- OPENAL_SetVolume(channels[firestartsound], 256);
- OPENAL_SetPaused(channels[firestartsound], false);
- OPENAL_Sample_SetMinMaxDistance(samp[firestartsound], 8.0f, 2000.0f);
-
- flashr=1;
- flashg=0;
- flashb=0;
- flashamount=1;
- flashdelay=1;
-
- startbonustotal=0;
-
- loading=2;
- loadtime=0;
- targetlevel=selected;
- if(firstload)TickOnceAfter();
- if(!firstload)LoadStuff();
- else {
- Loadlevel(selected);
- }
- campaign=0;
-
- mainmenu=0;
- gameon=1;
- OPENAL_SetPaused(channels[stream_music3], true);
- }
- if(Button()&&!oldbutton&&selected==numchallengelevels){
- float gLoc[3]={0,0,0};
- float vel[3]={0,0,0};
- OPENAL_Sample_SetMinMaxDistance(samp[fireendsound], 9999.0f, 99999.0f);
- PlaySoundEx( fireendsound, samp[fireendsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[fireendsound], gLoc, vel);
- OPENAL_SetVolume(channels[fireendsound], 256);
- OPENAL_SetPaused(channels[fireendsound], false);
- OPENAL_Sample_SetMinMaxDistance(samp[fireendsound], 8.0f, 2000.0f);
-
- flashr=1;
- flashg=0;
- flashb=0;
- flashamount=1;
- flashdelay=1;
-
- mainmenu=5;
- }
- if(Button())oldbutton=1;
- else oldbutton=0;
- }
- if(mainmenu==10){
- endgame=2;
- if(Button()&&!oldbutton&&selected==3){
- float gLoc[3]={0,0,0};
- float vel[3]={0,0,0};
- OPENAL_Sample_SetMinMaxDistance(samp[fireendsound], 9999.0f, 99999.0f);
- PlaySoundEx( fireendsound, samp[fireendsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[fireendsound], gLoc, vel);
- OPENAL_SetVolume(channels[fireendsound], 256);
- OPENAL_SetPaused(channels[fireendsound], false);
- OPENAL_Sample_SetMinMaxDistance(samp[fireendsound], 8.0f, 2000.0f);
-
- flashr=1;
- flashg=0;
- flashb=0;
- flashamount=1;
- flashdelay=1;
-
- mainmenu=5;
- }
- if(Button())oldbutton=1;
- else oldbutton=0;
- }
-
- if(mainmenu==6){
- if(Button()&&!oldbutton&&selected!=-1){
- float gLoc[3]={0,0,0};
- float vel[3]={0,0,0};
- OPENAL_Sample_SetMinMaxDistance(samp[firestartsound], 9999.0f, 99999.0f);
- PlaySoundEx( firestartsound, samp[firestartsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[firestartsound], gLoc, vel);
- OPENAL_SetVolume(channels[firestartsound], 256);
- OPENAL_SetPaused(channels[firestartsound], false);
- OPENAL_Sample_SetMinMaxDistance(samp[firestartsound], 8.0f, 2000.0f);
- }
- if(Button()&&!oldbutton&&selected==1){
- float gLoc[3]={0,0,0};
- float vel[3]={0,0,0};
- OPENAL_Sample_SetMinMaxDistance(samp[fireendsound], 9999.0f, 99999.0f);
- PlaySoundEx( fireendsound, samp[fireendsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[fireendsound], gLoc, vel);
- OPENAL_SetVolume(channels[fireendsound], 256);
- OPENAL_SetPaused(channels[fireendsound], false);
- OPENAL_Sample_SetMinMaxDistance(samp[fireendsound], 8.0f, 2000.0f);
-
- flashr=1;
- flashg=0;
- flashb=0;
- flashamount=1;
- flashdelay=1;
-
- for(i=accountactive;i<numaccounts-1;i++){
- accountdifficulty[i]=accountdifficulty[i+1];
- accountcampaignchoicesmade[i]=accountcampaignchoicesmade[i+1];
- for(j=0;j<accountcampaignchoicesmade[i+1];j++){
- accountcampaignchoices[i][j]=accountcampaignchoices[i+1][j];
- }
- accountpoints[i]=accountpoints[i+1];
- for(j=0;j<50;j++){
- accounthighscore[i][j]=accounthighscore[i+1][j];
- accountfasttime[i][j]=accountfasttime[i+1][j];
- }
- for(j=0;j<60;j++){
- accountunlocked[i][j]=accountunlocked[i+1][j];
- }
- for(j=0;j<256;j++){
- accountname[i][j]=accountname[i+1][j];
- }
- accountcampaignhighscore[i]=accountcampaignhighscore[i+1];
- accountprogress[i]=accountprogress[i+1];
- accountcampaignfasttime[i]=accountcampaignfasttime[i+1];
- accountcampaignscore[i]=accountcampaignscore[i+1];
- accountcampaigntime[i]=accountcampaigntime[i+1];
- }
-
- numaccounts--;
- accountactive=-1;
-
-
- mainmenu=7;
- }
- if(Button()&&!oldbutton&&selected==2){
- float gLoc[3]={0,0,0};
- float vel[3]={0,0,0};
- OPENAL_Sample_SetMinMaxDistance(samp[fireendsound], 9999.0f, 99999.0f);
- PlaySoundEx( fireendsound, samp[fireendsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[fireendsound], gLoc, vel);
- OPENAL_SetVolume(channels[fireendsound], 256);
- OPENAL_SetPaused(channels[fireendsound], false);
- OPENAL_Sample_SetMinMaxDistance(samp[fireendsound], 8.0f, 2000.0f);
-
- flashr=1;
- flashg=0;
- flashb=0;
- flashamount=1;
- flashdelay=1;
-
- mainmenu=5;
- }
- if(Button())oldbutton=1;
- else oldbutton=0;
- }
- if(mainmenu==7){
- if(Button()&&!oldbutton&&selected!=-1){
- float gLoc[3]={0,0,0};
- float vel[3]={0,0,0};
- OPENAL_Sample_SetMinMaxDistance(samp[firestartsound], 9999.0f, 99999.0f);
- PlaySoundEx( firestartsound, samp[firestartsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[firestartsound], gLoc, vel);
- OPENAL_SetVolume(channels[firestartsound], 256);
- OPENAL_SetPaused(channels[firestartsound], false);
- OPENAL_Sample_SetMinMaxDistance(samp[firestartsound], 8.0f, 2000.0f);
- }
- if(Button()&&!oldbutton&&selected==0&&numaccounts<8){
- entername=1;
- }
- if(Button()&&!oldbutton&&selected>0&&selected<numaccounts+1){
- accountactive=selected-1;
- mainmenu=5;
- flashr=1;
- flashg=0;
- flashb=0;
- flashamount=1;
- flashdelay=1;
- }
- if(Button()&&!oldbutton&&selected==numaccounts+1){
- float gLoc[3]={0,0,0};
- float vel[3]={0,0,0};
- OPENAL_Sample_SetMinMaxDistance(samp[fireendsound], 9999.0f, 99999.0f);
- PlaySoundEx( fireendsound, samp[fireendsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[fireendsound], gLoc, vel);
- OPENAL_SetVolume(channels[fireendsound], 256);
- OPENAL_SetPaused(channels[fireendsound], false);
- OPENAL_Sample_SetMinMaxDistance(samp[fireendsound], 8.0f, 2000.0f);
-
- flashr=1;
- flashg=0;
- flashb=0;
- flashamount=1;
- flashdelay=1;
-
- mainmenu=1;
-
- for(j=0;j<255;j++){
- displaytext[0][j]=' ';
- }
- displaychars[0]=0;
- displayselected=0;
- entername=0;
- }
- if(Button())oldbutton=1;
- else oldbutton=0;
- }
- if(mainmenu==8){
- if(Button()&&!oldbutton&&selected!=-1){
- float gLoc[3]={0,0,0};
- float vel[3]={0,0,0};
- OPENAL_Sample_SetMinMaxDistance(samp[firestartsound], 9999.0f, 99999.0f);
- PlaySoundEx( firestartsound, samp[firestartsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[firestartsound], gLoc, vel);
- OPENAL_SetVolume(channels[firestartsound], 256);
- OPENAL_SetPaused(channels[firestartsound], false);
- OPENAL_Sample_SetMinMaxDistance(samp[firestartsound], 8.0f, 2000.0f);
-
- if(selected==0)accountdifficulty[accountactive]=0;
- if(selected==1)accountdifficulty[accountactive]=1;
- if(selected==2)accountdifficulty[accountactive]=2;
-
- mainmenu=5;
-
- flashr=1;
- flashg=0;
- flashb=0;
- flashamount=1;
- flashdelay=1;
-
- }
- if(Button())oldbutton=1;
- else oldbutton=0;
- }
-
-
- if(Button())oldbutton=1;
- else oldbutton=0;
-
- if(IsKeyDown(theKeyMap, MAC_Q_KEY)&&IsKeyDown(theKeyMap, MAC_COMMAND_KEY)){
- tryquit=1;
- if(mainmenu==3){
- if(newdetail>2)newdetail=detail;
- if(newdetail<0)newdetail=detail;
- if(newscreenwidth<0)newscreenwidth=screenwidth;
- if(newscreenheight<0)newscreenheight=screenheight;
-
- ofstream opstream(ConvertFileName(":Data:config.txt", "w"));
- opstream << "Screenwidth:\n";
- opstream << newscreenwidth;
- opstream << "\nScreenheight:\n";
- opstream << newscreenheight;
- opstream << "\nMouse sensitivity:\n";
- opstream << usermousesensitivity;
- opstream << "\nBlur(0,1):\n";
- opstream << ismotionblur;
- opstream << "\nOverall Detail(0,1,2) higher=better:\n";
- opstream << newdetail;
- opstream << "\nFloating jump:\n";
- opstream << floatjump;
- opstream << "\nMouse jump:\n";
- opstream << mousejump;
- opstream << "\nAmbient sound:\n";
- opstream << ambientsound;
- opstream << "\nBlood (0,1,2):\n";
- opstream << bloodtoggle;
- opstream << "\nAuto slomo:\n";
- opstream << autoslomo;
- opstream << "\nFoliage:\n";
- opstream << foliage;
- opstream << "\nMusic:\n";
- opstream << musictoggle;
- opstream << "\nTrilinear:\n";
- opstream << trilinear;
- opstream << "\nDecals(shadows,blood puddles,etc):\n";
- opstream << decals;
- opstream << "\nInvert mouse:\n";
- opstream << invertmouse;
- opstream << "\nGamespeed:\n";
- if(oldgamespeed==0)oldgamespeed=1;
- opstream << oldgamespeed;
- opstream << "\nDifficulty(0,1,2) higher=harder:\n";
- opstream << difficulty;
- opstream << "\nDamage effects(blackout, doublevision):\n";
- opstream << damageeffects;
- opstream << "\nText:\n";
- opstream << texttoggle;
- opstream << "\nDebug:\n";
- opstream << debugmode;
- opstream << "\nVBL Sync:\n";
- opstream << vblsync;
- opstream << "\nShow Points:\n";
- opstream << showpoints;
- opstream << "\nAlways Blur:\n";
- opstream << alwaysblur;
- opstream << "\nImmediate mode (turn on on G5):\n";
- opstream << immediate;
- opstream << "\nVelocity blur:\n";
- opstream << velocityblur;
- opstream << "\nVolume:\n";
- opstream << volume;
- opstream << "\nForward key:\n";
- opstream << KeyToChar(forwardkey);
- opstream << "\nBack key:\n";
- opstream << KeyToChar(backkey);
- opstream << "\nLeft key:\n";
- opstream << KeyToChar(leftkey);
- opstream << "\nRight key:\n";
- opstream << KeyToChar(rightkey);
- opstream << "\nJump key:\n";
- opstream << KeyToChar(jumpkey);
- opstream << "\nCrouch key:\n";
- opstream << KeyToChar(crouchkey);
- opstream << "\nDraw key:\n";
- opstream << KeyToChar(drawkey);
- opstream << "\nThrow key:\n";
- opstream << KeyToChar(throwkey);
- opstream << "\nAttack key:\n";
- opstream << KeyToChar(attackkey);
- opstream << "\nChat key:\n";
- opstream << KeyToChar(chatkey);
- opstream.close();
- }
- }
-
- if(mainmenu==1||mainmenu==2){
- if(loaddistrib>4)transition+=multiplier/8;
- if(transition>1){
- transition=0;
- anim++;
- if(anim>4)anim=0;
- loaddistrib=0;
- }
- }
- OPENAL_SetFrequency(channels[stream_music3], 22050);
-
- if(entername){
- for(i=0;i<140;i++){
- if(IsKeyDown(theKeyMap, i)){
- togglekeydelay[i]+=multiplier;
- if(togglekeydelay[i]>.4){
- togglekey[i]=0;
- togglekeydelay[i]=.36;
- }
- if(!togglekey[i]){
- if(KeyToSingleChar(i)!='\0'&&displaychars[0]<60){
- for(j=255;j>=displayselected+1;j--){
- displaytext[0][j]=displaytext[0][j-1];
- }
- displaytext[0][displayselected]=KeyToSingleChar(i);
- if(IsKeyDown(theKeyMap, MAC_SHIFT_KEY))displaytext[0][displayselected]=Shift(displaytext[0][displayselected]);
- displayselected++;
- displaychars[0]++;
- }
- if(i==MAC_DELETE_KEY&&displayselected!=0){
- for(j=displayselected-1;j<255;j++){
- displaytext[0][j]=displaytext[0][j+1];
- }
- displaytext[0][255]=' ';
- displayselected--;
- displaychars[0]--;
- }
- if(i==MAC_ARROW_LEFT_KEY&&displayselected!=0){
- displayselected--;
- }
- if(i==MAC_ARROW_RIGHT_KEY&&displayselected<displaychars[0]){
- displayselected++;
- }
- if(i==MAC_RETURN_KEY&&entername){
- if(displaychars[0]){
- numaccounts++;
- strcpy(accountname[numaccounts-1],displaytext[0]);
- accountactive=numaccounts-1;
- accountdifficulty[accountactive]=1;
- accountprogress[accountactive]=0;
- accountpoints[accountactive]=0;
- accountcampaigntime[accountactive]=0;
- accountcampaignscore[accountactive]=0;
- accountcampaignfasttime[accountactive]=0;
- accountcampaignhighscore[accountactive]=0;
- for(j=0;j<50;j++){
- accounthighscore[accountactive][j]=0;
- accountfasttime[accountactive][j]=0;
- }
- for(j=0;j<60;j++){
- accountunlocked[accountactive][j]=0;
- }
- accountcampaignchoicesmade[accountactive]=0;
-
- for(j=0;j<255;j++){
- displaytext[0][j]=' ';
- }
- displaychars[0]=0;
- displayselected=0;
- entername=0;
-
- mainmenu=8;
-
- flashr=1;
- flashg=0;
- flashb=0;
- flashamount=1;
- flashdelay=1;
-
- float gLoc[3]={0,0,0};
- float vel[3]={0,0,0};
- OPENAL_Sample_SetMinMaxDistance(samp[firestartsound], 9999.0f, 99999.0f);
- PlaySoundEx( firestartsound, samp[firestartsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[firestartsound], gLoc, vel);
- OPENAL_SetVolume(channels[firestartsound], 256);
- OPENAL_SetPaused(channels[firestartsound], false);
- OPENAL_Sample_SetMinMaxDistance(samp[firestartsound], 8.0f, 2000.0f);
-
- for(j=0;j<255;j++){
- displaytext[0][j]=' ';
- }
- displaychars[0]=0;
-
-
- displayselected=0;
- }}
-
- if(i==MAC_RETURN_KEY&&mainmenu==13){
- if(displaychars[0]){
- sprintf (registrationname, "%s", displaytext[0]);
- if(displaychars[0]<254)registrationname[displaychars[0]]='\0';
-
- mainmenu=5;
-
- flashr=1;
- flashg=0;
- flashb=0;
- flashamount=1;
- flashdelay=1;
-
- float gLoc[3]={0,0,0};
- float vel[3]={0,0,0};
- OPENAL_Sample_SetMinMaxDistance(samp[firestartsound], 9999.0f, 99999.0f);
- PlaySoundEx( firestartsound, samp[firestartsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[firestartsound], gLoc, vel);
- OPENAL_SetVolume(channels[firestartsound], 256);
- OPENAL_SetPaused(channels[firestartsound], false);
- OPENAL_Sample_SetMinMaxDistance(samp[firestartsound], 8.0f, 2000.0f);
-
- for(j=0;j<255;j++){
- displaytext[0][j]=' ';
- }
- displaychars[0]=0;
-
- displayselected=0;
- }}
- }
- togglekey[i]=1;
- }
- else {
- togglekey[i]=0;
- togglekeydelay[i]=0;
- }
- }
-
- displayblinkdelay-=multiplier;
- if(displayblinkdelay<=0){
- displayblinkdelay=.3;
- displayblink=1-displayblink;
- }
- }
- }
-
- if(!mainmenu){
- if(hostile==1)hostiletime+=multiplier;
- else hostiletime=0;
- if(!winfreeze)leveltime+=multiplier;
- if(IsKeyDown(theKeyMap, MAC_ESCAPE_KEY)){
- chatting=0;
- console=0;
- freeze=0;
- displaychars[0]=0;
- }
-
- if(IsKeyDown(theKeyMap, chatkey)&&!chattogglekeydown&&!console&&!chatting&&debugmode){
- chatting=1;
- chattogglekeydown=1;
- togglekey[chatkey]=1;
- togglekeydelay[chatkey]=-20;
- }
-
- if(!IsKeyDown(theKeyMap, chatkey)){
- chattogglekeydown=0;
- }
-
- if(chatting){
- for(i=0;i<140;i++){
- if(IsKeyDown(theKeyMap, i)){
- togglekeydelay[i]+=multiplier;
- if(togglekeydelay[i]>.4){
- togglekey[i]=0;
- togglekeydelay[i]=.36;
- }
- if(!togglekey[i]){
- if(KeyToSingleChar(i)!='\0'&&displaychars[0]<60){
- for(j=255;j>=displayselected+1;j--){
- displaytext[0][j]=displaytext[0][j-1];
- }
- displaytext[0][displayselected]=KeyToSingleChar(i);
- if(IsKeyDown(theKeyMap, MAC_SHIFT_KEY))displaytext[0][displayselected]=Shift(displaytext[0][displayselected]);
- displayselected++;
- displaychars[0]++;
- }
- if(i==MAC_DELETE_KEY&&displayselected!=0){
- for(j=displayselected-1;j<255;j++){
- displaytext[0][j]=displaytext[0][j+1];
- }
- displaytext[0][255]=' ';
- displayselected--;
- displaychars[0]--;
- }
- if(i==MAC_ARROW_LEFT_KEY&&displayselected!=0){
- displayselected--;
- }
- if(i==MAC_ARROW_RIGHT_KEY&&displayselected<displaychars[0]){
- displayselected++;
- }
- if(i==MAC_RETURN_KEY){
- if(displaychars[0]){
- /*for(j=0;j<displaychars[0];j++){
- talkname[j]=displaytext[0][j];
- }
- talkname[displaychars[0]]='\0';
- sprintf (chatname, "%s: %s",playerName,talkname);
- //NetworkSendInformation(chatname);
- */
- for(j=0;j<255;j++){
- displaytext[0][j]=' ';
- }
- displaychars[0]=0;
- displayselected=0;
- chatting=0;
- }
- }
- }
- togglekey[i]=1;
- }
- else {
- togglekey[i]=0;
- togglekeydelay[i]=0;
- }
- }
-
- displayblinkdelay-=multiplier;
- if(displayblinkdelay<=0){
- displayblinkdelay=.3;
- displayblink=1-displayblink;
- }
- }
-
- if(chatting)keyboardfrozen=1;
-
- if(IsKeyDown(theKeyMap, MAC_V_KEY)&&!freezetogglekeydown&&debugmode){
- freeze=1-freeze;
- if(freeze){
- OPENAL_SetFrequency(OPENAL_ALL, 0.001);
- }
- freezetogglekeydown=1;
- }
-
- if(!IsKeyDown(theKeyMap, MAC_V_KEY)&&!IsKeyDown(theKeyMap, MAC_F1_KEY)){
- freezetogglekeydown=0;
- }
-
- if(IsKeyDown(theKeyMap, MAC_TILDE_KEY)&&!consoletogglekeydown&&debugmode){
- console=1-console;
- if(!console)freeze=0;
- if(console){
- OPENAL_SetFrequency(OPENAL_ALL, 0.001);
- }
- consoletogglekeydown=1;
- }
-
- if(!IsKeyDown(theKeyMap, MAC_TILDE_KEY)){
- consoletogglekeydown=0;
- }
-
- if(console)freeze=1;
-
- if(console&&!IsKeyDown(theKeyMap,MAC_COMMAND_KEY)){
- for(i=0;i<140;i++){
- if(IsKeyDown(theKeyMap, i)){
- togglekeydelay[i]+=multiplier;
- if(togglekeydelay[i]>.4){
- togglekey[i]=0;
- togglekeydelay[i]=.36;
- }
- if(!togglekey[i]){
- if(KeyToSingleChar(i)!='\0'&&consolechars[0]<255){
- for(j=255;j>=consoleselected+1;j--){
- consoletext[0][j]=consoletext[0][j-1];
- }
- consoletext[0][consoleselected]=KeyToSingleChar(i);
- if(IsKeyDown(theKeyMap, MAC_SHIFT_KEY))consoletext[0][consoleselected]=Shift(consoletext[0][consoleselected]);
- consoleselected++;
- consolechars[0]++;
- }
- else if(i==MAC_ENTER_KEY){
- for(j=255;j>=consoleselected+1;j--){
- consoletext[0][j]=consoletext[0][j-1];
- }
- consoletext[0][consoleselected]='\n';
- consoleselected++;
- consolechars[0]++;
- }
- if(i==MAC_DELETE_KEY&&consoleselected!=0){
- for(j=consoleselected-1;j<255;j++){
- consoletext[0][j]=consoletext[0][j+1];
- }
- consoletext[0][255]=' ';
- consoleselected--;
- consolechars[0]--;
- }
- if(i==MAC_ARROW_UP_KEY){
- if(archiveselected<14)archiveselected++;
- for(j=0;j<255;j++){
- consolechars[0]=consolechars[archiveselected];
- consoletext[0][j]=consoletext[archiveselected][j];
- consoleselected=consolechars[0];
- }
- }
- if(i==MAC_ARROW_DOWN_KEY){
- if(archiveselected>0)archiveselected--;
- for(j=0;j<255;j++){
- consolechars[0]=consolechars[archiveselected];
- consoletext[0][j]=consoletext[archiveselected][j];
- consoleselected=consolechars[0];
- }
- }
- if(i==MAC_ARROW_LEFT_KEY&&consoleselected!=0){
- consoleselected--;
- }
- if(i==MAC_ARROW_RIGHT_KEY&&consoleselected<consolechars[0]){
- consoleselected++;
- }
- if(i==MAC_RETURN_KEY){
- archiveselected=0;
- donesomething=0;
- if(Compare(consoletext[0],"quit ",0,4)||Compare(consoletext[0],"exit ",0,4)){
- PlaySoundEx( consolesuccesssound, samp[consolesuccesssound], NULL, true);
- OPENAL_SetVolume(channels[consolesuccesssound], 256);
- OPENAL_SetPaused(channels[consolesuccesssound], false);
- donesomething=1;
- tryquit=1;
- }
- /*if(Compare(consoletext[0],"send ",0,4)){
- for(j=5;j<consolechars[0];j++){
- talkname[j-5]=consoletext[0][j];
- }
- talkname[consolechars[0]-5]='\0';
- sprintf (chatname, "%s: %s",playerName,talkname);
- //NetworkSendInformation(chatname);
- donesomething=1;
- }
- if(Compare(consoletext[0],"name ",0,4)){
- int numchars;
- numchars=consolechars[0]-5;
- if(numchars>32)numchars=32;
- for(j=5;j<numchars+5;j++){
- talkname[j-5]=consoletext[0][j];
- }
- talkname[numchars]='\0';
- sprintf (chatname, "Player %s is now known as %s.",playerName,talkname);
- //NetworkSendInformation(chatname);
- sprintf (playerName, "%s",talkname);
- //NetworkSendName(playerName);
- donesomething=1;
- }*/
- if(Compare(consoletext[0],"map ",0,3)){
- 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]=':';
- for(j=4;j<consolechars[0];j++){
- mapname[j-4+11]=consoletext[0][j];
- }
- mapname[consolechars[0]-4+11]='\0';
- Loadlevel(mapname);
- whichlevel=-2;
- campaign=0;
- donesomething=1;
- }
- /*if(Compare(consoletext[0],"connect ",0,7)&&!ishost){
- int v;
- unsigned char playerNameStr[32];
- char theIPAddress[256];
- char thePort[32];
- NMUInt32 port = 25710;
-
- strcpy(playerName, "Client");
- GameC2PStr( playerName, playerNameStr );
-
- for(j=0;j<consolechars[0]-8;j++){
- theIPAddress[j]=consoletext[0][j+8];
- }
- theIPAddress[consolechars[0]-8]='\0';
-
- sprintf( thePort, "%li", port );
- v=NetworkStartClient( theIPAddress, thePort, playerNameStr );
- if(v)
- {
- if(consolechars[0]>0){
- for(k=14;k>=1;k--){
- for(j=0;j<255;j++){
- consoletext[k][j]=consoletext[k-1][j];
- }
- consolechars[k]=consolechars[k-1];
- }
- for(j=0;j<255;j++){
- consoletext[0][j]=' ';
- }
- if(v!=-4994)sprintf (consoletext[0], "Error #%d!!!",v);
- else sprintf (consoletext[0], "Could not open connection");
-
- consolechars[0]=255;
- consoleselected=0;
- }
- }
- else
- {
- donesomething=1;
- PlaySoundEx( consolesuccesssound, samp[consolesuccesssound], NULL, true);
- OPENAL_SetVolume(channels[consolesuccesssound], 256);
- OPENAL_SetPaused(channels[consolesuccesssound], false);
-
- if(consolechars[0]>0){
- for(k=14;k>=1;k--){
- for(j=0;j<255;j++){
- consoletext[k][j]=consoletext[k-1][j];
- }
- consolechars[k]=consolechars[k-1];
- }
- for(j=0;j<255;j++){
- consoletext[0][j]=' ';
- }
- sprintf (consoletext[0], "Connected to %s",theIPAddress);
-
- consolechars[0]=255;
- consoleselected=0;
- }
- }
- }
-
- if(Compare(consoletext[0],"host ",0,4)){
- unsigned char gameNameStr[32], playerNameStr[32];
- char gameName[32];//, playerName[32];
- NMUInt32 port;
- int players;
- int v;
-
- port = 25710;
- players =4;
-
- strcpy(gameName, "Host's game");
- strcpy(playerName, "Host");
- GameC2PStr( gameName, gameNameStr );
- GameC2PStr( playerName, playerNameStr );
-
- v=NetworkStartServer( (NMUInt16)port, players, gameNameStr, playerNameStr );
- if(v)
- {
- if(consolechars[0]>0){
- for(k=14;k>=1;k--){
- for(j=0;j<255;j++){
- consoletext[k][j]=consoletext[k-1][j];
- }
- consolechars[k]=consolechars[k-1];
- }
- for(j=0;j<255;j++){
- consoletext[0][j]=' ';
- }
- sprintf (consoletext[0], "Error #%d!!!",v);
-
- consolechars[0]=255;
- consoleselected=0;
- }
- }
- else
- {
- donesomething=1;
- PlaySoundEx( consolesuccesssound, samp[consolesuccesssound], NULL, true);
- OPENAL_SetVolume(channels[consolesuccesssound], 256);
- OPENAL_SetPaused(channels[consolesuccesssound], false);
-
- if(consolechars[0]>0){
- for(k=14;k>=1;k--){
- for(j=0;j<255;j++){
- consoletext[k][j]=consoletext[k-1][j];
- }
- consolechars[k]=consolechars[k-1];
- }
- for(j=0;j<255;j++){
- consoletext[0][j]=' ';
- }
- sprintf (consoletext[0], "Game hosted");
-
- consolechars[0]=255;
- consoleselected=0;
- }
- }
- }
- */
- if(Compare(consoletext[0],"save ",0,4)){
- 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]=':';
- for(j=5;j<consolechars[0];j++){
- mapname[j-5+11]=consoletext[0][j];
- }
- mapname[consolechars[0]-5+11]='\0';
-
- PlaySoundEx( consolesuccesssound, samp[consolesuccesssound], NULL, true);
- OPENAL_SetVolume(channels[consolesuccesssound], 256);
- OPENAL_SetPaused(channels[consolesuccesssound], false);
-
- int mapvers;
- mapvers=12;
-
-
- FILE *tfile;
- tfile=fopen( ConvertFileName(mapname), "wb" );
- fpackf(tfile, "Bi", mapvers);
- //fpackf(tfile, "Bi", indemo);
- fpackf(tfile, "Bi", maptype);
- fpackf(tfile, "Bi", hostile);
- fpackf(tfile, "Bf Bf", viewdistance, fadestart);
- fpackf(tfile, "Bb Bf Bf Bf", skyboxtexture, skyboxr, skyboxg, skyboxb);
- fpackf(tfile, "Bf Bf Bf", skyboxlightr, skyboxlightg, skyboxlightb);
- fpackf(tfile, "Bf Bf Bf Bf Bf Bi", player[0].coords.x, player[0].coords.y, player[0].coords.z, player[0].rotation, player[0].targetrotation, player[0].num_weapons);
- if(player[0].num_weapons>0&&player[0].num_weapons<5)
- for(j=0;j<player[0].num_weapons;j++){
- fpackf(tfile, "Bi", weapons.type[player[0].weaponids[j]]);
- }
-
- fpackf(tfile, "Bf Bf Bf", player[0].armorhead, player[0].armorhigh, player[0].armorlow);
- fpackf(tfile, "Bf Bf Bf", player[0].protectionhead, player[0].protectionhigh, player[0].protectionlow);
- fpackf(tfile, "Bf Bf Bf", player[0].metalhead, player[0].metalhigh, player[0].metallow);
- fpackf(tfile, "Bf Bf", player[0].power, player[0].speedmult);
-
- fpackf(tfile, "Bi", player[0].numclothes);
-
- fpackf(tfile, "Bi Bi", player[0].whichskin, player[0].creature);
-
- fpackf(tfile, "Bi", numdialogues);
- if(numdialogues)
- for(k=0;k<numdialogues;k++){
- fpackf(tfile, "Bi", numdialogueboxes[k]);
- fpackf(tfile, "Bi", dialoguetype[k]);
- for(l=0;l<10;l++){
- fpackf(tfile, "Bf Bf Bf", participantlocation[k][l].x, participantlocation[k][l].y, participantlocation[k][l].z);
- fpackf(tfile, "Bf", participantrotation[k][l]);
- }
- if(numdialogueboxes)
- for(l=0;l<numdialogueboxes[k];l++){
- fpackf(tfile, "Bi", dialogueboxlocation[k][l]);
- fpackf(tfile, "Bf", dialogueboxcolor[k][l][0]);
- fpackf(tfile, "Bf", dialogueboxcolor[k][l][1]);
- fpackf(tfile, "Bf", dialogueboxcolor[k][l][2]);
- fpackf(tfile, "Bi", dialogueboxsound[k][l]);
-
- templength=strlen(dialoguetext[k][l]);
- fpackf(tfile, "Bi",(templength));
- for(m=0;m<templength;m++){
- fpackf(tfile, "Bb", dialoguetext[k][l][m]);
- if(dialoguetext[k][l][m]=='\0')break;
- }
-
- templength=strlen(dialoguename[k][l]);
- fpackf(tfile, "Bi",templength);
- for(m=0;m<templength;m++){
- fpackf(tfile, "Bb", dialoguename[k][l][m]);
- if(dialoguename[k][l][m]=='\0')break;
- }
-
- fpackf(tfile, "Bf Bf Bf", dialoguecamera[k][l].x, dialoguecamera[k][l].y, dialoguecamera[k][l].z);
- fpackf(tfile, "Bi", participantfocus[k][l]);
- fpackf(tfile, "Bi", participantaction[k][l]);
-
- for(m=0;m<10;m++)
- fpackf(tfile, "Bf Bf Bf", participantfacing[k][l][m].x, participantfacing[k][l][m].y, participantfacing[k][l][m].z);
-
- fpackf(tfile, "Bf Bf",dialoguecamerarotation[k][l],dialoguecamerarotation2[k][l]);
- }
- }
-
- if(player[0].numclothes)
- for(k=0;k<player[0].numclothes;k++){
- templength=strlen(player[0].clothes[k]);
- fpackf(tfile, "Bi", templength);
- for(l=0;l<templength;l++)
- fpackf(tfile, "Bb", player[0].clothes[k][l]);
- fpackf(tfile, "Bf Bf Bf", player[0].clothestintr[k], player[0].clothestintg[k], player[0].clothestintb[k]);
- }
-
- fpackf(tfile, "Bi", environment);
-
- fpackf(tfile, "Bi", objects.numobjects);
-
- if(objects.numobjects)
- for(k=0;k<objects.numobjects;k++){
- fpackf(tfile, "Bi Bf Bf Bf Bf Bf Bf", objects.type[k], objects.rotation[k], objects.rotation2[k], objects.position[k].x, objects.position[k].y, objects.position[k].z, objects.scale[k]);
- }
-
- fpackf(tfile, "Bi", numhotspots);
- if(numhotspots)
- for(i=0;i<numhotspots;i++){
- fpackf(tfile, "Bi Bf Bf Bf Bf", hotspottype[i],hotspotsize[i],hotspot[i].x,hotspot[i].y,hotspot[i].z);
- templength=strlen(hotspottext[i]);
- fpackf(tfile, "Bi",templength);
- for(l=0;l<templength;l++)
- fpackf(tfile, "Bb", hotspottext[i][l]);
- }
-
- fpackf(tfile, "Bi", numplayers);
- if(numplayers>1&&numplayers<maxplayers)
- for(j=1;j<numplayers;j++){
- fpackf(tfile, "Bi Bi Bf Bf Bf Bi Bi Bf Bb Bf", player[j].whichskin, player[j].creature, player[j].coords.x, player[j].coords.y, player[j].coords.z, player[j].num_weapons, player[j].howactive, player[j].scale, player[j].immobile, player[j].rotation);
- if(player[j].num_weapons>0&&player[j].num_weapons<5)
- for(k=0;k<player[j].num_weapons;k++){
- fpackf(tfile, "Bi", weapons.type[player[j].weaponids[k]]);
- }
- if(player[j].numwaypoints<30){
- fpackf(tfile, "Bi", player[j].numwaypoints);
- for(k=0;k<player[j].numwaypoints;k++){
- fpackf(tfile, "Bf", player[j].waypoints[k].x);
- fpackf(tfile, "Bf", player[j].waypoints[k].y);
- fpackf(tfile, "Bf", player[j].waypoints[k].z);
- fpackf(tfile, "Bi", player[j].waypointtype[k]);
- }
- fpackf(tfile, "Bi", player[j].waypoint);
- }
- else{
- player[j].numwaypoints=0;
- player[j].waypoint=0;
- fpackf(tfile, "Bi Bi Bi", player[j].numwaypoints, player[j].waypoint, player[j].waypoint);
- }
-
- fpackf(tfile, "Bf Bf Bf", player[j].armorhead, player[j].armorhigh, player[j].armorlow);
- fpackf(tfile, "Bf Bf Bf", player[j].protectionhead, player[j].protectionhigh, player[j].protectionlow);
- fpackf(tfile, "Bf Bf Bf", player[j].metalhead, player[j].metalhigh, player[j].metallow);
- fpackf(tfile, "Bf Bf", player[j].power, player[j].speedmult);
-
- if(player[j].creature==wolftype){
- headprop=player[j].proportionhead.x/1.1;
- bodyprop=player[j].proportionbody.x/1.1;
- armprop=player[j].proportionarms.x/1.1;
- legprop=player[j].proportionlegs.x/1.1;
- }
-
- if(player[j].creature==rabbittype){
- headprop=player[j].proportionhead.x/1.2;
- bodyprop=player[j].proportionbody.x/1.05;
- armprop=player[j].proportionarms.x/1.00;
- legprop=player[j].proportionlegs.x/1.1;
- }
-
- fpackf(tfile, "Bf Bf Bf Bf", headprop, bodyprop, armprop, legprop);
-
-
-
- fpackf(tfile, "Bi", player[j].numclothes);
- if(player[j].numclothes)
- for(k=0;k<player[j].numclothes;k++){
- int templength;
- templength=strlen(player[j].clothes[k]);
- fpackf(tfile, "Bi", templength);
- for(l=0;l<templength;l++)
- fpackf(tfile, "Bb", player[j].clothes[k][l]);
- fpackf(tfile, "Bf Bf Bf", player[j].clothestintr[k], player[j].clothestintg[k], player[j].clothestintb[k]);
- }
- }
-
- fpackf(tfile, "Bi", numpathpoints);
- if(numpathpoints)
- for(j=0;j<numpathpoints;j++){
- fpackf(tfile, "Bf Bf Bf Bi", pathpoint[j].x, pathpoint[j].y, pathpoint[j].z, numpathpointconnect[j]);
- for(k=0;k<numpathpointconnect[j];k++){
- fpackf(tfile, "Bi", pathpointconnect[j][k]);
- }
- }
-
- fpackf(tfile, "Bf Bf Bf Bf", mapcenter.x, mapcenter.y, mapcenter.z, mapradius);
-
-
- fclose(tfile);
- donesomething=1;
-
- /*
- FILE *tfile;
- tfile=fopen( mapname, "wb" );
- fwrite( &mapvers, 1, sizeof(int), tfile );
- fwrite( &player[0].coords.x, 1, sizeof(float), tfile );
- fwrite( &player[0].coords.y, 1, sizeof(float), tfile );
- fwrite( &player[0].coords.z, 1, sizeof(float), tfile );
- fwrite( &player[0].rotation, 1, sizeof(float), tfile );
- fwrite( &player[0].targetrotation, 1, sizeof(float), tfile );
- fwrite( &player[0].num_weapons, 1, sizeof(int), tfile );
- if(player[0].num_weapons>0&&player[0].num_weapons<5)
- for(j=0;j<player[0].num_weapons;j++){
- fwrite( &weapons.type[player[0].weaponids[j]], 1, sizeof(int), tfile );
- }
-
- fwrite( &player[0].armorhead, 1, sizeof(int), tfile );
- fwrite( &player[0].armorhigh, 1, sizeof(int), tfile );
- fwrite( &player[0].armorlow, 1, sizeof(int), tfile );
- fwrite( &player[0].protectionhead, 1, sizeof(int), tfile );
- fwrite( &player[0].protectionhigh, 1, sizeof(int), tfile );
- fwrite( &player[0].protectionlow, 1, sizeof(int), tfile );
- fwrite( &player[0].metalhead, 1, sizeof(int), tfile );
- fwrite( &player[0].metalhigh, 1, sizeof(int), tfile );
- fwrite( &player[0].metallow, 1, sizeof(int), tfile );
- fwrite( &player[0].power, 1, sizeof(int), tfile );
- fwrite( &player[0].speedmult, 1, sizeof(int), tfile );
-
- fwrite( &player[0].numclothes, 1, sizeof(int), tfile );
- if(player[0].numclothes)
- for(k=0;k<player[0].numclothes;k++){
- int templength;
- templength=strlen(player[0].clothes[k]);
- fwrite( &templength,1,sizeof(int),tfile);
- for(l=0;l<templength;l++)
- fwrite( &player[0].clothes[k][l],1,sizeof(char),tfile);
- fwrite( &player[0].clothestintr[k],1,sizeof(float),tfile);
- fwrite( &player[0].clothestintg[k],1,sizeof(float),tfile);
- fwrite( &player[0].clothestintb[k],1,sizeof(float),tfile);
- }
-
- fwrite( &environment, 1, sizeof(int), tfile );
-
- fwrite( &objects.numobjects, 1, sizeof(int), tfile );
-
- for(k=0;k<objects.numobjects;k++){
- fwrite( &objects.type[k], 1, sizeof(int), tfile );
- fwrite( &objects.rotation[k], 1, sizeof(float), tfile );
- fwrite( &objects.rotation2[k], 1, sizeof(float), tfile );
- fwrite( &objects.position[k].x, 1, sizeof(float), tfile );
- fwrite( &objects.position[k].y, 1, sizeof(float), tfile );
- fwrite( &objects.position[k].z, 1, sizeof(float), tfile );
- fwrite( &objects.scale[k], 1, sizeof(float), tfile );
- }
-
- fwrite( &numplayers, 1, sizeof(int), tfile );
- if(numplayers>1&&numplayers<maxplayers)
- for(j=1;j<numplayers;j++){
- fwrite( &player[j].whichskin, 1, sizeof(int), tfile );
- fwrite( &player[j].creature, 1, sizeof(int), tfile );
- fwrite( &player[j].coords.x, 1, sizeof(float), tfile );
- fwrite( &player[j].coords.y, 1, sizeof(float), tfile );
- fwrite( &player[j].coords.z, 1, sizeof(float), tfile );
- fwrite( &player[j].num_weapons, 1, sizeof(int), tfile );
- if(player[j].num_weapons>0&&player[j].num_weapons<5)
- for(k=0;k<player[j].num_weapons;k++){
- fwrite( &weapons.type[player[j].weaponids[k]], 1, sizeof(int), tfile );
- }
- if(player[j].numwaypoints<30){
- fwrite( &player[j].numwaypoints, 1, sizeof(int), tfile );
- for(k=0;k<player[j].numwaypoints;k++){
- fwrite( &player[j].waypoints[k].x, 1, sizeof(float), tfile );
- fwrite( &player[j].waypoints[k].y, 1, sizeof(float), tfile );
- fwrite( &player[j].waypoints[k].z, 1, sizeof(float), tfile );
- }
- fwrite( &player[j].waypoint, 1, sizeof(int), tfile );
- //fwrite( &player[j].jumppath, 1, sizeof(bool), tfile );
- }
- else{
- player[j].numwaypoints=0;
- player[j].waypoint=0;
- fwrite( &player[j].numwaypoints, 1, sizeof(int), tfile );
- fwrite( &player[j].waypoint, 1, sizeof(int), tfile );
- fwrite( &player[j].waypoint, 1, sizeof(int), tfile );
- }
- fwrite( &player[j].armorhead, 1, sizeof(int), tfile );
- fwrite( &player[j].armorhigh, 1, sizeof(int), tfile );
- fwrite( &player[j].armorlow, 1, sizeof(int), tfile );
- fwrite( &player[j].protectionhead, 1, sizeof(int), tfile );
- fwrite( &player[j].protectionhigh, 1, sizeof(int), tfile );
- fwrite( &player[j].protectionlow, 1, sizeof(int), tfile );
- fwrite( &player[j].metalhead, 1, sizeof(int), tfile );
- fwrite( &player[j].metalhigh, 1, sizeof(int), tfile );
- fwrite( &player[j].metallow, 1, sizeof(int), tfile );
- fwrite( &player[j].power, 1, sizeof(int), tfile );
- fwrite( &player[j].speedmult, 1, sizeof(int), tfile );
-
- fwrite( &player[j].numclothes, 1, sizeof(int), tfile );
- if(player[j].numclothes)
- for(k=0;k<player[j].numclothes;k++){
- int templength;
- templength=strlen(player[j].clothes[k]);
- fwrite( &templength,1,sizeof(int),tfile);
- for(l=0;l<templength;l++)
- fwrite( &player[j].clothes[k][l],1,sizeof(char),tfile);
- fwrite( &player[j].clothestintr[k],1,sizeof(float),tfile);
- fwrite( &player[j].clothestintg[k],1,sizeof(float),tfile);
- fwrite( &player[j].clothestintb[k],1,sizeof(float),tfile);
- }
- }
- fwrite( &numpathpoints, 1, sizeof(int), tfile );
- if(numpathpoints)
- for(j=0;j<numpathpoints;j++){
- fwrite( &pathpoint[j].x, 1, sizeof(float), tfile );
- fwrite( &pathpoint[j].y, 1, sizeof(float), tfile );
- fwrite( &pathpoint[j].z, 1, sizeof(float), tfile );
- fwrite( &numpathpointconnect[j], 1, sizeof(int), tfile );
- for(k=0;k<numpathpointconnect[j];k++){
- fwrite( &pathpointconnect[j][k], 1, sizeof(int), tfile );
- }
- }
-
- fwrite( &mapcenter.x, 1, sizeof(float), tfile );
- fwrite( &mapcenter.y, 1, sizeof(float), tfile );
- fwrite( &mapcenter.z, 1, sizeof(float), tfile );
-
- fwrite( &mapradius, 1, sizeof(float), tfile );
-
- fclose(tfile);
- donesomething=1;*/
- }
- /*
- if(Compare(consoletext[0],"save ",0,4)){
- 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]=':';
- for(j=5;j<consolechars[0];j++){
- mapname[j-5+11]=consoletext[0][j];
- }
- mapname[consolechars[0]-5+11]='\0';
-
- PlaySoundEx( consolesuccesssound, samp[consolesuccesssound], NULL, true);
- OPENAL_SetVolume(channels[consolesuccesssound], 256);
- OPENAL_SetPaused(channels[consolesuccesssound], false);
-
- FILE *tfile;
- tfile=fopen( mapname, "wb" );
- fwrite( &player[0].coords, 1, sizeof(XYZ), tfile );
- fwrite( &player[0].rotation, 1, sizeof(float), tfile );
- fwrite( &player[0].targetrotation, 1, sizeof(float), tfile );
- fwrite( &player[0].num_weapons, 1, sizeof(int), tfile );
- if(player[0].num_weapons>0&&player[0].num_weapons<5)
- for(j=0;j<player[0].num_weapons;j++){
- fwrite( &weapons.type[player[0].weaponids[j]], 1, sizeof(int), tfile );
- }
- fwrite( &environment, 1, sizeof(int), tfile );
-
- fwrite( &objects.numobjects, 1, sizeof(int), tfile );
- fwrite( &objects.type, 1, sizeof(int)*objects.numobjects, tfile );
- fwrite( &objects.rotation, 1, sizeof(float)*objects.numobjects, tfile );
- fwrite( &objects.position, 1, sizeof(XYZ)*objects.numobjects, tfile );
- fwrite( &objects.scale, 1, sizeof(float)*objects.numobjects, tfile );
-
- fwrite( &numplayers, 1, sizeof(int), tfile );
- if(numplayers>1&&numplayers<maxplayers)
- for(j=1;j<numplayers;j++){
- fwrite( &player[j].coords, 1, sizeof(XYZ), tfile );
- fwrite( &player[j].num_weapons, 1, sizeof(int), tfile );
- if(player[j].num_weapons>0&&player[j].num_weapons<5)
- for(k=0;k<player[j].num_weapons;k++){
- fwrite( &weapons.type[player[j].weaponids[k]], 1, sizeof(int), tfile );
- }
- if(player[j].numwaypoints<30){
- fwrite( &player[j].numwaypoints, 1, sizeof(int), tfile );
- fwrite( &player[j].waypoints, 1, sizeof(XYZ)*player[j].numwaypoints, tfile );
- fwrite( &player[j].waypoint, 1, sizeof(int), tfile );
- //fwrite( &player[j].jumppath, 1, sizeof(bool), tfile );
- }
- else{
- player[j].numwaypoints=0;
- player[j].waypoint=0;
- fwrite( &player[j].numwaypoints, 1, sizeof(int), tfile );
- fwrite( &player[j].waypoint, 1, sizeof(int), tfile );
- fwrite( &player[j].waypoint, 1, sizeof(int), tfile );
- }
- }
- fwrite( &numpathpoints, 1, sizeof(int), tfile );
- if(numpathpoints)
- for(j=0;j<numpathpoints;j++){
- fwrite( &pathpoint[j], 1, sizeof(XYZ), tfile );
- fwrite( &numpathpointconnect[j], 1, sizeof(int), tfile );
- for(k=0;k<numpathpointconnect[j];k++){
- fwrite( &pathpointconnect[j][k], 1, sizeof(int), tfile );
- }
- }
- fclose(tfile);
- donesomething=1;
- }*/
- if(Compare(consoletext[0],"cellar door ",0,11)||Compare(consoletext[0],"cellardoor ",0,10)){
- LoadTextureSave(":Data:Textures:Furdarko.jpg",&player[0].skeleton.drawmodel.textureptr,1,&player[0].skeleton.skinText[0],&player[0].skeleton.skinsize);
- donesomething=1;
- }
- /*if(Compare(consoletext[0],"Pants ",0,5)){
- AddClothes(":Data:Textures:Pants.png",0,1,&player[i].skeleton.skinText[0],&player[i].skeleton.skinsize);
- player[i].DoMipmaps(5,0,0,player[i].skeleton.skinsize,player[i].skeleton.skinsize);
- donesomething=1;
- }*/
-
- if(Compare(consoletext[0],"tintr ",0,5)||Compare(consoletext[0],"Tintr ",0,5)){
- for(j=6;j<consolechars[0];j++){
- mapname[j-6]=consoletext[0][j];
- }
-
- tintr=atof(mapname);
-
- donesomething=1;
- }
-
- if(Compare(consoletext[0],"speed ",0,5)||Compare(consoletext[0],"Speed ",0,5)){
- for(j=6;j<consolechars[0];j++){
- mapname[j-6]=consoletext[0][j];
- }
-
- player[0].speedmult=atof(mapname);
-
- donesomething=1;
- }
-
- if(Compare(consoletext[0],"strength ",0,8)||Compare(consoletext[0],"Strength ",0,8)){
- for(j=9;j<consolechars[0];j++){
- mapname[j-9]=consoletext[0][j];
- }
-
- player[0].power=atof(mapname);
-
- donesomething=1;
- }