projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added support for magic wall settings in BD engine to level editor
[rocksndiamonds.git]
/
src
/
game.c
diff --git
a/src/game.c
b/src/game.c
index db689084c64fa6802d465fa4b5be9e34b4365b7b..9127a1b6a5be48bc22c593b6ff728b8a02269192 100644
(file)
--- a/
src/game.c
+++ b/
src/game.c
@@
-5162,7
+5162,11
@@
void GameEnd(void)
int last_level_nr = levelset.level_nr;
boolean tape_saved = FALSE;
int last_level_nr = levelset.level_nr;
boolean tape_saved = FALSE;
- game.LevelSolved_GameEnd = TRUE;
+ // Important note: This function is not only called after "GameWon()", but also after
+ // "game over" (if automatically asking for restarting the game is disabled in setup)
+
+ if (game.LevelSolved)
+ game.LevelSolved_GameEnd = TRUE;
if (game.LevelSolved_SaveTape && !score_info_tape_play)
{
if (game.LevelSolved_SaveTape && !score_info_tape_play)
{
@@
-5189,7
+5193,7
@@
void GameEnd(void)
return;
}
return;
}
- if (!game.
LevelSolved_SaveScore
)
+ if (!game.
GamePlayed || (!game.LevelSolved_SaveScore && !level.bd_intermission)
)
{
SetGameStatus(GAME_MODE_MAIN);
{
SetGameStatus(GAME_MODE_MAIN);
@@
-5206,12
+5210,13
@@
void GameEnd(void)
}
// save score and score tape before potentially erasing tape below
}
// save score and score tape before potentially erasing tape below
- NewHighScore(last_level_nr, tape_saved);
+ if (game.LevelSolved_SaveScore)
+ NewHighScore(last_level_nr, tape_saved);
// increment and load next level (if possible and not configured otherwise)
AdvanceToNextLevel();
// increment and load next level (if possible and not configured otherwise)
AdvanceToNextLevel();
- if (scores.last_added >= 0 && setup.show_scores_after_game)
+ if (
game.LevelSolved_SaveScore &&
scores.last_added >= 0 && setup.show_scores_after_game)
{
SetGameStatus(GAME_MODE_SCORES);
{
SetGameStatus(GAME_MODE_SCORES);