replaced distros with coins
[supertux.git] / src / gameloop.cpp
index 64d3ee8..5c33406 100644 (file)
@@ -53,6 +53,7 @@
 #include "tile.h"
 #include "particlesystem.h"
 #include "resources.h"
+#include "music_manager.h"
 
 GameSession* GameSession::current_ = 0;
 
@@ -141,6 +142,8 @@ GameSession::~GameSession()
 void
 GameSession::levelintro(void)
 {
+  music_manager->halt_music();
+  
   char str[60];
   /* Level Intro: */
   clearscreen(0, 0, 0);
@@ -173,6 +176,9 @@ GameSession::start_timers()
 void
 GameSession::on_escape_press()
 {
+  if(game_pause)
+    return;
+
   if(st_gl_mode == ST_GL_TEST)
     {
       exit_status = LEVEL_ABORT;
@@ -203,6 +209,9 @@ GameSession::process_events()
     }
   else
     {
+      if(!Menu::current() && !game_pause)
+        st_pause_ticks_stop();
+
       SDL_Event event;
       while (SDL_PollEvent(&event))
         {
@@ -216,8 +225,6 @@ GameSession::process_events()
             {
               Player& tux = *world->get_tux();
   
-              st_pause_ticks_stop();
-
               switch(event.type)
                 {
                 case SDL_QUIT:        /* Quit event - quit: */
@@ -376,7 +383,7 @@ GameSession::check_end_conditions()
     {
       end_sequenze = true;
       last_x_pos = -1;
-      halt_music();
+      music_manager->halt_music();
     }
   else
     {
@@ -450,10 +457,10 @@ GameSession::process_menu()
         {
           switch (game_menu->check())
             {
-            case 2:
+            case MNID_CONTINUE:
               st_pause_ticks_stop();
               break;
-            case 5:
+            case MNID_ABORTLEVEL:
               st_pause_ticks_stop();
               exit_status = LEVEL_ABORT;
               break;
@@ -474,7 +481,6 @@ GameSession::ExitStatus
 GameSession::run()
 {
   Menu::set_current(0);
-  Player* tux = world->get_tux();
   current_ = this;
   
   int fps_cnt = 0;
@@ -504,7 +510,7 @@ GameSession::run()
         }
 
       /* Handle events: */
-      tux->input.old_fire = tux->input.fire;
+      world->get_tux()->input.old_fire = world->get_tux()->input.fire;
 
       process_events();
       process_menu();
@@ -555,11 +561,11 @@ GameSession::run()
         }
 
       /* Handle time: */
-      if (!time_left.check() && tux->dying == DYING_NOT)
-        tux->kill(KILL);
+      if (!time_left.check() && world->get_tux()->dying == DYING_NOT)
+        world->get_tux()->kill(Player::KILL);
 
       /* Handle music: */
-      if(tux->invincible_timer.check())
+      if(world->get_tux()->invincible_timer.check())
         {
           if(world->get_music_type() != HERRING_MUSIC)
             world->play_music(HERRING_MUSIC);
@@ -628,7 +634,7 @@ GameSession::drawstatus()
     }
 
   sprintf(str, "%d", player_status.distros);
-  white_text->draw("DISTROS", screen->h, 0, 1);
+  white_text->draw("COINS", screen->h, 0, 1);
   gold_text->draw(str, 608, 0, 1);
 
   white_text->draw("LIVES", screen->h, 20, 1);
@@ -679,7 +685,7 @@ GameSession::drawresultscreen(void)
   sprintf(str, "SCORE: %d", player_status.score);
   gold_text->drawf(str, 0, 224, A_HMIDDLE, A_TOP, 1);
 
-  sprintf(str, "DISTROS: %d", player_status.distros);
+  sprintf(str, "COINS: %d", player_status.distros);
   gold_text->drawf(str, 0, 256, A_HMIDDLE, A_TOP, 1);
 
   flipscreen();