#include "st_goal.h"
#include "st_fall_out.h"
#include "st_time_out.h"
-#include "st_start.h"
+#include "st_over.h"
#include "st_pause.h"
/*---------------------------------------------------------------------------*/
static int pause_or_exit(void)
{
- if (SDL_GetModState() & (KMOD_SHIFT | KMOD_CTRL | KMOD_ALT | KMOD_META))
+ if (SDL_GetModState() & KMOD_SHIFT)
{
- level_stop(GAME_NONE, curr_clock(), curr_coins());
+ level_stat(GAME_NONE, curr_clock(), curr_coins());
+ level_stop();
config_clr_grab();
- return goto_state(&st_start);
+
+ return goto_state(&st_over);
}
- else
- return goto_pause();
+ return goto_pause();
}
/*---------------------------------------------------------------------------*/
game_step_fade(dt);
gui_timer(id, dt);
- audio_timer(dt);
}
static int play_ready_click(int b, int d)
game_step_fade(dt);
gui_timer(id, dt);
- audio_timer(dt);
}
static int play_set_click(int b, int d)
gui_paint(id);
}
-#define CAMERA_MODIFIERS (KMOD_SHIFT | KMOD_CTRL | KMOD_ALT | KMOD_META)
-
static void play_loop_timer(int id, float dt)
{
- float k = ((SDL_GetModState() & CAMERA_MODIFIERS) ?
+ float k = ((SDL_GetModState() & KMOD_SHIFT) ?
(float) config_get_d(CONFIG_ROTATE_FAST) / 100.f:
(float) config_get_d(CONFIG_ROTATE_SLOW) / 100.f);
switch (game_step(g, at, 1))
{
case GAME_GOAL:
- level_stop(GAME_GOAL, curr_clock(), curr_coins());
+ level_stat(GAME_GOAL, curr_clock(), curr_coins());
+ gui_stuck();
goto_state(&st_goal);
break;
case GAME_FALL:
- level_stop(GAME_FALL, curr_clock(), curr_coins());
+ level_stat(GAME_FALL, curr_clock(), curr_coins());
+ gui_stuck();
goto_state(&st_fall_out);
break;
case GAME_TIME:
- level_stop(GAME_TIME, curr_clock(), curr_coins());
+ level_stat(GAME_TIME, curr_clock(), curr_coins());
+ gui_stuck();
goto_state(&st_time_out);
break;
game_step_fade(dt);
demo_play_step(at);
- audio_timer(dt);
}
static void play_loop_point(int id, int x, int y, int dx, int dy)
if (config_tst_d(CONFIG_KEY_RESTART, c) &&
curr_lg()->mode != MODE_CHALLENGE)
{
- level_stop(GAME_NONE, curr_clock(), curr_coins());
- level_play(curr_lg()->level, curr_lg()->mode);
+ level_same();
goto_state(&st_play_ready);
}
if (config_tst_d(CONFIG_KEY_PAUSE, c))
if (d && c == SDLK_c && config_cheat())
{
- level_stop(GAME_GOAL, curr_clock(), curr_coins());
+ level_stat(GAME_GOAL, curr_clock(), curr_coins());
return goto_state(&st_goal);
}
return 1;