* General Public License for more details.
*/
-#include <SDL_mixer.h>
-
#include "gui.h"
#include "config.h"
#include "game.h"
-#include "levels.h"
+#include "progress.h"
#include "level.h"
#include "audio.h"
#include "hud.h"
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);
}
int id, jd, title_id;
config_clr_grab();
-
- Mix_PauseMusic();
+ SDL_PauseAudio(1);
/* Build the pause GUI. */
{
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);
}
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();
}
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;
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;
}
pause_timer,
shared_point,
shared_stick,
+ shared_angle,
shared_click,
pause_keybd,
pause_buttn,