X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fgame.c;h=12397d5c4f262cf5367957a8c78e32c06f37f081;hp=a780952b9749960b09146a81745a8dbf496be539;hb=99261bc36a147246e39cdc6d5ce9b098257c4d1b;hpb=c40a5c6109e586ce4049ca0900e5fb9c9ac60fb7;ds=sidebyside diff --git a/src/game.c b/src/game.c index a780952b..12397d5c 100644 --- 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.native_em_level->lev->home == 0) // all players at home + if (game_em.level_solved && + !game_em.game_over) // game won { 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) @@ -15041,7 +15039,7 @@ boolean checkGameFailed(void) 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)