}
game_panel_controls[GAME_PANEL_SCORE].value = score;
- game_panel_controls[GAME_PANEL_HIGHSCORE].value = highscore[0].Score;
+ game_panel_controls[GAME_PANEL_HIGHSCORE].value = scores.entry[0].score;
game_panel_controls[GAME_PANEL_TIME].value = time;
LoadScore(level_nr);
if (strEqual(setup.player_name, EMPTY_PLAYER_NAME) ||
- game.score_final < highscore[MAX_SCORE_ENTRIES - 1].Score)
+ game.score_final < scores.entry[MAX_SCORE_ENTRIES - 1].score)
return -1;
for (k = 0; k < MAX_SCORE_ENTRIES; k++)
{
- if (game.score_final > highscore[k].Score)
+ if (game.score_final > scores.entry[k].score)
{
// player has made it to the hall of fame
if (one_score_entry_per_name)
{
for (l = k; l < MAX_SCORE_ENTRIES; l++)
- if (strEqual(setup.player_name, highscore[l].Name))
+ if (strEqual(setup.player_name, scores.entry[l].name))
m = l;
if (m == k) // player's new highscore overwrites his old one
for (l = m; l > k; l--)
{
- strcpy(highscore[l].Name, highscore[l - 1].Name);
- highscore[l].Score = highscore[l - 1].Score;
+ strcpy(scores.entry[l].name, scores.entry[l - 1].name);
+ scores.entry[l].score = scores.entry[l - 1].score;
}
}
put_into_list:
- strncpy(highscore[k].Name, setup.player_name, MAX_PLAYER_NAME_LEN);
- highscore[k].Name[MAX_PLAYER_NAME_LEN] = '\0';
- highscore[k].Score = game.score_final;
+ strncpy(scores.entry[k].name, setup.player_name, MAX_PLAYER_NAME_LEN);
+ scores.entry[k].name[MAX_PLAYER_NAME_LEN] = '\0';
+ scores.entry[k].score = game.score_final;
position = k;
break;
}
else if (one_score_entry_per_name &&
- !strncmp(setup.player_name, highscore[k].Name,
+ !strncmp(setup.player_name, scores.entry[k].name,
MAX_PLAYER_NAME_LEN))
break; // player already there with a higher score
}
{
if (skip_request || Request(message, REQ_ASK | REQ_STAY_CLOSED))
{
- // closing door required in case of envelope style request dialogs
- if (!skip_request)
+ if (!quick_quit)
{
// prevent short reactivation of overlay buttons while closing door
SetOverlayActive(FALSE);
+ // door may still be open due to skipped or envelope style request
CloseDoor(DOOR_CLOSE_1);
}
void RequestQuitGame(boolean escape_key_pressed)
{
- boolean quick_quit = ((escape_key_pressed && !setup.ask_on_escape) ||
+ boolean ask_on_escape = (setup.ask_on_escape && setup.ask_on_quit_game);
+ boolean quick_quit = ((escape_key_pressed && !ask_on_escape) ||
level_editor_test_game);
- boolean skip_request = game.all_players_gone || quick_quit;
+ boolean skip_request = (game.all_players_gone || !setup.ask_on_quit_game ||
+ quick_quit);
RequestQuitGameExt(skip_request, quick_quit,
"Do you really want to quit the game?");