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;
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;
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);
fireSound(firestartsound);
- Loadlevel(campaignmapname[levelorder[accountactive->getCampaignChoicesMade()]]);
+ Loadlevel(campaignlevels[accountactive->getCampaignChoicesMade()].mapname.c_str());
fireSound();
// 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);
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;