X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FGameTick.cpp;h=047c5f133feb8077a0d790bb01e0c808740afb09;hb=72621d52ae69fa4ecb4329437810d71860ae3ebc;hp=ce260d68a069fbebb7436a335fd38150b8ec7cc7;hpb=8a1a91c0a10a37799dc95d423f9db8dc5ff7b965;p=lugaru.git diff --git a/Source/GameTick.cpp b/Source/GameTick.cpp index ce260d6..047c5f1 100644 --- a/Source/GameTick.cpp +++ b/Source/GameTick.cpp @@ -225,7 +225,7 @@ inline Joint& playerJoint(int playerid, int bodypart){ inline Joint& playerJoint(Person* pplayer, int bodypart){ return pplayer->skeleton.joints[pplayer->skeleton.jointlabels[bodypart]]; } -inline float sq(float n){ return n*n; } +inline float sq(float n) { return n*n; } inline float stepTowardf(float from, float to, float by){ if(fabs(from-to).8&&!player[i].jumpkeydown&&player[i].collided<.8) + if(player[i].avoidcollided>.8 && !player[i].jumpkeydown && player[i].collided<.8) player[i].targetrotation+=90*(player[i].whichdirection*2-1); if(player[i].collided<1||player[i].targetanimation!=jumpupanim) @@ -5141,7 +5145,7 @@ void Game::doAI(int i){ weapons[i].velocity.x==0&& weapons[i].velocity.z==0&& weapons[i].velocity.y==0){ - if(findDistancefast(&player[i].coords,&weapons[k].position)<16){ + if(findDistancefast(&player[i].coords,&weapons[k].position)<16) { player[i].wentforweapon++; player[i].lastchecktime=6; player[i].aitype=getweapontype; @@ -5170,7 +5174,7 @@ void Game::doAI(int i){ j=checkcollide(test2,test,player[i].laststanding); if(j==-1) j=checkcollide(test2,test); - if(j==-1){ + if(j==-1) { player[i].velocity=0; setAnimation(i,player[i].getStop()); player[i].targetrotation+=180; @@ -5183,7 +5187,7 @@ void Game::doAI(int i){ player[i].lastpathfindpoint2=-1; player[i].lastpathfindpoint3=-1; player[i].lastpathfindpoint4=-1; - }else + } else player[i].laststanding=j; } //lose sight of player in the air (?) @@ -5601,7 +5605,7 @@ void Game::MenuTick(){ case 5: fireSound(); flash(); - if((selected-NB_CAMPAIGN_MENU_ITEM-1 >= accountactive->getCampaignChoicesMade())) { + if((selected-NB_CAMPAIGN_MENU_ITEM >= accountactive->getCampaignChoicesMade())) { startbonustotal=0; loading=2; @@ -5611,10 +5615,11 @@ void Game::MenuTick(){ TickOnceAfter(); else LoadStuff(); - whichchoice=selected-NB_CAMPAIGN_MENU_ITEM-1-accountactive->getCampaignChoicesMade(); + whichchoice=selected-NB_CAMPAIGN_MENU_ITEM-accountactive->getCampaignChoicesMade(); + actuallevel=(accountactive->getCampaignChoicesMade()>0?campaignlevels[accountactive->getCampaignChoicesMade()-1].nextlevel[whichchoice]:0); visibleloading=1; stillloading=1; - Loadlevel(campaignmapname[campaignchoicewhich[whichchoice]]); + Loadlevel(campaignlevels[actuallevel].mapname.c_str()); campaign=1; mainmenu=0; gameon=1; @@ -5629,9 +5634,9 @@ void Game::MenuTick(){ targetlevel=-1; if(firstload) { TickOnceAfter(); - Loadlevel(-1); } else LoadStuff(); + Loadlevel(-1); mainmenu=0; gameon=1; @@ -5661,9 +5666,6 @@ void Game::MenuTick(){ c=campaigns.begin(); accountactive->setCurrentCampaign(*c); } - if(Mainmenuitems[7]) - glDeleteTextures(1,&Mainmenuitems[7]); // we delete the world texture so load campaign will reload it - Mainmenuitems[7] = 0; LoadCampaign(); break; } @@ -5715,9 +5717,11 @@ void Game::MenuTick(){ loading=2; loadtime=0; targetlevel=selected; - if(firstload)TickOnceAfter(); - if(!firstload)LoadStuff(); - else Loadlevel(selected); + if(firstload) + TickOnceAfter(); + else + LoadStuff(); + Loadlevel(selected); campaign=0; mainmenu=0; @@ -5870,13 +5874,13 @@ void Game::Tick(){ if(mainmenu&&endgame==1) mainmenu=10; //go to level select after completing a campaign level - if(campaign&&winfreeze&&mainmenu==0&&campaignchoosenext[campaignchoicewhich[whichchoice]]==1) { + if(campaign&&winfreeze&&mainmenu==0&&campaignlevels[actuallevel].choosenext==1) { mainmenu=5; gameon=0; winfreeze=0; fireSound(); flash(); - if(musictoggle){ + if(musictoggle) { OPENAL_SetFrequency(OPENAL_ALL, 0.001); emit_stream_np(stream_menutheme); pause_sound(leveltheme); @@ -6885,18 +6889,18 @@ void Game::Tick(){ } //draw weapon - if(i==0||!player[0].dead||player[i].weaponactive!=-1) + if(i==0||!player[0].dead||player[i].weaponactive!=-1) { if(player[i].drawkeydown&&!player[i].drawtogglekeydown|| player[i].num_weapons==2&& player[i].weaponactive==-1&& player[i].isIdle()|| player[0].dead&& player[i].weaponactive!=-1&& - i!=0){ - bool isgood=1; + i!=0) { + bool isgood=true; if(player[i].weaponactive!=-1) if(weapons[player[i].weaponids[player[i].weaponactive]].getType()==staff) - isgood=0; + isgood=false; if(isgood&&player[i].creature!=wolftype){ if(player[i].isIdle()&&player[i].num_weapons&&weapons[player[i].weaponids[0]].getType()==knife){ setAnimation(i,drawrightanim); @@ -6917,33 +6921,36 @@ void Game::Tick(){ } } } - //clean weapon - if(player[i].isCrouch()&& - weapons[player[i].weaponids[player[i].weaponactive]].bloody&& - bloodtoggle&& - player[i].onterrain&& - player[i].num_weapons&& - player[i].weaponactive!=-1&& - player[i].attackkeydown&& - bloodtoggle&&musictype!=stream_fighttheme) { - if(weapons[player[i].weaponids[player[i].weaponactive]].getType()==knife) - setAnimation(i,crouchstabanim); - if(weapons[player[i].weaponids[player[i].weaponactive]].getType()==sword) - setAnimation(i,swordgroundstabanim); - player[i].hasvictim=0; } + + //clean weapon + if(player[i].weaponactive!=-1) { + if (player[i].isCrouch()&& + weapons[player[i].weaponids[player[i].weaponactive]].bloody&& + bloodtoggle&& + player[i].onterrain&& + player[i].num_weapons&& + player[i].attackkeydown&& + musictype!=stream_fighttheme) { + if(weapons[player[i].weaponids[player[i].weaponactive]].getType()==knife) + setAnimation(i,crouchstabanim); + if(weapons[player[i].weaponids[player[i].weaponactive]].getType()==sword) + setAnimation(i,swordgroundstabanim); + player[i].hasvictim=0; + } + } if(!player[i].drawkeydown) player[i].drawtogglekeydown=0; XYZ absflatfacing; - if(i==0){ + if(i==0) { absflatfacing=0; absflatfacing.z=-1; absflatfacing=DoRotation(absflatfacing,0,-rotation,0); - } - else absflatfacing=flatfacing; + } else + absflatfacing=flatfacing; if(indialogue!=-1){ player[i].forwardkeydown=0; @@ -7695,7 +7702,7 @@ void Game::TickOnceAfter(){ fireSound(firestartsound); - Loadlevel(campaignmapname[levelorder[accountactive->getCampaignChoicesMade()]]); + Loadlevel(campaignlevels[accountactive->getCampaignChoicesMade()].mapname.c_str()); fireSound(); @@ -7729,11 +7736,11 @@ void Game::TickOnceAfter(){ // 0 = load next level // 1 = go back to level select screen // 2 = stealthload next level - if(mainmenu==0&&winfreeze&&(campaignchoosenext[campaignchoicewhich[whichchoice]])==1){ - if(campaignnumnext[campaignchoicewhich[whichchoice]]==0) + if(mainmenu==0&&winfreeze&&(campaignlevels[actuallevel].choosenext)==1) { + if(campaignlevels[actuallevel].nextlevel.empty()) endgame=1; } else if(mainmenu==0&&winfreeze) { - stealthloading = (campaignchoosenext[campaignchoicewhich[whichchoice]]==2); + stealthloading = (campaignlevels[actuallevel].choosenext==2); if(!stealthloading){ fireSound(firestartsound); @@ -7751,9 +7758,12 @@ void Game::TickOnceAfter(){ if(!firstload) LoadStuff(); whichchoice=0; + cout << "from " << campaignlevels[actuallevel].mapname.c_str() << "(" << actuallevel << ")" << endl; + actuallevel=campaignlevels[actuallevel].nextlevel.front(); + cout << "to " << campaignlevels[actuallevel].mapname.c_str() << "(" << actuallevel << ")" << endl; visibleloading=1; stillloading=1; - Loadlevel(campaignmapname[campaignchoicewhich[0]]); + Loadlevel(campaignlevels[actuallevel].mapname.c_str()); campaign=1; mainmenu=0; gameon=1;