]> git.jsancho.org Git - lugaru.git/blobdiff - Source/GameTick.cpp
No more black background for the map, some little cleanup
[lugaru.git] / Source / GameTick.cpp
index e59580515b3008bc990985954ad11bb43b84fa9c..c9e3a9691ff0aca2851ebe9c47d0bd5df776d0f3 100644 (file)
@@ -1524,7 +1524,7 @@ void Game::Loadlevel(const char *name){
                if(console){
                        emit_sound_np(consolesuccesssound);
                        freeze=0;
-                       console=0;
+                       console=false;
                }
 
                if(!stealthloading){
@@ -5870,7 +5870,7 @@ void Game::Tick(){
                displaytime[i]+=multiplier;
        }
 
-       keyboardfrozen=0;
+       keyboardfrozen=false;
     Input::Tick();
 
        if(Input::isKeyPressed(SDLK_F6)){
@@ -5924,25 +5924,36 @@ void Game::Tick(){
     18 stereo configuration
     */
         
-       if(!console){
+       if(!console) {
         //campaign over?
                if(mainmenu&&endgame==1)
             mainmenu=10;
+        //go to level select after completing a campaign level
+        if(campaign&&winfreeze&&mainmenu==0&&campaignchoosenext[campaignchoicewhich[whichchoice]]==1) {
+            mainmenu=5;
+            gameon=0;
+            winfreeze=0;
+            fireSound();
+            flash();
+            if(musictoggle){
+                OPENAL_SetFrequency(OPENAL_ALL, 0.001);
+                emit_stream_np(stream_menutheme);
+                pause_sound(leveltheme);
+            }
+                       LoadCampaign();
+        }
         //escape key pressed
         //TODO: there must be code somewhere else that handles clicking the Back button, merge it with this
                if(Input::isKeyPressed(SDLK_ESCAPE)&&
-                (gameon||mainmenu==0||(mainmenu>=3&&mainmenu!=8&&!(mainmenu==7&&entername)))){
+                (gameon||mainmenu==0||(mainmenu>=3&&mainmenu!=8&&!(mainmenu==7&&entername)))) {
                        selected=-1;
             if(mainmenu==0&&!winfreeze)
                 mainmenu=2; //pause
-            else if(mainmenu==0&&winfreeze&&campaignchoosenext[campaignchoicewhich[whichchoice]]==1){
-                mainmenu=100; // play menu sound and go to menu 5.
-                gameon=0;
-                winfreeze=0;
-            } else if(mainmenu==1||mainmenu==2)
+            else if(mainmenu==1||mainmenu==2){
                 mainmenu=0; //unpause
+            }
             //play menu theme
-            if(musictoggle&&(mainmenu==1||mainmenu==2||mainmenu==100)){
+            if(musictoggle&&(mainmenu==1||mainmenu==2)){
                 OPENAL_SetFrequency(OPENAL_ALL, 0.001);
                 emit_stream_np(stream_menutheme);
                 pause_sound(leveltheme);
@@ -5967,17 +5978,17 @@ void Game::Tick(){
                     mainmenu=gameon?2:1; break;
                 case 4: case 18:
                     mainmenu=3; break;
-                case 6: case 7: case 9: case 10: case 100:
+                case 6: case 7: case 9: case 10:
                     mainmenu=5; break;
             }
                }
        }
 
-       if(mainmenu){
+       if(mainmenu) {
         MenuTick();
        }
 
-       if(!mainmenu){
+       if(!mainmenu) {
                if(hostile==1)hostiletime+=multiplier;
                else hostiletime=0;
                if(!winfreeze)leveltime+=multiplier;
@@ -6012,10 +6023,10 @@ void Game::Tick(){
                        }
                }
                if(chatting)
-            keyboardfrozen=1;
+            keyboardfrozen=true;
 
                if(Input::isKeyPressed(SDLK_BACKQUOTE)&&debugmode){
-                       console=1-console;
+                       console=!console;
                        if(console){
                                OPENAL_SetFrequency(OPENAL_ALL, 0.001);
                        } else {
@@ -6076,9 +6087,9 @@ void Game::Tick(){
                 winfreeze=0;
                if((Input::isKeyDown(SDLK_ESCAPE))&&!campaign&&gameon){
             if(console){
-                console=0;
+                console=false;
                 freeze=0;
-            }else if(winfreeze){
+            } else if(winfreeze) {
                                mainmenu=9;
                                gameon=0;
                        }
@@ -7720,7 +7731,7 @@ void Game::TickOnceAfter(){
                                killhotspot=0;
                        }
 
-                       if(!editorenabled&&gameon&&!mainmenu){
+                       if(!editorenabled&&gameon&&!mainmenu) {
                                if(changedelay!=-999)
                     changedelay-=multiplier/7;
                                if(player[0].dead)
@@ -7759,17 +7770,16 @@ void Game::TickOnceAfter(){
                         (player[0].dead||
                          (alldead&&maptype==mapkilleveryone)||
                          (winhotspot)||
-                         (killhotspot))&&
-                        !winfreeze)
+                         (killhotspot)))
                     loading=1;
                                if((player[0].dead||
                             (alldead&&maptype==mapkilleveryone)||
                             (winhotspot)||
                             (windialogue)||
                             (killhotspot))&&
-                        changedelay<=0){
-                    if(whichlevel!=-2&&!loading&&!player[0].dead){
-                        winfreeze=1;
+                        changedelay<=0) {
+                    if(whichlevel!=-2&&!loading&&!player[0].dead) {
+                        winfreeze=true;
                         changedelay=-999;
                     }
                     if(player[0].dead)
@@ -7777,15 +7787,16 @@ void Game::TickOnceAfter(){
                                }
                        }
 
-                       if(campaign)
-                               if(mainmenu==0&&winfreeze&&(campaignchoosenext[campaignchoicewhich[whichchoice]])==1)
+                       if(campaign) {
+                // campaignchoosenext determines what to do when the level is complete:
+                // 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)
                                                endgame=1;
-                               else if(mainmenu==0&&winfreeze){
-                                       if(campaignchoosenext[campaignchoicewhich[whichchoice]]==2)
-                                               stealthloading=1;
-                                       else
-                        stealthloading=0;
+                               } else if(mainmenu==0&&winfreeze) {
+                                       stealthloading = (campaignchoosenext[campaignchoicewhich[whichchoice]]==2);
 
                                        if(!stealthloading){
                                                fireSound(firestartsound);
@@ -7813,6 +7824,7 @@ void Game::TickOnceAfter(){
 
                                        stealthloading=0;
                                }
+            }
 
             if(loading==3)
                 loading=0;