static int time_out_action(int i) { audio_play(AUD_MENU, 1.0f); switch (i) { case TIME_OUT_BACK: /* Fall through. */ case TIME_OUT_OVER: progress_stop(); return goto_state(&st_over); case TIME_OUT_SAVE: progress_stop(); return goto_save(&st_time_out, &st_time_out); case TIME_OUT_NEXT: if (progress_next()) return goto_state(&st_level); break; case TIME_OUT_SAME: if (progress_same()) return goto_state(&st_level); break; } return 1; }
static int goal_action(int i) { audio_play(AUD_MENU, 1.0f); switch (i) { case GOAL_BACK: /* Fall through. */ case GOAL_OVER: progress_stop(); return goto_state(&st_over); case GOAL_SAVE: resume = 1; progress_stop(); return goto_save(&st_goal, &st_goal); case GUI_NAME: new_name = 1; resume = 1; progress_stop(); return goto_name(&st_goal, &st_goal, 0); case GOAL_DONE: progress_stop(); progress_exit(); return goto_state(&st_done); case GOAL_LAST: progress_stop(); return goto_state(&st_start); case GUI_MOST_COINS: case GUI_BEST_TIMES: case GUI_FAST_UNLOCK: gui_score_set(i); resume = 1; return goto_state(&st_goal); case GOAL_NEXT: if (progress_next()) return goto_state(&st_level); break; case GOAL_SAME: if (progress_same()) return goto_state(&st_level); break; } return 1; }
static int goal_action(int tok, int val) { audio_play(AUD_MENU, 1.0f); switch (tok) { case GUI_BACK: case GOAL_OVER: progress_stop(); return goto_state(&st_exit); case GUI_SAVE: progress_stop(); return goto_save(&st_goal, &st_goal); case GUI_NAME: progress_stop(); return goto_name(&st_goal, &st_goal, 0); case GOAL_DONE: progress_stop(); progress_exit(); return goto_state(&st_exit); case GOAL_LAST: progress_stop(); return goto_state(&st_exit); case GUI_SCORE: gui_score_set(val); return goto_state(&st_goal); case GOAL_NEXT: if (progress_next()) return goto_state(&st_level); break; case GOAL_SAME: if (progress_same()) return goto_state(&st_level); break; } return 1; }