X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FGameTick.cpp;h=3bf55e48d56c543d5caeeb001923e4957ac0fe9b;hb=9842b9043399f44a19c58d15e297d2a9dfadd272;hp=5b635c75db4e9abd4ae531a1d1ef4363ab60a784;hpb=3b278cb284afd5c1538bbd8564f714a576469311;p=lugaru.git diff --git a/Source/GameTick.cpp b/Source/GameTick.cpp index 5b635c7..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); @@ -7698,7 +7699,7 @@ void Game::TickOnceAfter(){ fireSound(firestartsound); - Loadlevel(campaignmapname[levelorder[accountactive->getCampaignChoicesMade()]]); + Loadlevel(campaignlevels[accountactive->getCampaignChoicesMade()].mapname.c_str()); fireSound(); @@ -7732,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); @@ -7754,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;