Merged branch utf8.
[neverball] / ball / st_pause.c
index 4fd038f..597884c 100644 (file)
@@ -12,6 +12,8 @@
  * General Public License for more details.
  */
 
+#include <SDL_mixer.h>
+
 #include "gui.h"
 #include "config.h"
 #include "game.h"
@@ -21,7 +23,7 @@
 #include "hud.h"
 
 #include "st_play.h"
-#include "st_start.h"
+#include "st_over.h"
 #include "st_shared.h"
 #include "st_pause.h"
 
@@ -60,27 +62,28 @@ static int pause_action(int i)
     switch(i)
     {
     case PAUSE_CONTINUE:
-        audio_music_fade_in(0.5f);
+        Mix_ResumeMusic();
         config_set_grab(0);
         return goto_state(st_continue);
 
     case PAUSE_RESTART:
-        level_stop(GAME_NONE, 0, curr_clock(), curr_coins());
+        level_same();
         clear_pause();
-        level_play_go();
-        audio_music_fade_in (2.0f);
+        Mix_ResumeMusic();
         config_set_grab(1);
-        return goto_state(&st_play_set);
+        return goto_state(&st_play_ready);
 
     case PAUSE_EXIT:
-        level_stop(GAME_NONE, 0, curr_clock(), curr_coins());
+        level_stat(GAME_NONE, curr_clock(), curr_coins());
+        level_stop();
         clear_pause();
-        return curr_lg()->mode == MODE_SINGLE ? 0 : goto_state(&st_start);
+        return goto_state(&st_over);
     }
 
     return 1;
 }
 
+/*---------------------------------------------------------------------------*/
 
 static int pause_enter(void)
 {
@@ -88,7 +91,7 @@ static int pause_enter(void)
 
     config_clr_grab();
 
-    audio_music_fade_out(0.2f);
+    Mix_PauseMusic();
 
     /* Build the pause GUI. */
 
@@ -122,15 +125,15 @@ static int pause_enter(void)
     return id;
 }
 
-void pause_paint(int id, float st)
+static void pause_paint(int id, float st)
 {
     shared_paint(id, st);
     hud_paint();
 }
 
-void pause_timer(int id, float dt)
+static void pause_timer(int id, float dt)
 {
-    shared_timer (id, dt);
+    gui_timer(id, dt);
     hud_timer (dt);
 }
 
@@ -157,7 +160,7 @@ static int pause_buttn(int b, int d)
 
         if (config_tst_d(CONFIG_JOYSTICK_BUTTON_EXIT, b))
         {
-            if (SDL_GetModState() & (KMOD_SHIFT | KMOD_CTRL | KMOD_ALT | KMOD_META))
+            if (SDL_GetModState() & KMOD_SHIFT)
                 return pause_action(PAUSE_EXIT);
             else
                 return pause_action(PAUSE_CONTINUE);