X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FGameTick.cpp;h=3bf55e48d56c543d5caeeb001923e4957ac0fe9b;hb=9ecb4e37407173333b466b42276a1764589505f0;hp=ce260d68a069fbebb7436a335fd38150b8ec7cc7;hpb=8a1a91c0a10a37799dc95d423f9db8dc5ff7b965;p=lugaru.git diff --git a/Source/GameTick.cpp b/Source/GameTick.cpp index ce260d6..3bf55e4 100644 --- a/Source/GameTick.cpp +++ b/Source/GameTick.cpp @@ -5601,7 +5601,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 +5611,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; @@ -5870,13 +5871,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 +6886,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 +6918,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 +7699,7 @@ void Game::TickOnceAfter(){ fireSound(firestartsound); - Loadlevel(campaignmapname[levelorder[accountactive->getCampaignChoicesMade()]]); + Loadlevel(campaignlevels[accountactive->getCampaignChoicesMade()].mapname.c_str()); fireSound(); @@ -7729,11 +7733,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 +7755,10 @@ void Game::TickOnceAfter(){ if(!firstload) LoadStuff(); whichchoice=0; + actuallevel=campaignlevels[actuallevel].nextlevel.front(); visibleloading=1; stillloading=1; - Loadlevel(campaignmapname[campaignchoicewhich[0]]); + Loadlevel(campaignlevels[actuallevel].mapname.c_str()); campaign=1; mainmenu=0; gameon=1;