- 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;
- cmd_dispatch(this, consoletext[0]);
-
- 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]=' ';
- }
- consolechars[0]=0;
- consoleselected=0;
- }
- }
- }
- togglekey[i]=1;
- }
- else {
- togglekey[i]=0;
- togglekeydelay[i]=0;
- }
- }
-
- consoleblinkdelay-=multiplier;
- if(consoleblinkdelay<=0){
- consoleblinkdelay=.3;
- consoleblink=1-consoleblink;
- }
- }
-
- 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();
- }
- }
-
- static int oldwinfreeze;
- if(winfreeze&&!oldwinfreeze){
- OPENAL_SetFrequency(OPENAL_ALL, 0.001);
- PlaySoundEx( consolesuccesssound, samp[consolesuccesssound], NULL, true);
- OPENAL_SetVolume(channels[consolesuccesssound], 256);
- OPENAL_SetPaused(channels[consolesuccesssound], false);
- }
- if(winfreeze==0)oldwinfreeze=winfreeze;
- else oldwinfreeze++;
-
- if((IsKeyDown(theKeyMap, jumpkey)||IsKeyDown(theKeyMap, MAC_SPACE_KEY))&&!oldjumpkeydown&&!campaign){
- if(winfreeze)winfreeze=0;
- oldjumpkeydown=1;
- }
- if((IsKeyDown(theKeyMap, MAC_ESCAPE_KEY))&&!campaign&&gameon){
- if(winfreeze){
- mainmenu=9;
- gameon=0;
- }
- }
- if((IsKeyDown(theKeyMap, jumpkey)||IsKeyDown(theKeyMap, MAC_SPACE_KEY))){
- oldjumpkeydown=1;
- }
- if(!IsKeyDown(theKeyMap, jumpkey)&&!IsKeyDown(theKeyMap, MAC_SPACE_KEY))oldjumpkeydown=0;
-
- if(!freeze&&!winfreeze&&!(mainmenu&&gameon)&&(gameon||!gamestarted)){
-
- static bool oldbuttondialogue;
-
- if(indialogue!=-1)talkdelay=1;
- talkdelay-=multiplier;
-
- if(talkdelay<=0)
- if(indialogue==-1&&(animation[player[0].targetanimation].height!=highheight)/*&&!hostile*/)
- for(i=0;i<numdialogues;i++){
- int realdialoguetype;
- bool special;
- if(dialoguetype[i]>49){
- realdialoguetype=dialoguetype[i]-50;
- special=1;
- }
- else if(dialoguetype[i]>39){
- realdialoguetype=dialoguetype[i]-40;
- special=1;
- }
- else if(dialoguetype[i]>29){
- realdialoguetype=dialoguetype[i]-30;
- special=1;
- }
- else if(dialoguetype[i]>19){
- realdialoguetype=dialoguetype[i]-20;
- special=1;
- }
- else if(dialoguetype[i]>9){
- realdialoguetype=dialoguetype[i]-10;
- special=1;
- }
- else {
- realdialoguetype=dialoguetype[i];
- special=0;
- }
- if((!hostile||(dialoguetype[i]>40&&dialoguetype[i]<50))&&realdialoguetype<numplayers&&realdialoguetype>0&&(dialoguegonethrough[i]==0||!special)&&(special||(IsKeyDown(theKeyMap, attackkey)&&!oldbuttondialogue))){
- if(findDistancefast(&player[0].coords,&player[realdialoguetype].coords)<6||player[realdialoguetype].howactive>=typedead1||(dialoguetype[i]>40&&dialoguetype[i]<50)){
- whichdialogue=i;
- for(j=0;j<numdialogueboxes[whichdialogue];j++){
- player[participantfocus[whichdialogue][j]].coords=participantlocation[whichdialogue][participantfocus[whichdialogue][j]];
- player[participantfocus[whichdialogue][j]].rotation=participantrotation[whichdialogue][participantfocus[whichdialogue][j]];
- player[participantfocus[whichdialogue][j]].targetrotation=participantrotation[whichdialogue][participantfocus[whichdialogue][j]];
- player[participantfocus[whichdialogue][j]].velocity=0;
- player[participantfocus[whichdialogue][j]].targetanimation=player[participantfocus[whichdialogue][j]].getIdle();
- player[participantfocus[whichdialogue][j]].targetframe=0;
- }
- directing=0;
- indialogue=0;
- dialoguetime=0;
- dialoguegonethrough[i]++;
- if(dialogueboxsound[whichdialogue][indialogue]!=0){
- static float gLoc[3];
- static float vel[3];
- XYZ temppos;
- temppos=player[participantfocus[whichdialogue][indialogue]].coords;
- temppos=temppos-viewer;
- Normalise(&temppos);
- temppos+=viewer;
-
- gLoc[0]=temppos.x;
- gLoc[1]=temppos.y;
- gLoc[2]=temppos.z;vel[0]=0;
- vel[1]=0;
- vel[2]=0;
- int whichsoundplay;
- if(dialogueboxsound[whichdialogue][indialogue]==1)whichsoundplay=rabbitchitter;
- if(dialogueboxsound[whichdialogue][indialogue]==2)whichsoundplay=rabbitchitter2;
- if(dialogueboxsound[whichdialogue][indialogue]==3)whichsoundplay=rabbitpainsound;
- if(dialogueboxsound[whichdialogue][indialogue]==4)whichsoundplay=rabbitpain1sound;
- if(dialogueboxsound[whichdialogue][indialogue]==5)whichsoundplay=rabbitattacksound;
- if(dialogueboxsound[whichdialogue][indialogue]==6)whichsoundplay=rabbitattack2sound;
- if(dialogueboxsound[whichdialogue][indialogue]==7)whichsoundplay=rabbitattack3sound;
- if(dialogueboxsound[whichdialogue][indialogue]==8)whichsoundplay=rabbitattack4sound;
- if(dialogueboxsound[whichdialogue][indialogue]==9)whichsoundplay=growlsound;
- if(dialogueboxsound[whichdialogue][indialogue]==10)whichsoundplay=growl2sound;
- if(dialogueboxsound[whichdialogue][indialogue]==11)whichsoundplay=snarlsound;
- if(dialogueboxsound[whichdialogue][indialogue]==12)whichsoundplay=snarl2sound;
- if(dialogueboxsound[whichdialogue][indialogue]==13)whichsoundplay=barksound;
- if(dialogueboxsound[whichdialogue][indialogue]==14)whichsoundplay=bark2sound;
- if(dialogueboxsound[whichdialogue][indialogue]==15)whichsoundplay=bark3sound;
- if(dialogueboxsound[whichdialogue][indialogue]==16)whichsoundplay=barkgrowlsound;
- if(dialogueboxsound[whichdialogue][indialogue]==-1)whichsoundplay=fireendsound;
- if(dialogueboxsound[whichdialogue][indialogue]==-2)whichsoundplay=firestartsound;
- if(dialogueboxsound[whichdialogue][indialogue]==-3)whichsoundplay=consolesuccesssound;
- if(dialogueboxsound[whichdialogue][indialogue]==-4)whichsoundplay=consolefailsound;
- PlaySoundEx( whichsoundplay, samp[whichsoundplay], NULL, true);
- OPENAL_3D_SetAttributes(channels[whichsoundplay], gLoc, vel);
- OPENAL_SetVolume(channels[whichsoundplay], 256);
- OPENAL_SetPaused(channels[whichsoundplay], false);
- }
- if(IsKeyDown(theKeyMap, attackkey))oldbuttondialogue=1;
- }
- }
- }
-
- windvar+=multiplier;
- smoketex+=multiplier;
- tutorialstagetime+=multiplier;
-
- static float hotspotvisual[40];
- if(numhotspots){
- XYZ hotspotsprite;
- if(editorenabled)
- for(i=0;i<numhotspots;i++)
- hotspotvisual[i]-=multiplier/320;
-
- for(i=0;i<numhotspots;i++){
- //if(hotspottype[i]<=10)
- while(hotspotvisual[i]<0){
- hotspotsprite=0;
- hotspotsprite.x=float(abs(Random()%100000))/100000*hotspotsize[i];
- hotspotsprite=DoRotation(hotspotsprite,0,0,Random()%360);
- hotspotsprite=DoRotation(hotspotsprite,0,Random()%360,0);
- hotspotsprite+=hotspot[i];
- sprites.MakeSprite(breathsprite, hotspotsprite, hotspotsprite*0, 1,0.5,0, 7, 0.4);
- hotspotvisual[i]+=0.1/hotspotsize[i]/hotspotsize[i]/hotspotsize[i];
- }
- }
-
- for(i=0;i<numhotspots;i++){
- if(hotspottype[i]<=10&&hotspottype[i]>0){
- hotspot[i]=player[hotspottype[i]].coords;
- }
- }
- }
-
- //Tutorial
- if(tutoriallevel&&tutorialstagetime>tutorialmaxtime){
- tutorialstage++;
- tutorialsuccess=0;
- if(tutorialstage<=1){
- canattack=0;
- cananger=0;
- reversaltrain=0;
- }
- if(tutorialstage==1){
- tutorialmaxtime=5;
- }
- if(tutorialstage==2){
- tutorialmaxtime=2;
- }
- if(tutorialstage==3){
- tutorialmaxtime=600;
- }
- if(tutorialstage==4){
- tutorialmaxtime=1000;
- }
- if(tutorialstage==5){
- tutorialmaxtime=600;
- }
- if(tutorialstage==6){
- tutorialmaxtime=600;
- }
- if(tutorialstage==7){
- tutorialmaxtime=600;
- }
- if(tutorialstage==8){
- tutorialmaxtime=600;
- }
- if(tutorialstage==9){
- tutorialmaxtime=600;
- }
- if(tutorialstage==10){
- tutorialmaxtime=2;
- }
- if(tutorialstage==11){
- tutorialmaxtime=1000;
- }
- if(tutorialstage==12){
- tutorialmaxtime=1000;
- }
- if(tutorialstage==13){
- tutorialmaxtime=2;
- }
- if(tutorialstage==14){
- tutorialmaxtime=3;
-
- XYZ temp,temp2;
-
- temp.x=1011;
- temp.y=84;
- temp.z=491;
- temp2.x=1025;
- temp2.y=75;
- temp2.z=447;
-
- player[1].coords=(temp+temp2)/2;
-
- float gLoc[3];
- float vel[3];
- gLoc[0]=player[1].coords.x;
- gLoc[1]=player[1].coords.y;
- gLoc[2]=player[1].coords.z;
- vel[0]=0;
- vel[1]=0;
- vel[2]=0;
- PlaySoundEx( fireendsound, samp[fireendsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[fireendsound], gLoc, vel);
- OPENAL_SetVolume(channels[fireendsound], 256);
- OPENAL_SetPaused(channels[fireendsound], false);
-
- for(i=0;i<player[1].skeleton.num_joints;i++){
- if(Random()%2==0){
- if(!player[1].skeleton.free)temp2=(player[1].coords-player[1].oldcoords)/multiplier/2;//velocity/2;
- if(player[1].skeleton.free)temp2=player[1].skeleton.joints[i].velocity*player[1].scale/2;
- if(!player[1].skeleton.free)temp=DoRotation(DoRotation(DoRotation(player[1].skeleton.joints[i].position,0,0,player[1].tilt),player[1].tilt2,0,0),0,player[1].rotation,0)*player[1].scale+player[1].coords;
- if(player[1].skeleton.free)temp=player[1].skeleton.joints[i].position*player[1].scale+player[1].coords;
- sprites.MakeSprite(breathsprite, temp,temp2, 1,1,1, .6+(float)abs(Random()%100)/200-.25, 1);
- }
- }
-
- }
- if(tutorialstage==15){
- tutorialmaxtime=500;
- }
- if(tutorialstage==16){
- tutorialmaxtime=500;
- }
- if(tutorialstage==17){
- tutorialmaxtime=500;
- }
- if(tutorialstage==18){
- tutorialmaxtime=500;
- }
- if(tutorialstage==19){
- tutorialstage=20;
- //tutorialmaxtime=500;
- }
- if(tutorialstage==20){
- tutorialmaxtime=500;
- }
- if(tutorialstage==21){
- tutorialmaxtime=500;
- if(bonus==cannon){
- bonus=Slicebonus;
- againbonus=1;
- }
- else againbonus=0;
- }
- if(tutorialstage==22){
- tutorialmaxtime=500;
- }
- if(tutorialstage==23){
- tutorialmaxtime=500;
- }
- if(tutorialstage==24){
- tutorialmaxtime=500;
- }
- if(tutorialstage==25){
- tutorialmaxtime=500;
- }
- if(tutorialstage==26){
- tutorialmaxtime=2;
- }
- if(tutorialstage==27){
- tutorialmaxtime=4;
- reversaltrain=1;
- cananger=1;
- player[1].aitype=attacktypecutoff;
- }
- if(tutorialstage==28){
- tutorialmaxtime=400;
- }
- if(tutorialstage==29){
- tutorialmaxtime=400;
- player[0].escapednum=0;
- }
- if(tutorialstage==30){
- tutorialmaxtime=4;
- reversaltrain=0;
- cananger=0;
- player[1].aitype=passivetype;
- }
- if(tutorialstage==31){
- tutorialmaxtime=13;
- }
- if(tutorialstage==32){
- tutorialmaxtime=8;
- }
- if(tutorialstage==33){
- tutorialmaxtime=400;
- cananger=1;
- canattack=1;
- player[1].aitype=attacktypecutoff;
- }
- if(tutorialstage==34){
- tutorialmaxtime=400;
- }
- if(tutorialstage==35){
- tutorialmaxtime=400;
- }
- if(tutorialstage==36){
- tutorialmaxtime=2;
- reversaltrain=0;
- cananger=0;
- player[1].aitype=passivetype;
- }
- if(tutorialstage==37){
- damagedealt=0;
- damagetaken=0;
- tutorialmaxtime=50;
- cananger=1;
- canattack=1;
- player[1].aitype=attacktypecutoff;
- }
- if(tutorialstage==38){
- tutorialmaxtime=4;
- canattack=0;
- cananger=0;
- player[1].aitype=passivetype;
- }
- if(tutorialstage==39){
- XYZ temp,temp2;
-
- temp.x=1011;
- temp.y=84;
- temp.z=491;
- temp2.x=1025;
- temp2.y=75;
- temp2.z=447;
-
-
- weapons.owner[weapons.numweapons]=-1;
- weapons.type[weapons.numweapons]=knife;
- weapons.damage[weapons.numweapons]=0;
- weapons.mass[weapons.numweapons]=1;
- weapons.tipmass[weapons.numweapons]=1.2;
- weapons.length[weapons.numweapons]=.25;
- weapons.position[weapons.numweapons]=(temp+temp2)/2;
- weapons.tippoint[weapons.numweapons]=(temp+temp2)/2;
-
- weapons.velocity[weapons.numweapons]=0.1;
- weapons.tipvelocity[weapons.numweapons]=0.1;
- weapons.missed[weapons.numweapons]=1;
- weapons.hitsomething[weapons.numweapons]=0;
- weapons.freetime[weapons.numweapons]=0;
- weapons.firstfree[weapons.numweapons]=1;
- weapons.physics[weapons.numweapons]=1;
-
- weapons.numweapons++;
- }
- if(tutorialstage==40){
- tutorialmaxtime=300;
- }
- if(tutorialstage==41){
- tutorialmaxtime=300;
- }
- if(tutorialstage==42){
- tutorialmaxtime=8;
- }
- if(tutorialstage==43){
- tutorialmaxtime=300;
- }
- if(tutorialstage==44){
- weapons.owner[0]=1;
- player[0].weaponactive=-1;
- player[0].num_weapons=0;
- player[1].weaponactive=0;
- player[1].num_weapons=1;
- player[1].weaponids[0]=0;
-
- cananger=1;
- canattack=1;
- player[1].aitype=attacktypecutoff;
-
- tutorialmaxtime=300;
- }
- if(tutorialstage==45){
- weapons.owner[0]=1;
- player[0].weaponactive=-1;
- player[0].num_weapons=0;
- player[1].weaponactive=0;
- player[1].num_weapons=1;
- player[1].weaponids[0]=0;
-
- tutorialmaxtime=300;
- }
- if(tutorialstage==46){
- weapons.owner[0]=1;
- player[0].weaponactive=-1;
- player[0].num_weapons=0;
- player[1].weaponactive=0;
- player[1].num_weapons=1;
- player[1].weaponids[0]=0;
-
- weapons.type[0]=sword;
-
- tutorialmaxtime=300;
- }
-
- if(tutorialstage==47){
- tutorialmaxtime=10;
-
- XYZ temp,temp2;
-
- temp.x=1011;
- temp.y=84;
- temp.z=491;
- temp2.x=1025;
- temp2.y=75;
- temp2.z=447;
-
- weapons.owner[weapons.numweapons]=-1;
- weapons.type[weapons.numweapons]=sword;
- weapons.damage[weapons.numweapons]=0;
- weapons.mass[weapons.numweapons]=1;
- weapons.tipmass[weapons.numweapons]=1.2;
- weapons.length[weapons.numweapons]=.25;
- weapons.position[weapons.numweapons]=(temp+temp2)/2;
- weapons.tippoint[weapons.numweapons]=(temp+temp2)/2;
-
- weapons.velocity[weapons.numweapons]=0.1;
- weapons.tipvelocity[weapons.numweapons]=0.1;
- weapons.missed[weapons.numweapons]=1;
- weapons.hitsomething[weapons.numweapons]=0;
- weapons.freetime[weapons.numweapons]=0;
- weapons.firstfree[weapons.numweapons]=1;
- weapons.physics[weapons.numweapons]=1;
-
- weapons.owner[0]=1;
- weapons.owner[1]=0;
- player[0].weaponactive=0;
- player[0].num_weapons=1;
- player[0].weaponids[0]=1;
- player[1].weaponactive=0;
- player[1].num_weapons=1;
- player[1].weaponids[0]=0;
-
- weapons.numweapons++;
- }
- if(tutorialstage==48){
- canattack=0;
- cananger=0;
- player[1].aitype=passivetype;
-
- tutorialmaxtime=15;
-
- weapons.owner[0]=1;
- weapons.owner[1]=0;
- player[0].weaponactive=0;
- player[0].num_weapons=1;
- player[0].weaponids[0]=1;
- player[1].weaponactive=0;
- player[1].num_weapons=1;
- player[1].weaponids[0]=0;
-
- if(player[0].weaponactive!=-1)weapons.type[player[0].weaponids[player[0].weaponactive]]=staff;
- else weapons.type[0]=staff;
-
- weapons.numweapons++;
- }
- if(tutorialstage==49){
- canattack=0;
- cananger=0;
- player[1].aitype=passivetype;
-
- tutorialmaxtime=200;
-
- weapons.position[1]=1000;
- weapons.tippoint[1]=1000;
-
- weapons.numweapons=1;
- weapons.owner[0]=0;
- player[1].weaponactive=-1;
- player[1].num_weapons=0;
- player[0].weaponactive=0;
- player[0].num_weapons=1;
- player[0].weaponids[0]=0;
-
- weapons.type[0]=knife;
-
- weapons.numweapons++;
- }
- if(tutorialstage==50){
- tutorialmaxtime=8;
-
- XYZ temp,temp2;
- float gLoc[3];
- float vel[3];
- gLoc[0]=player[1].coords.x;
- gLoc[1]=player[1].coords.y;
- gLoc[2]=player[1].coords.z;
- vel[0]=0;
- vel[1]=0;
- vel[2]=0;
- PlaySoundEx( fireendsound, samp[fireendsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[fireendsound], gLoc, vel);
- OPENAL_SetVolume(channels[fireendsound], 256);
- OPENAL_SetPaused(channels[fireendsound], false);
-
- for(i=0;i<player[1].skeleton.num_joints;i++){
- if(Random()%2==0){
- if(!player[1].skeleton.free)temp2=(player[1].coords-player[1].oldcoords)/multiplier/2;//velocity/2;
- if(player[1].skeleton.free)temp2=player[1].skeleton.joints[i].velocity*player[1].scale/2;
- if(!player[1].skeleton.free)temp=DoRotation(DoRotation(DoRotation(player[1].skeleton.joints[i].position,0,0,player[1].tilt),player[1].tilt2,0,0),0,player[1].rotation,0)*player[1].scale+player[1].coords;
- if(player[1].skeleton.free)temp=player[1].skeleton.joints[i].position*player[1].scale+player[1].coords;
- sprites.MakeSprite(breathsprite, temp,temp2, 1,1,1, .6+(float)abs(Random()%100)/200-.25, 1);
- }
- }
-
- player[1].num_weapons=0;
- player[1].weaponstuck=-1;
- player[1].weaponactive=-1;
-
- weapons.numweapons=0;
-
- weapons.owner[0]=-1;
- weapons.velocity[0]=0.1;
- weapons.tipvelocity[0]=-0.1;
- weapons.missed[0]=1;
- weapons.hitsomething[0]=0;
- weapons.freetime[0]=0;
- weapons.firstfree[0]=1;
- weapons.physics[0]=1;
- }
- if(tutorialstage==51){
- tutorialmaxtime=80000;
- }
- if(tutorialstage<=51)tutorialstagetime=0;
- }
-
- //Tutorial success
- if(tutoriallevel&&tutorialstagetime<tutorialmaxtime-3){
- if(tutorialstage==3){
- if(deltah||deltav)tutorialsuccess+=multiplier;
- }
- if(tutorialstage==4){
- if(player[0].forwardkeydown||player[0].backkeydown||player[0].leftkeydown||player[0].rightkeydown)tutorialsuccess+=multiplier;
- }
- if(tutorialstage==5){
- if(player[0].jumpkeydown)tutorialsuccess=1;
- }
- if(tutorialstage==6){
- if(player[0].isCrouch())tutorialsuccess=1;
- }
- if(tutorialstage==7){
- if(player[0].targetanimation==rollanim)tutorialsuccess=1;
- }
- if(tutorialstage==8){
- if(player[0].targetanimation==sneakanim)tutorialsuccess+=multiplier;
- }
- if(tutorialstage==9){
- if(player[0].targetanimation==rabbitrunninganim||player[0].targetanimation==wolfrunninganim)tutorialsuccess+=multiplier;
- }
- if(tutorialstage==11){
- if(player[0].isWallJump())tutorialsuccess=1;
- }
- if(tutorialstage==12){
- if(player[0].targetanimation==flipanim)tutorialsuccess=1;
- }
- if(tutorialstage==15){
- if(player[0].targetanimation==upunchanim||player[0].targetanimation==winduppunchanim)tutorialsuccess=1;
- }
- if(tutorialstage==16){
- if(player[0].targetanimation==winduppunchanim)tutorialsuccess=1;
- }
- if(tutorialstage==17){
- if(player[0].targetanimation==spinkickanim)tutorialsuccess=1;
- }
- if(tutorialstage==18){
- if(player[0].targetanimation==sweepanim)tutorialsuccess=1;
- }
- if(tutorialstage==19){
- if(player[0].targetanimation==dropkickanim)tutorialsuccess=1;
- }
- if(tutorialstage==20){
- if(player[0].targetanimation==rabbitkickanim)tutorialsuccess=1;
- }
- if(tutorialstage==21){
- if(bonus==cannon)tutorialsuccess=1;
- }
- if(tutorialstage==22){
- if(bonus==spinecrusher)tutorialsuccess=1;
- }
- if(tutorialstage==23){
- if(player[0].targetanimation==walljumprightkickanim||player[0].targetanimation==walljumpleftkickanim)tutorialsuccess=1;
- }
- if(tutorialstage==24){
- if(player[0].targetanimation==rabbittacklinganim)tutorialsuccess=1;
- }
- if(tutorialstage==25){
- if(player[0].targetanimation==backhandspringanim)tutorialsuccess=1;
- }
- if(tutorialstage==28){
- if(animation[player[0].targetanimation].attack==reversed&&player[0].feint)tutorialsuccess=1;
- }
- if(tutorialstage==29){
- if(player[0].escapednum==2){
- tutorialsuccess=1;
- reversaltrain=0;
- cananger=0;
- player[1].aitype=passivetype;
- }
- }
- if(tutorialstage==33){
- if(animation[player[0].targetanimation].attack==reversal)tutorialsuccess=1;
- }
- if(tutorialstage==34){
- if(animation[player[0].targetanimation].attack==reversal)tutorialsuccess=1;
- }
- if(tutorialstage==35){
- if(animation[player[0].targetanimation].attack==reversal){
- tutorialsuccess=1;
- reversaltrain=0;
- cananger=0;
- player[1].aitype=passivetype;
- }
- }
- if(tutorialstage==40){
- if(player[0].num_weapons>0)tutorialsuccess=1;
- }
- if(tutorialstage==41){
- if(player[0].weaponactive==-1&&player[0].num_weapons>0)tutorialsuccess=1;
- }
- if(tutorialstage==43){
- if(player[0].targetanimation==knifeslashstartanim)tutorialsuccess=1;
- }
- if(tutorialstage==44){
- if(animation[player[0].targetanimation].attack==reversal)tutorialsuccess=1;
- }
- if(tutorialstage==45){
- if(animation[player[0].targetanimation].attack==reversal)tutorialsuccess=1;
- }
- if(tutorialstage==46){
- if(animation[player[0].targetanimation].attack==reversal)tutorialsuccess=1;
- }
- if(tutorialstage==49){
- if(player[1].weaponstuck!=-1)tutorialsuccess=1;
- }
- if(tutorialsuccess>=1)tutorialstagetime=tutorialmaxtime-3;
-
-
- if(tutorialstagetime==tutorialmaxtime-3){
- PlaySoundEx( consolesuccesssound, samp[consolesuccesssound], NULL, true);
- OPENAL_SetVolume(channels[consolesuccesssound], 256);
- OPENAL_SetPaused(channels[consolesuccesssound], false);
- }
-
- if(tutorialsuccess>=1){
- if(tutorialstage==34||tutorialstage==35)
- tutorialstagetime=tutorialmaxtime-1;
- }
- }
-
- if(tutoriallevel){
- if(tutorialstage<14||tutorialstage>=50){
- player[1].coords.y=300;
- player[1].velocity=0;
- }
- }
-
- if(tutoriallevel!=1){
- if(bonustime==0&&bonus!=solidhit&&bonus!=spinecrusher&&bonus!=tracheotomy&&bonus!=backstab&&bonusvalue>10){
- PlaySoundEx( consolesuccesssound, samp[consolesuccesssound], NULL, true);
- OPENAL_SetVolume(channels[consolesuccesssound], 256);
- OPENAL_SetPaused(channels[consolesuccesssound], false);
- }
- }
- else
- if(bonustime==0){
- PlaySoundEx( fireendsound, samp[fireendsound], NULL, true);
- OPENAL_SetVolume(channels[fireendsound], 256);
- OPENAL_SetPaused(channels[fireendsound], false);
- }
- if(bonustime==0){
- if(bonus!=solidhit&&bonus!=twoxcombo&&bonus!=threexcombo&&bonus!=fourxcombo&&bonus!=megacombo)bonusnum[bonus]++;
- else bonusnum[bonus]+=0.15;
- if(tutoriallevel)bonusvalue=0;
- bonusvalue/=bonusnum[bonus];
- bonustotal+=bonusvalue;
- }
- bonustime+=multiplier;
-
- if(environment==snowyenvironment){
- precipdelay-=multiplier;
- while(precipdelay<0){
- precipdelay+=.04;
- if(!detail)precipdelay+=.04;
- XYZ footvel,footpoint;
-
- footvel=0;
- footpoint=viewer+viewerfacing*6;
- footpoint.y+=((float)abs(Random()%1200))/100-6;
- footpoint.x+=((float)abs(Random()%1200))/100-6;
- footpoint.z+=((float)abs(Random()%1200))/100-6;
- sprites.MakeSprite(snowsprite, footpoint,footvel, 1,1,1, .1, 1);
- }
- }
- for(k=0;k<numplayers;k++){
- if(player[k].aitype==playercontrolled)player[k].turnspeed=500;
- if(player[k].aitype!=playercontrolled)player[k].turnspeed=500;
-
- if((player[k].isRun()&&((player[k].targetrotation!=rabbitrunninganim&&player[k].targetrotation!=wolfrunninganim)||player[k].targetframe==4))||player[k].targetanimation==removeknifeanim||player[k].targetanimation==crouchremoveknifeanim||player[k].targetanimation==flipanim||player[k].targetanimation==fightsidestep||player[k].targetanimation==walkanim){
- if(abs(player[k].rotation-player[k].targetrotation)<multiplier*player[k].turnspeed)player[k].rotation=player[k].targetrotation;
- else if(player[k].rotation>player[k].targetrotation){
- player[k].rotation-=multiplier*player[k].turnspeed;
- }
- else if(player[k].rotation<player[k].targetrotation){
- player[k].rotation+=multiplier*player[k].turnspeed;
- }
- }
-
-
- if(player[k].isStop()||player[k].isLanding()||player[k].targetanimation==staggerbackhighanim||(player[k].targetanimation==sneakanim&&player[k].currentanimation==sneakanim)||player[k].targetanimation==staggerbackhardanim||player[k].targetanimation==backhandspringanim||player[k].targetanimation==dodgebackanim||player[k].targetanimation==rollanim||(animation[player[k].targetanimation].attack&&player[k].targetanimation!=rabbitkickanim&&(player[k].targetanimation!=crouchstabanim||player[k].hasvictim)&&(player[k].targetanimation!=swordgroundstabanim||player[k].hasvictim))){
- player[k].turnspeed*=2;
- if(abs(player[k].rotation-player[k].targetrotation)<multiplier*player[k].turnspeed)player[k].rotation=player[k].targetrotation;
- else if(player[k].rotation>player[k].targetrotation){
- player[k].rotation-=multiplier*player[k].turnspeed;
- }
- else if(player[k].rotation<player[k].targetrotation){
- player[k].rotation+=multiplier*player[k].turnspeed;
- }
- player[k].turnspeed/=2;
- }
-
- if(player[k].targetanimation==sneakanim&&player[k].currentanimation!=sneakanim){
- player[k].turnspeed*=4;
- if(abs(player[k].rotation-player[k].targetrotation)<multiplier*player[k].turnspeed)player[k].rotation=player[k].targetrotation;
- else if(player[k].rotation>player[k].targetrotation){
- player[k].rotation-=multiplier*player[k].turnspeed;
- }
- else if(player[k].rotation<player[k].targetrotation){
- player[k].rotation+=multiplier*player[k].turnspeed;
- }
- player[k].turnspeed/=4;
- }
-
- /*if(player[k].aitype!=passivetype||(findDistancefast(&player[k].coords,&viewer)<viewdistance*viewdistance))*/ player[k].DoStuff();
- if(player[k].immobile&&k!=0)player[k].coords=player[k].realoldcoords;
-
- if(findDistancefast(&player[k].coords,&player[k].realoldcoords)>0){
- if(!player[k].skeleton.free&&player[k].targetanimation!=climbanim&&player[k].targetanimation!=hanganim){
- bool tempcollide=0;
-
- if(player[k].collide<-.3)player[k].collide=-.3;
- if(player[k].collide>1)player[k].collide=1;
- player[k].collide-=multiplier*30;
-
- if(player[k].coords.y<terrain.getHeight(player[k].coords.x,player[k].coords.z)){
- player[k].coords.y=terrain.getHeight(player[k].coords.x,player[k].coords.z);
- }
- if(terrain.patchobjectnum[player[k].whichpatchx][player[k].whichpatchz])
- for(l=0;l<terrain.patchobjectnum[player[k].whichpatchx][player[k].whichpatchz];l++){
- i=terrain.patchobjects[player[k].whichpatchx][player[k].whichpatchz][l];
- if(objects.type[i]!=rocktype||(((objects.scale[i]>.5&&player[k].aitype==playercontrolled)||objects.position[i].y>player[k].coords.y))){
- lowpoint=player[k].coords;
- if(player[k].targetanimation!=jumpupanim&&player[k].targetanimation!=jumpdownanim&&!player[k].isFlip())lowpoint.y+=1.25;
- else lowpoint.y+=1.3;
- if(player[k].coords.y<terrain.getHeight(player[k].coords.x,player[k].coords.z)&&player[k].coords.y>terrain.getHeight(player[k].coords.x,player[k].coords.z)-.1){
- player[k].coords.y=terrain.getHeight(player[k].coords.x,player[k].coords.z);
- }
- /*while(player[k].coords.y<terrain.getHeight(player[k].coords.x,player[k].coords.z))
- player[k].coords+=terrain.getNormal(player[k].coords.x,player[k].coords.z)/50;
- */
- if(player[k].SphereCheck(&lowpoint, 1.3, &colpoint, &objects.position[i], &objects.rotation[i], &objects.model[i])!=-1){
- flatfacing=lowpoint-player[k].coords;
- player[k].coords=lowpoint;
- player[k].coords.y-=1.3;
- player[k].collide=1;
- tempcollide=1;
- if(player[k].aitype==playercontrolled&&(player[k].targetanimation==jumpupanim||player[k].targetanimation==jumpdownanim||player[k].isFlip())&&!player[k].jumptogglekeydown&&player[k].jumpkeydown){
- lowpointtarget=lowpoint+DoRotation(player[k].facing,0,-90,0)*1.5;
- tempcoords1=lowpoint;
- whichhit=objects.model[i].LineCheck(&lowpoint,&lowpointtarget,&colpoint,&objects.position[i],&objects.rotation[i]);
- if(whichhit!=-1&&abs(objects.model[i].facenormals[whichhit].y)<.3){
- player[k].target=0;
- player[k].targetanimation=walljumpleftanim;
- player[k].targetframe=0;
- float gLoc[3];
- float vel[3];
- gLoc[0]=player[k].coords.x;
- gLoc[1]=player[k].coords.y;
- gLoc[2]=player[k].coords.z;
- vel[0]=0;
- vel[1]=0;
- vel[2]=0;
- PlaySoundEx( movewhooshsound, samp[movewhooshsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[movewhooshsound], gLoc, vel);
- OPENAL_SetVolume(channels[movewhooshsound], 256);
- OPENAL_SetPaused(channels[movewhooshsound], false);
- if(k==0)OPENAL_SetPaused(channels[whooshsound], true);
-
- lowpointtarget=DoRotation(objects.model[i].facenormals[whichhit],0,objects.rotation[i],0);
- player[k].rotation=-asin(0-lowpointtarget.x);
- player[k].rotation*=360/6.28;
- if(lowpointtarget.z<0)player[k].rotation=180-player[k].rotation;
- player[k].targetrotation=player[k].rotation;
- player[k].lowrotation=player[k].rotation;
- if(k==0)numwallflipped++;
- }
- else
- {
- lowpoint=tempcoords1;
- lowpointtarget=lowpoint+DoRotation(player[k].facing,0,90,0)*1.5;
- whichhit=objects.model[i].LineCheck(&lowpoint,&lowpointtarget,&colpoint,&objects.position[i],&objects.rotation[i]);
- if(whichhit!=-1&&abs(objects.model[i].facenormals[whichhit].y)<.3){
- player[k].target=0;
- player[k].targetanimation=walljumprightanim;
- player[k].targetframe=0;
- float gLoc[3];
- float vel[3];
- gLoc[0]=player[k].coords.x;
- gLoc[1]=player[k].coords.y;
- gLoc[2]=player[k].coords.z;
- vel[0]=0;
- vel[1]=0;
- vel[2]=0;
- PlaySoundEx( movewhooshsound, samp[movewhooshsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[movewhooshsound], gLoc, vel);
- OPENAL_SetVolume(channels[movewhooshsound], 256);
- OPENAL_SetPaused(channels[movewhooshsound], false);
- if(k==0)OPENAL_SetPaused(channels[whooshsound], true);
-
- lowpointtarget=DoRotation(objects.model[i].facenormals[whichhit],0,objects.rotation[i],0);
- player[k].rotation=-asin(0-lowpointtarget.x);
- player[k].rotation*=360/6.28;
- if(lowpointtarget.z<0)player[k].rotation=180-player[k].rotation;
- player[k].targetrotation=player[k].rotation;
- player[k].lowrotation=player[k].rotation;
- if(k==0)numwallflipped++;
- }
- else
- {
- lowpoint=tempcoords1;
- lowpointtarget=lowpoint+player[k].facing*2;
- whichhit=objects.model[i].LineCheck(&lowpoint,&lowpointtarget,&colpoint,&objects.position[i],&objects.rotation[i]);
- if(whichhit!=-1&&abs(objects.model[i].facenormals[whichhit].y)<.3){
- player[k].target=0;
- player[k].targetanimation=walljumpbackanim;
- player[k].targetframe=0;
- float gLoc[3];
- float vel[3];
- gLoc[0]=player[k].coords.x;
- gLoc[1]=player[k].coords.y;
- gLoc[2]=player[k].coords.z;
- vel[0]=0;
- vel[1]=0;
- vel[2]=0;
- PlaySoundEx( movewhooshsound, samp[movewhooshsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[movewhooshsound], gLoc, vel);
- OPENAL_SetVolume(channels[movewhooshsound], 256);
- OPENAL_SetPaused(channels[movewhooshsound], false);
- if(k==0)OPENAL_SetPaused(channels[whooshsound], true);
-
- lowpointtarget=DoRotation(objects.model[i].facenormals[whichhit],0,objects.rotation[i],0);
- player[k].rotation=-asin(0-lowpointtarget.x);
- player[k].rotation*=360/6.28;
- if(lowpointtarget.z<0)player[k].rotation=180-player[k].rotation;
- player[k].targetrotation=player[k].rotation;
- player[k].lowrotation=player[k].rotation;
- if(k==0)numwallflipped++;
- }
- else
- {
- lowpoint=tempcoords1;
- lowpointtarget=lowpoint-player[k].facing*2;
- whichhit=objects.model[i].LineCheck(&lowpoint,&lowpointtarget,&colpoint,&objects.position[i],&objects.rotation[i]);
- if(whichhit!=-1&&abs(objects.model[i].facenormals[whichhit].y)<.3){
- player[k].target=0;
- player[k].targetanimation=walljumpfrontanim;
- player[k].targetframe=0;
- float gLoc[3];
- float vel[3];
- gLoc[0]=player[k].coords.x;
- gLoc[1]=player[k].coords.y;
- gLoc[2]=player[k].coords.z;
- vel[0]=0;
- vel[1]=0;
- vel[2]=0;
- PlaySoundEx( movewhooshsound, samp[movewhooshsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[movewhooshsound], gLoc, vel);
- OPENAL_SetVolume(channels[movewhooshsound], 256);
- OPENAL_SetPaused(channels[movewhooshsound], false);
- if(k==0)OPENAL_SetPaused(channels[whooshsound], true);
-
- lowpointtarget=DoRotation(objects.model[i].facenormals[whichhit],0,objects.rotation[i],0);
- player[k].rotation=-asin(0-lowpointtarget.x);
- player[k].rotation*=360/6.28;
- if(lowpointtarget.z<0)player[k].rotation=180-player[k].rotation;
- player[k].rotation+=180;
- player[k].targetrotation=player[k].rotation;
- player[k].lowrotation=player[k].rotation;
- if(k==0)numwallflipped++;
- }
- }
- }
- }
- }
- }
- }
- else if(objects.type[i]==rocktype){
- lowpoint2=player[k].coords;
- lowpoint=player[k].coords;
- lowpoint.y+=2;
- if(objects.model[i].LineCheck(&lowpoint,&lowpoint2,&colpoint,&objects.position[i],&objects.rotation[i])!=-1){
- player[k].coords=colpoint;
- player[k].collide=1;
- tempcollide=1;
-
- if((player[k].targetanimation==jumpdownanim||player[k].isFlip())){
- if(player[k].isFlip()&&animation[player[k].targetanimation].label[player[k].targetframe]==7)player[k].RagDoll(0);
-
- if(player[k].targetanimation==jumpupanim){player[k].jumppower=-4;player[k].targetanimation=player[k].getIdle();}
- player[k].target=0;
- player[k].targetframe=0;
- player[k].onterrain=1;
-
- if(player[k].id==0){
- OPENAL_SetPaused(channels[whooshsound], true);
- OPENAL_SetVolume(channels[whooshsound], 0);
- }
-
- if((player[k].targetanimation==jumpdownanim||player[k].isFlip())&&!player[k].wasLanding()){
- if(player[k].isFlip())player[k].jumppower=-4;
- player[k].targetanimation=player[k].getLanding();
- float gLoc[3];
- float vel[3];
- gLoc[0]=player[k].coords.x;
- gLoc[1]=player[k].coords.y;
- gLoc[2]=player[k].coords.z;
- vel[0]=player[k].velocity.x;
- vel[1]=player[k].velocity.y;
- vel[2]=player[k].velocity.z;
- PlaySoundEx( landsound, samp[landsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[landsound], gLoc, vel);
- OPENAL_SetVolume(channels[landsound], 128);
- OPENAL_SetPaused(channels[landsound], false);
- if(k==0){
- envsound[numenvsounds]=player[k].coords;
- envsoundvol[numenvsounds]=16;
- envsoundlife[numenvsounds]=.4;
- numenvsounds++;
- }
-
- }
- }
- }
- }
- }
- if(tempcollide&&terrain.patchobjectnum[player[k].whichpatchx][player[k].whichpatchz]&&(/*player[k].jumptogglekeydown*/1==1||player[k].aitype!=playercontrolled))
- for(l=0;l<terrain.patchobjectnum[player[k].whichpatchx][player[k].whichpatchz];l++){
- i=terrain.patchobjects[player[k].whichpatchx][player[k].whichpatchz][l];
- lowpoint=player[k].coords;
- lowpoint.y+=1.35;
- if(objects.type[i]!=rocktype)
- if(player[k].SphereCheck(&lowpoint, 1.33, &colpoint, &objects.position[i], &objects.rotation[i], &objects.model[i])!=-1){
- if(player[k].targetanimation!=jumpupanim&&player[k].targetanimation!=jumpdownanim&&player[k].onterrain)player[k].avoidcollided=1;
- player[k].coords=lowpoint;
- player[k].coords.y-=1.35;
- player[k].collide=1;
-
- if((player[k].grabdelay<=0||player[k].aitype!=playercontrolled)&&((/*(player[k].isRun()||player[k].targetanimation==sneakanim||player[k].targetanimation==walkanim)&&*/player[k].currentanimation!=climbanim&&player[k].currentanimation!=hanganim&&!player[k].isWallJump())||player[k].targetanimation==jumpupanim||player[k].targetanimation==jumpdownanim)){
- lowpoint=player[k].coords;
- objects.model[i].SphereCheckPossible(&lowpoint, 1.5, &objects.position[i], &objects.rotation[i]);
- lowpoint=player[k].coords;
- lowpoint.y+=.05;
- facing=0;
- facing.z=-1;
- facing=DoRotation(facing,0,player[k].targetrotation+180,0);
- lowpointtarget=lowpoint+facing*1.4;
- whichhit=objects.model[i].LineCheckPossible(&lowpoint,&lowpointtarget,&colpoint,&objects.position[i],&objects.rotation[i]);
- if(whichhit!=-1){
- lowpoint=player[k].coords;
- lowpoint.y+=.1;
- lowpointtarget=lowpoint+facing*1.4;
- lowpoint2=lowpoint;
- lowpointtarget2=lowpointtarget;
- lowpoint3=lowpoint;
- lowpointtarget3=lowpointtarget;
- lowpoint4=lowpoint;
- lowpointtarget4=lowpointtarget;
- lowpoint5=lowpoint;
- lowpointtarget5=lowpointtarget;
- lowpoint6=lowpoint;
- lowpointtarget6=lowpointtarget;
- lowpoint7=lowpoint;
- lowpointtarget7=lowpoint;
- lowpoint2.x+=.1;
- lowpointtarget2.x+=.1;
- lowpoint3.z+=.1;
- lowpointtarget3.z+=.1;
- lowpoint4.x-=.1;
- lowpointtarget4.x-=.1;
- lowpoint5.z-=.1;
- lowpointtarget5.z-=.1;
- lowpoint6.y+=45/13;
- lowpointtarget6.y+=45/13;
- lowpointtarget6+=facing*.6;
- lowpointtarget7.y+=90/13;
- whichhit=objects.model[i].LineCheckPossible(&lowpoint,&lowpointtarget,&colpoint,&objects.position[i],&objects.rotation[i]);
- if(objects.friction[i]>.5)
- if(whichhit!=-1){
- //if(k==0){
- if(whichhit!=-1)if(player[k].targetanimation!=jumpupanim&&player[k].targetanimation!=jumpdownanim)player[k].collided=1;
- if(checkcollide(lowpoint7,lowpointtarget7)==-1)
- if(checkcollide(lowpoint6,lowpointtarget6)==-1)
- if(objects.model[i].LineCheckPossible(&lowpoint2,&lowpointtarget2,&colpoint,&objects.position[i],&objects.rotation[i])!=-1&&objects.model[i].LineCheckPossible(&lowpoint3,&lowpointtarget3,&colpoint,&objects.position[i],&objects.rotation[i])!=-1&&objects.model[i].LineCheckPossible(&lowpoint4,&lowpointtarget4,&colpoint,&objects.position[i],&objects.rotation[i])!=-1&&objects.model[i].LineCheckPossible(&lowpoint5,&lowpointtarget5,&colpoint,&objects.position[i],&objects.rotation[i])!=-1)
- for(j=0;j<45;j++){
- lowpoint=player[k].coords;
- lowpoint.y+=(float)j/13;
- lowpointtarget=lowpoint+facing*1.4;
- if(objects.model[i].LineCheckPossible(&lowpoint,&lowpointtarget,&colpoint2,&objects.position[i],&objects.rotation[i])==-1){
- if(j<=6){
- j=100;
- }
- /*if(j>=25&&(player[k].isRun()||player[k].targetanimation==sneakanim||player[k].targetanimation==walkanim)){
- j=100;
- }*/
- if(j<=25&&player[k].targetanimation==jumpdownanim){
- j=100;
- }
- if(j!=100&&(/*j>25||(player[k].isRun()||player[k].targetanimation==sneakanim||player[k].targetanimation==walkanim)||*/player[k].targetanimation==jumpupanim||player[k].targetanimation==jumpdownanim)){
- lowpoint=DoRotation(objects.model[i].facenormals[whichhit],0,objects.rotation[k],0);
- if(1==1/*dotproduct(&player[k].velocity,&lowpoint)>0||player[k].aitype!=playercontrolled||(player[k].isRun()||player[k].targetanimation==sneakanim||player[k].targetanimation==walkanim||player[k].targetanimation==jumpupanim)*/){
- lowpoint=player[k].coords;
- lowpoint.y+=(float)j/13;
- lowpointtarget=lowpoint+facing*1.3;
- flatfacing=player[k].coords;
- player[k].coords=colpoint-DoRotation(objects.model[i].facenormals[whichhit],0,objects.rotation[k],0)*.01;
- player[k].coords.y=lowpointtarget.y-.07;
- player[k].currentoffset=(flatfacing-player[k].coords)/player[k].scale;
-
- if(j>10||!player[k].isRun()){
- if(player[k].targetanimation==jumpdownanim||player[k].targetanimation==jumpupanim){
- if(k==0)OPENAL_SetPaused(channels[whooshsound], true);
- }
- float gLoc[3];
- float vel[3];
- gLoc[0]=player[k].coords.x;
- gLoc[1]=player[k].coords.y;
- gLoc[2]=player[k].coords.z;
- vel[0]=player[k].velocity.x;
- vel[1]=player[k].velocity.y;
- vel[2]=player[k].velocity.z;
- PlaySoundEx( jumpsound, samp[jumpsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[jumpsound], gLoc, vel);
- OPENAL_SetVolume(channels[jumpsound], 128);
- OPENAL_SetPaused(channels[jumpsound], false);
-
- lowpointtarget=DoRotation(objects.model[i].facenormals[whichhit],0,objects.rotation[i],0);
- player[k].rotation=-asin(0-lowpointtarget.x);
- player[k].rotation*=360/6.28;
- if(lowpointtarget.z<0)player[k].rotation=180-player[k].rotation;
- player[k].targetrotation=player[k].rotation;
- player[k].lowrotation=player[k].rotation;
-
- //player[k].velocity=lowpointtarget*.03;
- player[k].velocity=0;
-
- if(/*(player[k].isRun()||player[k].targetanimation==sneakanim||player[k].targetanimation==walkanim)||*/player[k].targetanimation==jumpupanim){
- //player[k].currentanimation=climbanim;
- player[k].targetanimation=climbanim;
- player[k].jumppower=0;
- player[k].jumpclimb=1;
- }
- player[k].transspeed=6;
- player[k].target=0;
-
- //player[k].currentframe=1;
- player[k].targetframe=1;
- if(j>25){
- //player[k].currentframe=0;
- player[k].targetframe=0;
- //player[k].currentanimation=hanganim;
- player[k].targetanimation=hanganim;
- player[k].jumppower=0;
- }
- }
- j=100;
- }
- }
- }
- }
- //}
- }
- }
- }
- }
- }
- if(player[k].collide<=0){
- if(!player[k].onterrain&&player[k].targetanimation!=jumpupanim&&player[k].targetanimation!=jumpdownanim&&player[k].targetanimation!=climbanim&&player[k].targetanimation!=hanganim&&!player[k].isWallJump()&&!player[k].isFlip()){
- if(player[k].currentanimation!=climbanim&&player[k].currentanimation!=tempanim&&player[k].targetanimation!=backhandspringanim&&(player[k].targetanimation!=rollanim||player[k].targetframe<2||player[k].targetframe>6)){
- if(player[k].targetanimation==staggerbackhighanim||player[k].targetanimation==staggerbackhardanim)player[k].RagDoll(0);
- player[k].targetanimation=jumpdownanim;
- player[k].targetframe=0;
- player[k].target=0;
-
- float gLoc[3];
- float vel[3];
- gLoc[0]=player[k].coords.x;
- gLoc[1]=player[k].coords.y;
- gLoc[2]=player[k].coords.z;
- vel[0]=player[k].velocity.x;
- vel[1]=player[k].velocity.y;
- vel[2]=player[k].velocity.z;
- if(k==0){
- PlaySoundEx( whooshsound, samp[whooshsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[whooshsound], gLoc, vel);
- OPENAL_SetVolume(channels[whooshsound], 128);
- OPENAL_SetPaused(channels[whooshsound], false);
- }
- }
- player[k].velocity.y+=gravity;
- }
- }
- }
- }
- player[k].realoldcoords=player[k].coords;
- }
-
- static XYZ oldviewer;
-
- if(indialogue==-1){
- player[0].forwardkeydown=IsKeyDown(theKeyMap, forwardkey);
- player[0].leftkeydown=IsKeyDown(theKeyMap, leftkey);
- player[0].backkeydown=IsKeyDown(theKeyMap, backkey);
- player[0].rightkeydown=IsKeyDown(theKeyMap, rightkey);
- player[0].jumpkeydown=IsKeyDown(theKeyMap, jumpkey);
- player[0].crouchkeydown=IsKeyDown(theKeyMap, crouchkey);
- player[0].drawkeydown=IsKeyDown(theKeyMap, drawkey);
- player[0].throwkeydown=IsKeyDown(theKeyMap, throwkey);
- }
- else
- {
- player[0].forwardkeydown=0;
- player[0].leftkeydown=0;
- player[0].backkeydown=0;
- player[0].rightkeydown=0;
- player[0].jumpkeydown=0;
- player[0].crouchkeydown=0;
- player[0].drawkeydown=0;
- player[0].throwkeydown=0;
- }
-
- if(!player[0].jumpkeydown)player[0].jumpclimb=0;
-
-
- static bool endkeydown;
- if(indialogue!=-1){
- cameramode=1;
- if(directing){
- facing=0;
- facing.z=-1;
-
- facing=DoRotation(facing,-rotation2,0,0);
- facing=DoRotation(facing,0,0-rotation,0);
-
- flatfacing=0;
- flatfacing.z=-1;
-
- flatfacing=DoRotation(flatfacing,0,-rotation,0);
-
- if(IsKeyDown(theKeyMap, forwardkey))viewer+=facing*multiplier*4;
- if(IsKeyDown(theKeyMap, backkey))viewer-=facing*multiplier*4;
- if(IsKeyDown(theKeyMap, leftkey))viewer+=DoRotation(flatfacing*multiplier,0,90,0)*4;
- if(IsKeyDown(theKeyMap, rightkey))viewer+=DoRotation(flatfacing*multiplier,0,-90,0)*4;
- if(IsKeyDown(theKeyMap, jumpkey))viewer.y+=multiplier*4;
- if(IsKeyDown(theKeyMap, crouchkey))viewer.y-=multiplier*4;
- if(!endkeydown&&(IsKeyDown(theKeyMap, MAC_1_KEY)||IsKeyDown(theKeyMap, MAC_2_KEY)||IsKeyDown(theKeyMap, MAC_3_KEY)||IsKeyDown(theKeyMap, MAC_4_KEY)||IsKeyDown(theKeyMap, MAC_5_KEY)
- ||IsKeyDown(theKeyMap, MAC_6_KEY)||IsKeyDown(theKeyMap, MAC_7_KEY)||IsKeyDown(theKeyMap, MAC_8_KEY)||IsKeyDown(theKeyMap, MAC_9_KEY)||IsKeyDown(theKeyMap, MAC_0_KEY)
- ||IsKeyDown(theKeyMap, MAC_MINUS_KEY))){
- int whichend;
- if(IsKeyDown(theKeyMap, MAC_1_KEY))whichend=1;
- if(IsKeyDown(theKeyMap, MAC_2_KEY))whichend=2;
- if(IsKeyDown(theKeyMap, MAC_3_KEY))whichend=3;
- if(IsKeyDown(theKeyMap, MAC_4_KEY))whichend=4;
- if(IsKeyDown(theKeyMap, MAC_5_KEY))whichend=5;
- if(IsKeyDown(theKeyMap, MAC_6_KEY))whichend=6;
- if(IsKeyDown(theKeyMap, MAC_7_KEY))whichend=7;
- if(IsKeyDown(theKeyMap, MAC_8_KEY))whichend=8;
- if(IsKeyDown(theKeyMap, MAC_9_KEY))whichend=9;
- if(IsKeyDown(theKeyMap, MAC_0_KEY))whichend=0;
- if(IsKeyDown(theKeyMap, MAC_MINUS_KEY))whichend=-1;
- if(whichend!=-1){
- participantfocus[whichdialogue][indialogue]=whichend;
- participantlocation[whichdialogue][whichend]=player[whichend].coords;
- participantrotation[whichdialogue][whichend]=player[whichend].rotation;
- }
- if(whichend==-1){
- participantfocus[whichdialogue][indialogue]=-1;
- }
- if(player[participantfocus[whichdialogue][indialogue]].dead){
- indialogue=-1;
- directing=0;
- cameramode=0;
- }
- dialoguecamera[whichdialogue][indialogue]=viewer;
- dialoguecamerarotation[whichdialogue][indialogue]=rotation;
- dialoguecamerarotation2[whichdialogue][indialogue]=rotation2;
- indialogue++;
- if(indialogue<numdialogueboxes[whichdialogue]){
- if(dialogueboxsound[whichdialogue][indialogue]!=0){
- static float gLoc[3];
- static float vel[3];
- XYZ temppos;
- temppos=player[participantfocus[whichdialogue][indialogue]].coords;
- temppos=temppos-viewer;
- Normalise(&temppos);
- temppos+=viewer;
-
- gLoc[0]=temppos.x;
- gLoc[1]=temppos.y;
- gLoc[2]=temppos.z;vel[0]=0;
- vel[1]=0;
- vel[2]=0;
- int whichsoundplay;
- if(dialogueboxsound[whichdialogue][indialogue]==1)whichsoundplay=rabbitchitter;
- if(dialogueboxsound[whichdialogue][indialogue]==2)whichsoundplay=rabbitchitter2;
- if(dialogueboxsound[whichdialogue][indialogue]==3)whichsoundplay=rabbitpainsound;
- if(dialogueboxsound[whichdialogue][indialogue]==4)whichsoundplay=rabbitpain1sound;
- if(dialogueboxsound[whichdialogue][indialogue]==5)whichsoundplay=rabbitattacksound;
- if(dialogueboxsound[whichdialogue][indialogue]==6)whichsoundplay=rabbitattack2sound;
- if(dialogueboxsound[whichdialogue][indialogue]==7)whichsoundplay=rabbitattack3sound;
- if(dialogueboxsound[whichdialogue][indialogue]==8)whichsoundplay=rabbitattack4sound;
- if(dialogueboxsound[whichdialogue][indialogue]==9)whichsoundplay=growlsound;
- if(dialogueboxsound[whichdialogue][indialogue]==10)whichsoundplay=growl2sound;
- if(dialogueboxsound[whichdialogue][indialogue]==11)whichsoundplay=snarlsound;
- if(dialogueboxsound[whichdialogue][indialogue]==12)whichsoundplay=snarl2sound;
- if(dialogueboxsound[whichdialogue][indialogue]==13)whichsoundplay=barksound;
- if(dialogueboxsound[whichdialogue][indialogue]==14)whichsoundplay=bark2sound;
- if(dialogueboxsound[whichdialogue][indialogue]==15)whichsoundplay=bark3sound;
- if(dialogueboxsound[whichdialogue][indialogue]==16)whichsoundplay=barkgrowlsound;
- if(dialogueboxsound[whichdialogue][indialogue]==-1)whichsoundplay=fireendsound;
- if(dialogueboxsound[whichdialogue][indialogue]==-2)whichsoundplay=firestartsound;
- if(dialogueboxsound[whichdialogue][indialogue]==-3)whichsoundplay=consolesuccesssound;
- if(dialogueboxsound[whichdialogue][indialogue]==-4)whichsoundplay=consolefailsound;
- PlaySoundEx( whichsoundplay, samp[whichsoundplay], NULL, true);
- OPENAL_3D_SetAttributes(channels[whichsoundplay], gLoc, vel);
- OPENAL_SetVolume(channels[whichsoundplay], 256);
- OPENAL_SetPaused(channels[whichsoundplay], false);
- }
- }
-
- for(j=0;j<numplayers;j++){
- participantfacing[whichdialogue][indialogue][j]=participantfacing[whichdialogue][indialogue-1][j];
- }
-
- endkeydown=1;
- }
- if((IsKeyDown(theKeyMap, MAC_NUMPAD_1_KEY)||IsKeyDown(theKeyMap, MAC_NUMPAD_2_KEY)||IsKeyDown(theKeyMap, MAC_NUMPAD_3_KEY)||IsKeyDown(theKeyMap, MAC_NUMPAD_4_KEY)||IsKeyDown(theKeyMap, MAC_NUMPAD_5_KEY)
- ||IsKeyDown(theKeyMap, MAC_NUMPAD_6_KEY)||IsKeyDown(theKeyMap, MAC_NUMPAD_7_KEY)||IsKeyDown(theKeyMap, MAC_NUMPAD_8_KEY)||IsKeyDown(theKeyMap, MAC_NUMPAD_9_KEY)||IsKeyDown(theKeyMap, MAC_NUMPAD_0_KEY)
- )){
- int whichend;
- if(IsKeyDown(theKeyMap, MAC_NUMPAD_1_KEY))whichend=1;
- if(IsKeyDown(theKeyMap, MAC_NUMPAD_2_KEY))whichend=2;
- if(IsKeyDown(theKeyMap, MAC_NUMPAD_3_KEY))whichend=3;
- if(IsKeyDown(theKeyMap, MAC_NUMPAD_4_KEY))whichend=4;
- if(IsKeyDown(theKeyMap, MAC_NUMPAD_5_KEY))whichend=5;
- if(IsKeyDown(theKeyMap, MAC_NUMPAD_6_KEY))whichend=6;
- if(IsKeyDown(theKeyMap, MAC_NUMPAD_7_KEY))whichend=7;
- if(IsKeyDown(theKeyMap, MAC_NUMPAD_8_KEY))whichend=8;
- if(IsKeyDown(theKeyMap, MAC_NUMPAD_9_KEY))whichend=9;
- if(IsKeyDown(theKeyMap, MAC_NUMPAD_0_KEY))whichend=0;
- participantfacing[whichdialogue][indialogue][whichend]=facing;
- }
- if(!IsKeyDown(theKeyMap, MAC_1_KEY)&&!IsKeyDown(theKeyMap, MAC_2_KEY)&&!IsKeyDown(theKeyMap, MAC_3_KEY)&&!IsKeyDown(theKeyMap, MAC_4_KEY)&&!IsKeyDown(theKeyMap, MAC_5_KEY)
- &&!IsKeyDown(theKeyMap, MAC_6_KEY)&&!IsKeyDown(theKeyMap, MAC_7_KEY)&&!IsKeyDown(theKeyMap, MAC_8_KEY)&&!IsKeyDown(theKeyMap, MAC_9_KEY)&&!IsKeyDown(theKeyMap, MAC_0_KEY)
- &&!IsKeyDown(theKeyMap, MAC_MINUS_KEY)){
- endkeydown=0;
- }
- if(indialogue>=numdialogueboxes[whichdialogue]){
- indialogue=-1;
- directing=0;
- cameramode=0;
- }
- }
- if(!directing){
- OPENAL_SetPaused(channels[whooshsound], true);
- viewer=dialoguecamera[whichdialogue][indialogue];
- if(viewer.y<terrain.getHeight(viewer.x,viewer.z)+.1){
- viewer.y=terrain.getHeight(viewer.x,viewer.z)+.1;
- }
- rotation=dialoguecamerarotation[whichdialogue][indialogue];
- rotation2=dialoguecamerarotation2[whichdialogue][indialogue];
- if(dialoguetime>0.5)
- if((!endkeydown&&(IsKeyDown(theKeyMap, MAC_1_KEY)||IsKeyDown(theKeyMap, MAC_2_KEY)||IsKeyDown(theKeyMap, MAC_3_KEY)||IsKeyDown(theKeyMap, MAC_4_KEY)||IsKeyDown(theKeyMap, MAC_5_KEY)
- ||IsKeyDown(theKeyMap, MAC_6_KEY)||IsKeyDown(theKeyMap, MAC_7_KEY)||IsKeyDown(theKeyMap, MAC_8_KEY)||IsKeyDown(theKeyMap, MAC_9_KEY)||IsKeyDown(theKeyMap, MAC_0_KEY)
- ||IsKeyDown(theKeyMap, MAC_MINUS_KEY)))||(IsKeyDown(theKeyMap, attackkey)&&!oldbuttondialogue)){
- indialogue++;
- endkeydown=1;
- if(indialogue<numdialogueboxes[whichdialogue]){
- if(dialogueboxsound[whichdialogue][indialogue]!=0){
- static float gLoc[3];
- static float vel[3];
- XYZ temppos;
- temppos=player[participantfocus[whichdialogue][indialogue]].coords;
- temppos=temppos-viewer;
- Normalise(&temppos);
- temppos+=viewer;
-
- gLoc[0]=temppos.x;
- gLoc[1]=temppos.y;
- gLoc[2]=temppos.z;vel[0]=0;
- vel[1]=0;
- vel[2]=0;
- int whichsoundplay;
- if(dialogueboxsound[whichdialogue][indialogue]==1)whichsoundplay=rabbitchitter;
- if(dialogueboxsound[whichdialogue][indialogue]==2)whichsoundplay=rabbitchitter2;
- if(dialogueboxsound[whichdialogue][indialogue]==3)whichsoundplay=rabbitpainsound;
- if(dialogueboxsound[whichdialogue][indialogue]==4)whichsoundplay=rabbitpain1sound;
- if(dialogueboxsound[whichdialogue][indialogue]==5)whichsoundplay=rabbitattacksound;
- if(dialogueboxsound[whichdialogue][indialogue]==6)whichsoundplay=rabbitattack2sound;
- if(dialogueboxsound[whichdialogue][indialogue]==7)whichsoundplay=rabbitattack3sound;
- if(dialogueboxsound[whichdialogue][indialogue]==8)whichsoundplay=rabbitattack4sound;
- if(dialogueboxsound[whichdialogue][indialogue]==9)whichsoundplay=growlsound;
- if(dialogueboxsound[whichdialogue][indialogue]==10)whichsoundplay=growl2sound;
- if(dialogueboxsound[whichdialogue][indialogue]==11)whichsoundplay=snarlsound;
- if(dialogueboxsound[whichdialogue][indialogue]==12)whichsoundplay=snarl2sound;
- if(dialogueboxsound[whichdialogue][indialogue]==13)whichsoundplay=barksound;
- if(dialogueboxsound[whichdialogue][indialogue]==14)whichsoundplay=bark2sound;
- if(dialogueboxsound[whichdialogue][indialogue]==15)whichsoundplay=bark3sound;
- if(dialogueboxsound[whichdialogue][indialogue]==16)whichsoundplay=barkgrowlsound;
- if(dialogueboxsound[whichdialogue][indialogue]==-1)whichsoundplay=fireendsound;
- if(dialogueboxsound[whichdialogue][indialogue]==-2)whichsoundplay=firestartsound;
- if(dialogueboxsound[whichdialogue][indialogue]==-3)whichsoundplay=consolesuccesssound;
- if(dialogueboxsound[whichdialogue][indialogue]==-4)whichsoundplay=consolefailsound;
- if(dialogueboxsound[whichdialogue][indialogue]==-6)whichsoundplay=alarmsound;
- if(dialogueboxsound[whichdialogue][indialogue]!=-5){
- PlaySoundEx( whichsoundplay, samp[whichsoundplay], NULL, true);
- OPENAL_3D_SetAttributes(channels[whichsoundplay], gLoc, vel);
- OPENAL_SetVolume(channels[whichsoundplay], 256);
- OPENAL_SetPaused(channels[whichsoundplay], false);
- }
- if(dialogueboxsound[whichdialogue][indialogue]==-5){
- hotspot[numhotspots]=player[0].coords;
- hotspotsize[numhotspots]=10;
- hotspottype[numhotspots]=-1;
-
- numhotspots++;
- }
- if(dialogueboxsound[whichdialogue][indialogue]==-6){
- hostile=1;
- }
-
- if(player[participantfocus[whichdialogue][indialogue]].dead){
- indialogue=-1;
- directing=0;
- cameramode=0;
- }
- }
- }
- }
- if(!IsKeyDown(theKeyMap, MAC_1_KEY)&&!IsKeyDown(theKeyMap, MAC_2_KEY)&&!IsKeyDown(theKeyMap, MAC_3_KEY)&&!IsKeyDown(theKeyMap, MAC_4_KEY)&&!IsKeyDown(theKeyMap, MAC_5_KEY)
- &&!IsKeyDown(theKeyMap, MAC_6_KEY)&&!IsKeyDown(theKeyMap, MAC_7_KEY)&&!IsKeyDown(theKeyMap, MAC_8_KEY)&&!IsKeyDown(theKeyMap, MAC_9_KEY)&&!IsKeyDown(theKeyMap, MAC_0_KEY)
- &&!IsKeyDown(theKeyMap, MAC_MINUS_KEY)){
- endkeydown=0;
- }
- if(indialogue>=numdialogueboxes[whichdialogue]){
- indialogue=-1;
- directing=0;
- cameramode=0;
- if(dialoguetype[whichdialogue]>19&&dialoguetype[whichdialogue]<30){
- hostile=1;
- }
- if(dialoguetype[whichdialogue]>29&&dialoguetype[whichdialogue]<40){
- windialogue=1;
- }
- if(dialoguetype[whichdialogue]>49&&dialoguetype[whichdialogue]<60){
- hostile=1;
- for(i=1;i<numplayers;i++){
- player[i].aitype = attacktypecutoff;
- }
- }
- }
- }
- }
-
- if(!IsKeyDown(theKeyMap, attackkey))oldbuttondialogue=0;
- else oldbuttondialogue=1;
-
- static float keyrefreshdelay=0,bigrefreshdelay=0;
-
- //Net updates
-
- /*keyrefreshdelay-=multiplier;
- bigrefreshdelay-=multiplier;
-
- if(keyrefreshdelay<=0){
- static int concat[4];
-
- concat[0]=player[0].forwardkeydown;
- concat[0]=concat[0]*2+player[0].forwardstogglekeydown;
- concat[0]=concat[0]*2+player[0].rightkeydown;
- concat[0]=concat[0]*2+player[0].leftkeydown;
- concat[0]=concat[0]*2+player[0].backkeydown;
- concat[0]=concat[0]*2+player[0].jumpkeydown;
- concat[0]=concat[0]*2+player[0].jumptogglekeydown;
- concat[0]=concat[0]*2+player[0].crouchkeydown;
-
- concat[1]=player[0].crouchtogglekeydown;
- concat[1]=concat[1]*2+player[0].drawkeydown;
- concat[1]=concat[1]*2+player[0].drawtogglekeydown;
- concat[1]=concat[1]*2+player[0].throwkeydown;
- concat[1]=concat[1]*2+player[0].throwtogglekeydown;
- concat[1]=concat[1]*2+player[0].attackkeydown;
-
- //concat[2]=(char)((int)(rotation/2)%180);
-
- //concat[3]=(char)((int)(rotation2/2)%180);
-
- chatname[0]=concat[0]-128;
- chatname[1]=concat[1]-128;
- //chatname[2]=concat[2]-128;
- //chatname[3]=concat[3]-128;
- int temppoint=2;
- memcpy(chatname+temppoint,&rotation,sizeof(float));
- temppoint+=sizeof(float);
- memcpy(chatname+temppoint,&rotation2,sizeof(float));
- temppoint+=sizeof(float);
-
- chatname[temppoint]='\0';
-
- //if(!ishost)NetworkSendPlayerMessage( chatname, kMessageType_Keys );
- //if(ishost)NetworkSendPlayerRelayMessage( chatname, kMessageType_Keys );
- //keyrefreshdelay=.01;
- keyrefreshdelay=.03;
- }
-
- if(bigrefreshdelay<=0){
- for(i=0;i<1;i++){
- /*int temppoint=0;
- memcpy(chatname+temppoint,&i,sizeof(int));
- temppoint+=sizeof(int);
- memcpy(chatname+temppoint,&player[i].coords.x,sizeof(float));
- temppoint+=sizeof(float);
- memcpy(chatname+temppoint,&player[i].coords.y,sizeof(float));
- temppoint+=sizeof(float);
- memcpy(chatname+temppoint,&player[i].coords.z,sizeof(float));
- temppoint+=sizeof(float);
- memcpy(chatname+temppoint,&player[i].damage,sizeof(float));
- temppoint+=sizeof(float);
- memcpy(chatname+temppoint,&player[i].target,sizeof(float));
- temppoint+=sizeof(float);
- memcpy(chatname+temppoint,&player[i].targetanimation,sizeof(int));
- temppoint+=sizeof(int);
- memcpy(chatname+temppoint,&player[i].currentanimation,sizeof(int));
- temppoint+=sizeof(int);
- memcpy(chatname+temppoint,&player[i].velocity.x,sizeof(float));
- temppoint+=sizeof(float);
- memcpy(chatname+temppoint,&player[i].velocity.y,sizeof(float));
- temppoint+=sizeof(float);
- memcpy(chatname+temppoint,&player[i].velocity.z,sizeof(float));
- temppoint+=sizeof(float);
- memcpy(chatname+temppoint,&player[i].targetframe,sizeof(int));
- temppoint+=sizeof(int);
- memcpy(chatname+temppoint,&player[i].currentframe,sizeof(int));
- temppoint+=sizeof(int);
- memcpy(chatname+temppoint,&player[i].rotation,sizeof(float));
- temppoint+=sizeof(float);
- memcpy(chatname+temppoint,&player[i].targetrotation,sizeof(float));
- temppoint+=sizeof(float);
- memcpy(chatname+temppoint,&player[i].bloodloss,sizeof(float));
- temppoint+=sizeof(float);
- memcpy(chatname+temppoint,&player[i].weaponactive,sizeof(int));
- temppoint+=sizeof(int);
- memcpy(chatname+temppoint,&player[i].num_weapons,sizeof(int));
- temppoint+=sizeof(int);
- memcpy(chatname+temppoint,&player[i].weaponids[0],sizeof(int));
- temppoint+=sizeof(int);
- memcpy(chatname+temppoint,&player[i].weaponids[1],sizeof(int));
- temppoint+=sizeof(int);
- memcpy(chatname+temppoint,&player[i].weaponids[2],sizeof(int));
- temppoint+=sizeof(int);
- memcpy(chatname+temppoint,&player[i].weaponids[3],sizeof(int));
- temppoint+=sizeof(int);
- chatname[temppoint]='\0';
-
- sprintf (chatname, "%d %f %f %f %f %f %d %d %f %f %f %d %d %f %f %f",i,player[i].coords.x,player[i].coords.y,player[i].coords.z,player[i].damage,player[i].target, player[i].targetanimation, player[i].currentanimation, player[i].velocity.x, player[i].velocity.y, player[i].velocity.z, player[i].targetframe, player[i].currentframe, player[i].rotation, player[i].targetrotation);
- //if(ishost)NetworkSendPlayerRelayMessage( chatname, kMessageType_PlayerState );
- //else NetworkSendPlayerMessage( chatname, kMessageType_PlayerState );
-
- sprintf (chatname, "%d %f %d %d %d %d %d %d %d %d %f",i,player[i].bloodloss, player[i].weaponactive, player[i].num_weapons, player[i].weaponids[0], player[i].weaponids[1], player[i].weaponids[2], player[i].weaponids[3],player[i].dead,player[i].skeleton.free,player[i].permanentdamage);
-
- //if(ishost)NetworkSendPlayerRelayMessage( chatname, kMessageType_PlayerStateMisc );
- //else NetworkSendPlayerMessage( chatname, kMessageType_PlayerStateMisc );
- }
- //bigrefreshdelay=.02;
- bigrefreshdelay=.1;
- }
- }*/
-
- if(!player[0].jumpkeydown){
- player[0].jumptogglekeydown=0;
- }
- if(player[0].jumpkeydown&&player[0].targetanimation!=jumpupanim&&player[0].targetanimation!=jumpdownanim&&!player[0].isFlip())player[0].jumptogglekeydown=1;
-
-
- dialoguetime+=multiplier;
- skybox.cloudmove+=multiplier;
- hawkrotation+=multiplier*25;
- realhawkcoords=0;
- realhawkcoords.x=25;
- realhawkcoords=DoRotation(realhawkcoords,0,hawkrotation,0)+hawkcoords;
- hawkcalldelay-=multiplier/2;
-
- if(hawkcalldelay<=0)
- {
- static float gLoc[3];
- static float vel[3];
- gLoc[0]=realhawkcoords.x;
- gLoc[1]=realhawkcoords.y;
- gLoc[2]=realhawkcoords.z;
- vel[0]=0;
- vel[1]=0;
- vel[2]=0;
- PlaySoundEx( hawksound, samp[hawksound], NULL, true);
- OPENAL_3D_SetAttributes(channels[hawksound], gLoc, vel);
- OPENAL_SetVolume(channels[hawksound], 128);
- OPENAL_SetPaused(channels[hawksound], false);
-
- hawkcalldelay=16+abs(Random()%8);
- }
- static float temptexdetail;
-
-
- if(IsKeyDown(theKeyMap, MAC_H_KEY)&&debugmode){
- player[0].damagetolerance=200000;
- player[0].damage=0;
- player[0].burnt=0;
- player[0].permanentdamage=0;
- player[0].superpermanentdamage=0;
- /*
- int whichchar;
- whichchar = abs(Random()%7);
- registrationname[whichchar]+=1;
- */
- }
-
- if(IsKeyDown(theKeyMap, MAC_J_KEY)&&!envtogglekeydown&&debugmode){
- environment++;
- if(environment>2)environment=0;
- Setenvironment(environment);
-
- envtogglekeydown=1;
- }
-
-
- if(!IsKeyDown(theKeyMap, MAC_J_KEY)){
- envtogglekeydown=0;
- }
-
- if(IsKeyDown(theKeyMap, MAC_C_KEY)&&!cameratogglekeydown&&debugmode){
- cameramode=1-cameramode;
- cameratogglekeydown=1;
- }
-
- if(!IsKeyDown(theKeyMap, MAC_C_KEY)){
- cameratogglekeydown=0;
- }
-
- if(IsKeyDown(theKeyMap, MAC_X_KEY)&&!IsKeyDown(theKeyMap, MAC_SHIFT_KEY)&&!detailtogglekeydown&&debugmode){
- if(player[0].num_weapons>0){
- if(weapons.type[player[0].weaponids[0]]==sword)weapons.type[player[0].weaponids[0]]=staff;
- else if(weapons.type[player[0].weaponids[0]]==staff)weapons.type[player[0].weaponids[0]]=knife;
- else weapons.type[player[0].weaponids[0]]=sword;
- if(weapons.type[player[0].weaponids[0]]==sword){
- weapons.mass[player[0].weaponids[0]]=1.5;
- weapons.tipmass[player[0].weaponids[0]]=1;
- weapons.length[player[0].weaponids[0]]=.8;
- }
- if(weapons.type[player[0].weaponids[0]]==staff){
- weapons.mass[player[0].weaponids[0]]=2;
- weapons.tipmass[player[0].weaponids[0]]=1;
- weapons.length[player[0].weaponids[0]]=1.5;
- }
-
- if(weapons.type[player[0].weaponids[0]]==knife){
- weapons.mass[player[0].weaponids[0]]=1;
- weapons.tipmass[player[0].weaponids[0]]=1.2;
- weapons.length[player[0].weaponids[0]]=.25;
- }
- }
-
- /*for(i=0;i<objects.numobjects;i++){
- if(objects.type[i]==treeleavestype){
- for(j=0;j<objects.numobjects;j++){
- if(objects.type[j]==treetrunktype)
- if(findDistancefast(&objects.position[i],&objects.position[j])<.5)
- objects.scale[i]=objects.scale[j];
- }
- }
- }*/
- detailtogglekeydown=1;
- }
-
- if(IsKeyDown(theKeyMap, MAC_X_KEY)&&IsKeyDown(theKeyMap, MAC_SHIFT_KEY)&&!detailtogglekeydown&&debugmode){
- int closest=-1;
- float closestdist=-1;
- float distance;
- if(numplayers>1)
- for(i=1;i<numplayers;i++){
- distance=findDistancefast(&player[i].coords,&player[0].coords);
- if(closestdist==-1||distance<closestdist){
- closestdist=distance;
- closest=i;
- }
- }
- if(closest!=-1){
- if(player[closest].num_weapons)
- {
- if(weapons.type[player[closest].weaponids[0]]==sword)weapons.type[player[closest].weaponids[0]]=staff;
- else if(weapons.type[player[closest].weaponids[0]]==staff)weapons.type[player[closest].weaponids[0]]=knife;
- else weapons.type[player[closest].weaponids[0]]=sword;
- if(weapons.type[player[closest].weaponids[0]]==sword){
- weapons.mass[player[closest].weaponids[0]]=1.5;
- weapons.tipmass[player[closest].weaponids[0]]=1;
- weapons.length[player[closest].weaponids[0]]=.8;
- }
- if(weapons.type[player[0].weaponids[0]]==staff){
- weapons.mass[player[0].weaponids[0]]=2;
- weapons.tipmass[player[0].weaponids[0]]=1;
- weapons.length[player[0].weaponids[0]]=1.5;
- }
- if(weapons.type[player[closest].weaponids[0]]==knife){
- weapons.mass[player[closest].weaponids[0]]=1;
- weapons.tipmass[player[closest].weaponids[0]]=1.2;
- weapons.length[player[closest].weaponids[0]]=.25;
- }
- }
- if(!player[closest].num_weapons)
- {
- player[closest].weaponids[0]=weapons.numweapons;
- weapons.owner[weapons.numweapons]=closest;
- weapons.type[weapons.numweapons]=knife;
- weapons.damage[weapons.numweapons]=0;
- weapons.numweapons++;
- player[closest].num_weapons=1;
- if(weapons.type[player[closest].weaponids[0]]==sword){
- weapons.mass[player[closest].weaponids[0]]=1.5;
- weapons.tipmass[player[closest].weaponids[0]]=1;
- weapons.length[player[closest].weaponids[0]]=.8;
- }
- if(weapons.type[player[closest].weaponids[0]]==knife){
- weapons.mass[player[closest].weaponids[0]]=1;
- weapons.tipmass[player[closest].weaponids[0]]=1.2;
- weapons.length[player[closest].weaponids[0]]=.25;
- }
- }
- }
- detailtogglekeydown=1;
- }
-
- if(IsKeyDown(theKeyMap, MAC_U_KEY)&&debugmode){
- int closest=-1;
- float closestdist=-1;
- float distance;
- if(numplayers>1)
- for(i=1;i<numplayers;i++){
- distance=findDistancefast(&player[i].coords,&player[0].coords);
- if(closestdist==-1||distance<closestdist){
- closestdist=distance;
- closest=i;
- }
- }
-
- player[closest].rotation+=multiplier*50;
- player[closest].targetrotation=player[closest].rotation;
- }