/* Fall through. */
case TIME_OUT_OVER:
- if (curr_lg()->mode == MODE_CHALLENGE)
- return goto_state(&st_over);
- else
- return goto_state(&st_start);
+ level_stop();
+ return goto_state(&st_over);
case TIME_OUT_SAVE:
+ level_stop();
return goto_save(&st_time_out, &st_time_out);
case TIME_OUT_NEXT:
level_next();
- level_play(curr_lg()->level, curr_lg()->mode);
return goto_state(&st_level);
case TIME_OUT_SAME:
- level_play(curr_lg()->level, curr_lg()->mode);
+ level_same();
return goto_state(&st_level);
}
gui_start(jd, _("Game Over"), GUI_SML, TIME_OUT_OVER, 0);
else
{
- retry_id = gui_maybe(jd, _("Retry Level"), TIME_OUT_SAME,
- lg->mode != MODE_CHALLENGE);
+ retry_id = gui_state(jd, _("Retry Level"), GUI_SML,
+ TIME_OUT_SAME, 0);
}
- gui_maybe(jd, _("Save Replay"), TIME_OUT_SAVE, demo_play_saved());
+ gui_maybe(jd, _("Save Replay"), TIME_OUT_SAVE, demo_saved());
/* Default is next if the next level is newly unlocked. */
if (next_id && lg->unlock)
gui_focus(next_id);
- else if (lg->mode != MODE_CHALLENGE)
+ else if (retry_id)
gui_focus(retry_id);
}
gui_space(id);