X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=ball%2Fst_pause.c;h=fd8c03b8de5d7aa29acf2109ad87d7550f3a9937;hb=1745b6a90dfd9e626e5c40d20c6aa595ec41d888;hp=f15e0b0d5c3b4240eb66b12538c89545cafad9f0;hpb=8a375beb6e9f9ac53f42ce4700b5351994ffcad6;p=neverball diff --git a/ball/st_pause.c b/ball/st_pause.c index f15e0b0..fd8c03b 100644 --- a/ball/st_pause.c +++ b/ball/st_pause.c @@ -12,12 +12,10 @@ * General Public License for more details. */ -#include - #include "gui.h" #include "config.h" #include "game.h" -#include "levels.h" +#include "progress.h" #include "level.h" #include "audio.h" #include "hud.h" @@ -62,21 +60,26 @@ static int pause_action(int i) switch(i) { case PAUSE_CONTINUE: - Mix_ResumeMusic(); + SDL_PauseAudio(0); config_set_grab(0); return goto_state(st_continue); case PAUSE_RESTART: - level_same(); - clear_pause(); - Mix_ResumeMusic(); - config_set_grab(1); - return goto_state(&st_play_ready); + if (progress_same()) + { + clear_pause(); + SDL_PauseAudio(0); + config_set_grab(1); + return goto_state(&st_play_ready); + } + break; case PAUSE_EXIT: - level_stat(GAME_NONE, curr_clock(), curr_coins()); - level_stop(); + progress_stat(GAME_NONE); + progress_stop(); clear_pause(); + SDL_PauseAudio(0); + audio_music_stop(); return goto_state(&st_over); } @@ -90,8 +93,7 @@ static int pause_enter(void) int id, jd, title_id; config_clr_grab(); - - Mix_PauseMusic(); + SDL_PauseAudio(1); /* Build the pause GUI. */ @@ -105,13 +107,8 @@ static int pause_enter(void) { gui_state(jd, _("Quit"), GUI_SML, PAUSE_EXIT, 0); - if (curr_lg()->mode != MODE_CHALLENGE) + if (progress_same_avail()) gui_state(jd, _("Restart"), GUI_SML, PAUSE_RESTART, 0); - else - { - int ld = gui_state(jd, _("Restart"), GUI_SML, 0, 0); - gui_set_color(ld, gui_gry, gui_gry); - } gui_start(jd, _("Continue"), GUI_SML, PAUSE_CONTINUE, 1); } @@ -125,9 +122,9 @@ static int pause_enter(void) return id; } -static void pause_paint(int id, float st) +static void pause_paint(int id, float t) { - shared_paint(id, st); + shared_paint(id, t); hud_paint(); } @@ -144,8 +141,7 @@ static int pause_keybd(int c, int d) if (config_tst_d(CONFIG_KEY_PAUSE, c)) return pause_action(PAUSE_CONTINUE); - if (config_tst_d(CONFIG_KEY_RESTART, c) - && curr_lg()->mode != MODE_CHALLENGE) + if (config_tst_d(CONFIG_KEY_RESTART, c) && progress_same_avail()) return pause_action(PAUSE_RESTART); } return 1; @@ -159,12 +155,7 @@ static int pause_buttn(int b, int d) return pause_action(gui_token(gui_click())); if (config_tst_d(CONFIG_JOYSTICK_BUTTON_EXIT, b)) - { - if (SDL_GetModState() & (KMOD_SHIFT | KMOD_CTRL | KMOD_ALT | KMOD_META)) - return pause_action(PAUSE_EXIT); - else - return pause_action(PAUSE_CONTINUE); - } + return pause_action(PAUSE_CONTINUE); } return 1; } @@ -178,6 +169,7 @@ struct state st_pause = { pause_timer, shared_point, shared_stick, + shared_angle, shared_click, pause_keybd, pause_buttn,