]> git.jsancho.org Git - lugaru.git/blobdiff - Source/GameTick.cpp
removed unused menu animation code
[lugaru.git] / Source / GameTick.cpp
index f4c3f6023c1ca303b93fa53b86de258f6c66145a..edc196e511fe5e456afc11188559afc23efade8c 100644 (file)
@@ -1130,8 +1130,6 @@ void Screenshot   (void)
        save_image(temp);
 }
 
-
-
 void Game::SetUpLighting(){
        if(environment==snowyenvironment)
         light.setColors(.65,.65,.7,.4,.4,.44);
@@ -1263,7 +1261,7 @@ int Game::checkcollide(XYZ startpoint,XYZ endpoint,int what){
        return -1;
 }
 
-void   Game::Setenvironment(int which)
+void Game::Setenvironment(int which)
 {
        LOGFUNC;
 
@@ -1317,8 +1315,7 @@ void      Game::Setenvironment(int which)
 
 
                texdetail=temptexdetail;
-       }
-       if(environment==desertenvironment){
+       } else if(environment==desertenvironment){
                windvector=0;
                windvector.z=2;
                LoadTexture(":Data:Textures:deserttree.png",&objects.treetextureptr,0,1);
@@ -1356,8 +1353,7 @@ void      Game::Setenvironment(int which)
 
 
                texdetail=temptexdetail;
-       }
-       if(environment==grassyenvironment){
+       } else if(environment==grassyenvironment){
                windvector=0;
                windvector.z=2;
                LoadTexture(":Data:Textures:tree.png",&objects.treetextureptr,0,1);
@@ -1401,7 +1397,6 @@ void      Game::Setenvironment(int which)
        texdetail=temptexdetail;
 }
 
-
 void Game::Loadlevel(int which){
        stealthloading=0;
        whichlevel=which;
@@ -2127,8 +2122,6 @@ void Game::Loadlevel(const char *name){
        visibleloading=0;
 }
 
-
-
 /*
 Values of mainmenu :
 1 Main menu
@@ -2147,384 +2140,337 @@ Values of mainmenu :
     
 void Game::MenuTick(){
     //menu buttons
-    switch(mainmenu){
-        case 1:
-        case 2:
-            if(Input::MouseClicked()&&selected==1){
-                               if(gameon) {
-                    //resume
-                    mainmenu=0;
-                    pause_sound(stream_menutheme);
-                    resume_stream(leveltheme);
-                               } else {
-                    fireSound(firestartsound);
-                    flash();
-                    //new game
-                    mainmenu=(accountactive?5:7);
-                    selected=-1;
-                }
-            }
-
-            if(Input::MouseClicked()&&selected==2){
-                fireSound();
-                flash();
-                //options
-                mainmenu=3;
-                if(newdetail>2) newdetail=detail;
-                if(newdetail<0) newdetail=detail;
-                if(newscreenwidth>3000) newscreenwidth=screenwidth;
-                if(newscreenwidth<0) newscreenwidth=screenwidth;
-                if(newscreenheight>3000) newscreenheight=screenheight;
-                if(newscreenheight<0) newscreenheight=screenheight;
-            }
-
-            if(Input::MouseClicked()&&selected==3){
-                fireSound();
-                flash();
-                if(gameon){
-                    //end game
-                    gameon=0;
-                    mainmenu=1;
-                }else{
-                    //quit
-                    tryquit=1;
-                    pause_sound(stream_menutheme);
-                }
-            }
-            break;
-        case 3:
-            if(Input::MouseClicked()){
-
-                if(selected!=-1)
-                    fireSound();
-
-                switch(selected){
-                    case 0: {
-                        extern SDL_Rect **resolutions;
-                        bool isCustomResolution = true;
-                        bool found = false;
-                        for(int i = 0; (!found) && (resolutions[i]); i++){
-                            if((resolutions[i]->w == screenwidth) && (resolutions[i]->h == screenwidth))
-                                isCustomResolution = false;
-
-                            if((resolutions[i]->w == newscreenwidth) && (resolutions[i]->h == newscreenheight)){
-                                i++;
-                                if(resolutions[i] != NULL){
-                                    newscreenwidth = (int) resolutions[i]->w;
-                                    newscreenheight = (int) resolutions[i]->h;
-                                }else if(isCustomResolution){
-                                    if((screenwidth == newscreenwidth) && (screenheight == newscreenheight)){
-                                        newscreenwidth = (int) resolutions[0]->w;
-                                        newscreenheight = (int) resolutions[0]->h;
-                                    }else{
-                                        newscreenwidth = screenwidth;
-                                        newscreenheight = screenheight;
-                                    }
-                                }else{
-                                    newscreenwidth = (int) resolutions[0]->w;
-                                    newscreenheight = (int) resolutions[0]->h;
-                                }
-                                found = true;
-                            }
-                        }
+    
+    // some specific case where we do something even if the left mouse button is not pressed.
+       if((mainmenu==5) && (endgame==2)) {
+               accountactive->endGame();
+               endgame=0;
+       }
+       if(mainmenu==10)
+               endgame=2;
+       if( (mainmenu==18) && Input::isKeyPressed(MOUSEBUTTON2) && (selected==1) )
+               stereoseparation-=0.001;
+               
+    if(Input::MouseClicked() && (selected >= 0)) { // handling of the left mouse clic in menus
+               switch(mainmenu) {
+                       case 1:
+                       case 2:
+                               switch(selected) {
+                                       case 1:
+                                               if(gameon) { //resume
+                                                       mainmenu=0;
+                                                       pause_sound(stream_menutheme);
+                                                       resume_stream(leveltheme);
+                                               } else { //new game
+                                                       fireSound(firestartsound);
+                                                       flash();
+                                                       mainmenu=(accountactive?5:7);
+                                                       selected=-1;
+                                               }
+                                               break;
+                                       case 2: //options
+                                               fireSound();
+                                               flash();
+                                               mainmenu=3;
+                                               if(newdetail>2) newdetail=detail;
+                                               if(newdetail<0) newdetail=detail;
+                                               if(newscreenwidth>3000) newscreenwidth=screenwidth;
+                                               if(newscreenwidth<0) newscreenwidth=screenwidth;
+                                               if(newscreenheight>3000) newscreenheight=screenheight;
+                                               if(newscreenheight<0) newscreenheight=screenheight;
+                                               break;
+                                       case 3:
+                                               fireSound();
+                                               flash();
+                                               if(gameon){ //end game
+                                                       gameon=0;
+                                                       mainmenu=1;
+                                               } else { //quit
+                                                       tryquit=1;
+                                                       pause_sound(stream_menutheme);
+                                               }
+                                               break;
+                               }
+                               break;
+                       case 3:
+                               fireSound();
+                               bool isCustomResolution,found;
+                               switch(selected){
+                                       case 0:
+                                               extern SDL_Rect **resolutions;
+                                               isCustomResolution = true;
+                                               found = false;
+                                               for(int i = 0; (!found) && (resolutions[i]); i++) {
+                                                       if((resolutions[i]->w == screenwidth) && (resolutions[i]->h == screenwidth))
+                                                               isCustomResolution = false;
+
+                                                       if((resolutions[i]->w == newscreenwidth) && (resolutions[i]->h == newscreenheight)) {
+                                                               i++;
+                                                               if(resolutions[i] != NULL) {
+                                                                       newscreenwidth = (int) resolutions[i]->w;
+                                                                       newscreenheight = (int) resolutions[i]->h;
+                                                               } else if(isCustomResolution){
+                                                                       if((screenwidth == newscreenwidth) && (screenheight == newscreenheight)) {
+                                                                               newscreenwidth = (int) resolutions[0]->w;
+                                                                               newscreenheight = (int) resolutions[0]->h;
+                                                                       } else {
+                                                                               newscreenwidth = screenwidth;
+                                                                               newscreenheight = screenheight;
+                                                                       }
+                                                               } else {
+                                                                       newscreenwidth = (int) resolutions[0]->w;
+                                                                       newscreenheight = (int) resolutions[0]->h;
+                                                               }
+                                                               found = true;
+                                                       }
+                                               }
 
-                        if(!found){
-                            newscreenwidth = (int) resolutions[0]->w;
-                            newscreenheight = (int) resolutions[0]->h;
-                        }
-                        } break;
-                    case 1:
-                        newdetail++;
-                        if(newdetail>2)newdetail=0;
-                        break;
-                    case 2:
-                        bloodtoggle++;
-                        if(bloodtoggle>2)bloodtoggle=0;
-                        break;
-                    case 3:
-                        difficulty++;
-                        if(difficulty>2)difficulty=0;
-                        break;
-                    case 4:
-                        ismotionblur=1-ismotionblur;
-                        break;
-                    case 5:
-                        decals=1-decals;
-                        break;
-                    case 6:
-                        musictoggle=1-musictoggle;
-
-                        if(!musictoggle){
-                            pause_sound(leveltheme);
-                            pause_sound(stream_fighttheme);
-                            pause_sound(stream_menutheme);
-
-                            for(int i=0;i<4;i++){
-                                oldmusicvolume[i]=0;
-                                musicvolume[i]=0;
-                            }
-                        }
+                                               if(!found) {
+                                                       newscreenwidth = (int) resolutions[0]->w;
+                                                       newscreenheight = (int) resolutions[0]->h;
+                                               }
+                                               break;
+                                       case 1:
+                                               newdetail++;
+                                               if(newdetail>2) newdetail=0;
+                                               break;
+                                       case 2:
+                                               bloodtoggle++;
+                                               if(bloodtoggle>2) bloodtoggle=0;
+                                               break;
+                                       case 3:
+                                               difficulty++;
+                                               if(difficulty>2) difficulty=0;
+                                               break;
+                                       case 4:
+                                               ismotionblur = !ismotionblur;
+                                               break;
+                                       case 5:
+                                               decals = !decals;
+                                               break;
+                                       case 6:
+                                               musictoggle = !musictoggle;
+
+                                               if(musictoggle) {
+                                                 emit_stream_np(stream_menutheme);
+                                               } else {
+                                                       pause_sound(leveltheme);
+                                                       pause_sound(stream_fighttheme);
+                                                       pause_sound(stream_menutheme);
+
+                                                       for(int i=0;i<4;i++){
+                                                               oldmusicvolume[i]=0;
+                                                               musicvolume[i]=0;
+                                                       }
+                                               }
 
-                        if(musictoggle)
-                          emit_stream_np(stream_menutheme);
-                        break;
-                    case 7:
-                        flash();
-                        //options
-                        mainmenu=4;
-                        selected=-1;
-                        keyselect=-1;
-                        break;
-                    case 8:
-                        flash();
+                                               break;
+                                       case 7: // controls
+                                               flash();
+                                               mainmenu=4;
+                                               selected=-1;
+                                               keyselect=-1;
+                                               break;
+                                       case 8:
+                                               flash();
+                                               
+                                               SaveSettings(*this);
+                                               mainmenu=gameon?2:1;
+                                               break;
+                                       case 9:
+                                               invertmouse = !invertmouse;
+                                               break;
+                                       case 10:
+                                               usermousesensitivity+=.2;
+                                               if(usermousesensitivity>2) usermousesensitivity=.2;
+                                               break;
+                                       case 11:
+                                               volume+=.1f;
+                                               if(volume>1.0001f) volume=0;
+                                               OPENAL_SetSFXMasterVolume((int)(volume*255));
+                                               break;
+                                       case 12:
+                                               flash();
+                                               
+                                               newstereomode = stereomode;
+                                               mainmenu=18;
+                                               keyselect=-1;
+                                               break;
+                                       case 13:
+                                               showdamagebar = !showdamagebar;
+                                               break;
+                               }
+                               break;
+                       case 4:
+                               if(!waiting) {
+                                       fireSound();
+                                       if(selected<9 && keyselect==-1)
+                                               keyselect=selected;
+                                       if(keyselect!=-1)
+                                               setKeySelected();
+                                       if(selected==9){
+                                               flash();
 
-                        if(newdetail>2)newdetail=detail;
-                        if(newdetail<0)newdetail=detail;
-                        if(newscreenwidth<0)newscreenwidth=screenwidth;
-                        if(newscreenheight<0)newscreenheight=screenheight;
-
-                        SaveSettings(*this);
-                        mainmenu=gameon?2:1;
-                        break;
-                    case 9:
-                        invertmouse=1-invertmouse;
-                        break;
-                    case 10:
-                        usermousesensitivity+=.2;
-                        if(usermousesensitivity>2)usermousesensitivity=.2;
-                        break;
-                    case 11:
-                        volume+=.1f;
-                        if(volume>1.0001f)volume=0;
-                        OPENAL_SetSFXMasterVolume((int)(volume*255));
-                        break;
-                    case 12:
-                        flash();
-                        
-                        newstereomode = stereomode;
-                        mainmenu=18;
-                        keyselect=-1;
-                        break;
-                    case 13:
-                        showdamagebar=!showdamagebar;
-                        break;
-                }
-            }
-            break;
-        case 4:
-            if(Input::MouseClicked()&&selected!=-1&&!waiting){
-                fireSound();
-                if(selected<9&&keyselect==-1)
-                    keyselect=selected;
-                if(keyselect!=-1)
-                    setKeySelected();
-                if(selected==9){
-                    flash();
-
-                    mainmenu=3;
-
-                    if(newdetail>2)newdetail=detail;
-                    if(newdetail<0)newdetail=detail;
-                    if(newscreenwidth>3000)newscreenwidth=screenwidth;
-                    if(newscreenwidth<0)newscreenwidth=screenwidth;
-                    if(newscreenheight>3000)newscreenheight=screenheight;
-                    if(newscreenheight<0)newscreenheight=screenheight;
-                }
-            }
-            break;
-        case 5:
-            if(endgame==2){
-                accountactive->endGame();
-                endgame=0;
-            }
+                                               mainmenu=3;
+                                       }
+                               }
+                               break;
+                       case 5:
+                               fireSound();
+                               flash();
+                               if((selected-7 >= accountactive->getCampaignChoicesMade())) {
+                                       startbonustotal=0;
 
-            if(Input::MouseClicked()){
-                if((selected-7>=accountactive->getCampaignChoicesMade())){
-                    fireSound();
-                    flash();
-                    startbonustotal=0;
-
-                    loading=2;
-                    loadtime=0;
-                    targetlevel=7;
-                    if(firstload) TickOnceAfter();
-                    else LoadStuff();
-                    whichchoice=selected-7-accountactive->getCampaignChoicesMade();
-                    visibleloading=1;
-                    stillloading=1;
-                    Loadlevel(campaignmapname[campaignchoicewhich[selected-7-accountactive->getCampaignChoicesMade()]]);
-                    //Loadlevel(campaignmapname[levelorder[selected-7]]);
-                    campaign=1;
-                    mainmenu=0;
-                    gameon=1;
-                    pause_sound(stream_menutheme);
-                }
-                if(selected>=1 && selected<=5){
-                    fireSound();
-                    flash();
-                }
-                switch(selected){
-                    case 1:
-                        startbonustotal=0;
-
-                        loading=2;
-                        loadtime=0;
-                        targetlevel=-1;
-                        if(firstload)TickOnceAfter();
-                        if(!firstload)LoadStuff();
-                        else {
-                            Loadlevel(-1);
-                        }
+                                       loading=2;
+                                       loadtime=0;
+                                       targetlevel=7;
+                                       if(firstload)
+                                               TickOnceAfter();
+                                       else
+                                               LoadStuff();
+                                       whichchoice=selected-7-accountactive->getCampaignChoicesMade();
+                                       visibleloading=1;
+                                       stillloading=1;
+                                       Loadlevel(campaignmapname[campaignchoicewhich[selected-7-accountactive->getCampaignChoicesMade()]]);
+                                       campaign=1;
+                                       mainmenu=0;
+                                       gameon=1;
+                                       pause_sound(stream_menutheme);
+                               }
+                               switch(selected){
+                                       case 1:
+                                               startbonustotal=0;
+
+                                               loading=2;
+                                               loadtime=0;
+                                               targetlevel=-1;
+                                               if(firstload) {
+                                                       TickOnceAfter();
+                                                       Loadlevel(-1);
+                                               } else
+                                                       LoadStuff();
+
+                                               mainmenu=0;
+                                               gameon=1;
+                                               pause_sound(stream_menutheme);
+                                               break;
+                                       case 2:
+                                               mainmenu=9;
+                                               break;
+                                       case 3:
+                                               mainmenu=6;
+                                               break;
+                                       case 4:
+                                               mainmenu=(gameon?2:1);
+                                               break;
+                                       case 5:
+                                               mainmenu=7;
+                                               break;
+                               }
+                               break;
+                       case 6:
+                               fireSound();
+                               if(selected==1) {
+                                       flash();
+                                       accountactive = Account::destroy(accountactive);
+                                       mainmenu=7;
+                               } else if(selected==2) {
+                                       flash();
+                                       mainmenu=5;
+                               }
+                               break;
+                       case 7:
+                               fireSound();
+                               if(selected==0 && Account::getNbAccounts()<8){
+                                       entername=1;
+                               } else if (selected < Account::getNbAccounts()+1) {
+                                       flash();
+                                       mainmenu=5;
+                                       accountactive=Account::get(selected-1);
+                               } else if (selected == Account::getNbAccounts()+1) {
+                                       flash();
+                                       mainmenu=5;
+                                       for(int j=0;j<255;j++){
+                                               displaytext[0][j]=0;
+                                       }
+                                       displaychars[0]=0;
+                                       displayselected=0;
+                                       entername=0;
+                               }
+                               break;
+                       case 8:
+                               fireSound();
+                               flash();
+                               if(selected<=2)
+                                       accountactive->setDifficulty(selected);
+                               mainmenu=5;
+                               break;
+                       case 9:
+                               if(selected<numchallengelevels && selected<=accountactive->getProgress()){
+                                       fireSound();
+                                       flash();
 
-                        mainmenu=0;
-                        gameon=1;
-                        pause_sound(stream_menutheme);
-                        break;
-                    case 2:
-                        mainmenu=9;
-                        break;
-                    case 3:
-                        mainmenu=6;
-                        break;
-                    case 4:
-                        mainmenu=gameon?2:1;
-                        break;
-                    case 5:
-                        mainmenu=7;
-                        break;
-                }
-            }
-            break;
-        case 6:
-            if(Input::MouseClicked()) {
-                if(selected>-1){
-                    fireSound();
-                    if(selected==1) {
-                        flash();
-                        accountactive = Account::destroy(accountactive);
-                        mainmenu=7;
-                    } else if(selected==2) {
-                        flash();
-                        mainmenu=5;
-                    }
-                }
-            }
-            break;
-        case 7:
-            if(Input::MouseClicked()) {
-                if(selected!=-1){
-                    fireSound();
-                    if(selected==0&&Account::getNbAccounts()<8){
-                        entername=1;
-                    } else if (selected<Account::getNbAccounts()+1) {
-                        flash();
-                        mainmenu=5;
-                        accountactive=Account::get(selected-1);
-                    } else if (selected==Account::getNbAccounts()+1) {
-                        flash();
-                        mainmenu=5;
-                        for(int j=0;j<255;j++){
-                            displaytext[0][j]=0;
-                        }
-                        displaychars[0]=0;
-                        displayselected=0;
-                        entername=0;
-                    }
-                }
-            }
-            break;
-        case 8:
-            if(Input::MouseClicked()&&selected>-1){
-                fireSound();
-                flash();
-                if(selected<=2)
-                    accountactive->setDifficulty(selected);
-                mainmenu=5;
-            }
-            break;
-        case 9:
-            if(Input::MouseClicked()&&selected<numchallengelevels&&selected>=0&&selected<=accountactive->getProgress()){
-                fireSound();
-                flash();
+                                       startbonustotal=0;
 
-                startbonustotal=0;
+                                       loading=2;
+                                       loadtime=0;
+                                       targetlevel=selected;
+                                       if(firstload)TickOnceAfter();
+                                       if(!firstload)LoadStuff();
+                                       else Loadlevel(selected);
+                                       campaign=0;
 
-                loading=2;
-                loadtime=0;
-                targetlevel=selected;
-                if(firstload)TickOnceAfter();
-                if(!firstload)LoadStuff();
-                else Loadlevel(selected);
-                campaign=0;
+                                       mainmenu=0;
+                                       gameon=1;
+                                       pause_sound(stream_menutheme);
+                               }
+                               if(selected==numchallengelevels){
+                                       fireSound();
+                                       flash();
+                                       mainmenu=5;
+                               }
+                               break;
+                       case 10:
+                               if(selected==3){
+                                       fireSound();
+                                       flash();
+                                       mainmenu=5;
+                               }
+                               break;
+                       case 18:
+                               if(selected==1)
+                                       stereoseparation+=0.001;
+                               else {
+                                       fireSound();
+                                       if(selected==0){
+                                               newstereomode = (StereoMode)(newstereomode + 1);
+                                               while(!CanInitStereo(newstereomode)){
+                                                       printf("Failed to initialize mode %s (%i)\n", StereoModeName(newstereomode), newstereomode);
+                                                       newstereomode = (StereoMode)(newstereomode + 1);
+                                                       if(newstereomode >= stereoCount)
+                                                               newstereomode = stereoNone;
+                                               }
+                                       } else if(selected==2) {
+                                               stereoreverse = !stereoreverse;
+                                       } else if(selected==3) {
+                                               flash();
+                                               mainmenu=3;
 
-                mainmenu=0;
-                gameon=1;
-                pause_sound(stream_menutheme);
-            }
-            if(Input::MouseClicked()&&selected==numchallengelevels){
-                fireSound();
-                flash();
-                mainmenu=5;
-            }
-            break;
-        case 10:
-            endgame=2;
-            if(Input::MouseClicked()&&selected==3){
-                fireSound();
-                flash();
-                mainmenu=5;
-            }
-            break;
-        case 18:
-            if(Input::isKeyPressed(MOUSEBUTTON1)&&selected==1)
-                stereoseparation+=0.001;
-            else if(Input::isKeyPressed(MOUSEBUTTON2)&&selected==1)
-                stereoseparation-=0.001;
-            else if(Input::MouseClicked()&&selected>-1){
-                fireSound();
-                if(selected==0){
-                    newstereomode = (StereoMode)(newstereomode + 1);
-                    while(!CanInitStereo(newstereomode)){
-                        printf("Failed to initialize mode %s (%i)\n", StereoModeName(newstereomode), newstereomode);
-                        newstereomode = (StereoMode)(newstereomode + 1);
-                        if(newstereomode >= stereoCount)
-                            newstereomode = stereoNone;
-                    }
-                }
-                if(selected==2)
-                    stereoreverse =! stereoreverse;
-                if(selected==3){
-                    flash();
-                    mainmenu=3;
-
-                    stereomode = newstereomode;
-                    InitStereo(stereomode);
-                }
-            }
-            break;
-    }
+                                               stereomode = newstereomode;
+                                               InitStereo(stereomode);
+                                       }
+                               }
+                               break;
+               }
+       }
 
-    if(Input::isKeyDown(SDLK_q)&&Input::isKeyDown(SDLK_LMETA)){
+    if(Input::isKeyDown(SDLK_q) && Input::isKeyDown(SDLK_LMETA)){
         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;
-
+        if(mainmenu==3) {
             SaveSettings(*this);
         }
     }
 
-    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_menutheme], 22050);
 
     if(entername) {
@@ -2952,8 +2898,6 @@ void Game::doTutorial(){
     }
 }
 
-
-
 void Game::doDebugKeys(){
        float headprop,bodyprop,armprop,legprop;
     if(debugmode){
@@ -3747,8 +3691,6 @@ void Game::doDebugKeys(){
     }
 }
 
-
-
 void Game::doJumpReversals(){
     for(int k=0;k<numplayers;k++)
         for(int i=k;i<numplayers;i++){
@@ -4957,8 +4899,6 @@ void Game::doPlayerCollisions(){
             }
 }
 
-
-
 void Game::doAI(int i){
     static bool connected;
     if(player[i].aitype!=playercontrolled&&indialogue==-1){
@@ -5934,8 +5874,6 @@ void Game::doAI(int i){
     }
 }
 
-
-
 void Game::Tick(){
        static XYZ facing,flatfacing;
        static int target;
@@ -6030,14 +5968,6 @@ void Game::Tick(){
             }
             //finished with settings menu
                        if(mainmenu==3){
-                               if(newdetail>2)
-                    newdetail=detail;
-                               if(newdetail<0)
-                    newdetail=detail;
-                               if(newscreenwidth<0)
-                    newscreenwidth=screenwidth;
-                               if(newscreenheight<0)
-                    newscreenheight=screenheight;
                                SaveSettings(*this);
                        }
             //effects
@@ -6140,12 +6070,7 @@ void Game::Tick(){
 
                if(Input::isKeyDown(SDLK_q)&&Input::isKeyDown(SDLK_LMETA)){
                        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;
-
+                       if(mainmenu==3) {
                                SaveSettings(*this);
                        }
                }
@@ -7601,9 +7526,7 @@ void Game::Tick(){
                Screenshot();
 }
 
-
-
-void   Game::TickOnce(){
+void Game::TickOnce(){
        if(mainmenu)
                rotation+=multiplier*5;
        else
@@ -7620,7 +7543,7 @@ void      Game::TickOnce(){
                }
 }
 
-void   Game::TickOnceAfter(){
+void Game::TickOnceAfter(){
        static XYZ colviewer;
        static XYZ coltarget;
        static XYZ target;
@@ -7796,12 +7719,12 @@ void    Game::TickOnceAfter(){
                                if(targetlevel>numchallengelevels-1)targetlevel=0;
                        }
 
-                       if(changedelay>0&&!player[0].dead&&!won){
+                       if(changedelay>0&&!player[0].dead&&!won) {
                                //high scores, awards, win
-                               if(campaign){
+                               if(campaign) {
                                        accountactive->winCampaignLevel(whichchoice, bonustotal, leveltime);
                                        scoreadded=1;
-                               }else{
+                               } else {
                                        accountactive->winLevel(whichlevel,bonustotal-startbonustotal,leveltime);
                                }
                                won=1;
@@ -7895,72 +7818,13 @@ void    Game::TickOnceAfter(){
 
                                        startbonustotal=0;
 
-                                       ifstream ipstream(ConvertFileName(":Data:Campaigns:main.txt"));
-                                       ipstream.ignore(256,':');
-                                       ipstream >> campaignnumlevels;
-                                       for(int i=0;i<campaignnumlevels;i++){
-                                               ipstream.ignore(256,':');
-                                               ipstream.ignore(256,':');
-                                               ipstream.ignore(256,' ');
-                                               ipstream >> campaignmapname[i];
-                                               ipstream.ignore(256,':');
-                                               ipstream >> campaigndescription[i];
-                                               for(int j=0;j<256;j++){
-                                                       if(campaigndescription[i][j]=='_')campaigndescription[i][j]=' ';
-                                               }
-                                               ipstream.ignore(256,':');
-                                               ipstream >> campaignchoosenext[i];
-                                               ipstream.ignore(256,':');
-                                               ipstream >> campaignnumnext[i];
-                                               for(int j=0;j<campaignnumnext[i];j++){
-                                                       ipstream.ignore(256,':');
-                                                       ipstream >> campaignnextlevel[i][j];
-                                                       campaignnextlevel[i][j]-=1;
-                                               }
-                                               ipstream.ignore(256,':');
-                                               ipstream >> campaignlocationx[i];
-                                               ipstream.ignore(256,':');
-                                               ipstream >> campaignlocationy[i];
-                                       }
-                                       ipstream.close();
-
-                                       for(int i=0;i<campaignnumlevels;i++){
-                                               levelvisible[i]=0;
-                                               levelhighlight[i]=0;
-                                       }
-
-
-                                       for(int i=0;i<campaignnumlevels;i++){
-                                               levelvisible[i]=0;
-                                               levelhighlight[i]=0;
-                                       }
-
-                                       levelorder[0]=0;
-                                       levelvisible[0]=1;
-                                       for(int i=0;i<accountactive->getCampaignChoicesMade();i++){
-                                               levelorder[i+1]=campaignnextlevel[levelorder[i]][accountactive->getCampaignChoice(i)];
-                                               levelvisible[levelorder[i+1]]=1;
-                                       }
-                                       int whichlevelstart;
-                                       whichlevelstart=accountactive->getCampaignChoicesMade()-1;
-                                       if(whichlevelstart<0){
-                                               campaignchoicenum=1;
-                                               campaignchoicewhich[0]=0;
-                                       }
-                                       else
-                                       {
-                                               campaignchoicenum=campaignnumnext[levelorder[whichlevelstart]];
-                                               for(int i=0;i<campaignchoicenum;i++){
-                                                       campaignchoicewhich[i]=campaignnextlevel[levelorder[whichlevelstart]][i];
-                                                       levelvisible[campaignnextlevel[levelorder[whichlevelstart]][i]]=1;
-                                                       levelhighlight[campaignnextlevel[levelorder[whichlevelstart]][i]]=1;
-                                               }
-                                       }
+                                       LoadCampaign();
 
                                        loading=2;
                                        loadtime=0;
                                        targetlevel=7;
-                                       if(!firstload)LoadStuff();
+                                       if(!firstload)
+                                               LoadStuff();
                                        whichchoice=0;
                                        visibleloading=1;
                                        stillloading=1;