* General Public License for more details.
*/
-#include <SDL_mixer.h>
#include "gui.h"
#include "config.h"
#include "game.h"
#include "hud.h"
#include "st_play.h"
-#include "st_start.h"
+#include "st_over.h"
#include "st_shared.h"
#include "st_pause.h"
switch(i)
{
case PAUSE_CONTINUE:
- Mix_ResumeMusic();
+ SDL_PauseAudio(0);
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();
- Mix_ResumeMusic();
+ SDL_PauseAudio(0);
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);
+ SDL_PauseAudio(0);
+ audio_music_stop();
+ return goto_state(&st_over);
}
return 1;
}
+/*---------------------------------------------------------------------------*/
static int pause_enter(void)
{
int id, jd, title_id;
config_clr_grab();
-
- Mix_PauseMusic();
+ SDL_PauseAudio(1);
/* Build the pause GUI. */
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)
{
gui_timer(id, dt);
hud_timer (dt);
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);