scores->uploaded = FALSE;
scores->tape_downloaded = FALSE;
scores->force_last_added = FALSE;
+
+ // The following values are intentionally not reset here:
+ // - last_level_nr
+ // - last_entry_nr
+ // - was_just_playing
}
static void setScoreInfoToDefaults(void)
if (mx || my) // mouse input
{
+ scores.was_just_playing = FALSE;
+
x = (mx - amSX) / 32;
y = (my - amSY) / 32 - MENU_SCREEN_START_YPOS;
}
else if (dx || dy) // keyboard or scrollbar/scrollbutton input
{
+ scores.was_just_playing = FALSE;
+
// move cursor instead of scrolling when already at start/end of list
if (dy == -1 * SCROLL_LINE && ti->cl_first == 0)
dy = -1;
}
else if (game_status == GAME_MODE_SCORES)
{
- if (game_status_last_screen == GAME_MODE_PLAYING &&
- setup.auto_play_next_level && setup.increment_levels &&
+ if (setup.auto_play_next_level && setup.increment_levels &&
scores.last_level_nr < leveldir_current->last_level &&
+ scores.was_just_playing &&
!network_playing)
{
StartGameActions(network.enabled, setup.autorecord,
level.random_seed);
return;
}
- else
+ else if (!scores.was_just_playing)
{
SetGameStatus(GAME_MODE_SCOREINFO);
void DrawHallOfFame(int level_nr)
{
scores.last_level_nr = level_nr;
+ scores.was_just_playing = (game_status_last_screen == GAME_MODE_PLAYING);
// (this is needed when called from GameEnd() after winning a game)
KeyboardAutoRepeatOn();
SetGameStatus(GAME_MODE_SCORES);
- DrawHallOfFame(level_nr);
+ DrawHallOfFame(scores.last_level_nr);
}
else if (dx)
{