projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added flags for "level solved" and "game over" to EM engine
[rocksndiamonds.git]
/
src
/
game.c
diff --git
a/src/game.c
b/src/game.c
index a780952b9749960b09146a81745a8dbf496be539..12397d5c4f262cf5367957a8c78e32c06f37f081 100644
(file)
--- a/
src/game.c
+++ b/
src/game.c
@@
-11117,19
+11117,17
@@
static void CheckLevelSolved(void)
{
if (level.game_engine_type == GAME_ENGINE_TYPE_EM)
{
{
if (level.game_engine_type == GAME_ENGINE_TYPE_EM)
{
- if (level.native_em_level->lev->home == 0) // all players at home
+ if (game_em.level_solved &&
+ !game_em.game_over) // game won
{
PlayerWins(local_player);
{
PlayerWins(local_player);
-
AllPlayersGone
= TRUE;
+
game_em.game_over
= TRUE;
-
level.native_em_level->lev->home = -1
;
+
AllPlayersGone = TRUE
;
}
}
- if (level.native_em_level->ply[0]->alive == 0 &&
- level.native_em_level->ply[1]->alive == 0 &&
- level.native_em_level->ply[2]->alive == 0 &&
- level.native_em_level->ply[3]->alive == 0) // all dead
+ if (game_em.game_over) // game lost
AllPlayersGone = TRUE;
}
else if (level.game_engine_type == GAME_ENGINE_TYPE_SP)
AllPlayersGone = TRUE;
}
else if (level.game_engine_type == GAME_ENGINE_TYPE_SP)
@@
-15041,7
+15039,7
@@
boolean checkGameFailed(void)
return FALSE;
if (level.game_engine_type == GAME_ENGINE_TYPE_EM)
return FALSE;
if (level.game_engine_type == GAME_ENGINE_TYPE_EM)
- return (
level.native_em_level->lev->home > 0
);
+ return (
game_em.game_over && !game_em.level_solved
);
else if (level.game_engine_type == GAME_ENGINE_TYPE_SP)
return (game_sp.game_over && !game_sp.level_solved);
else if (level.game_engine_type == GAME_ENGINE_TYPE_MM)
else if (level.game_engine_type == GAME_ENGINE_TYPE_SP)
return (game_sp.game_over && !game_sp.level_solved);
else if (level.game_engine_type == GAME_ENGINE_TYPE_MM)