projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
moved flag for "game over" from player to game structure
[rocksndiamonds.git]
/
src
/
game.c
diff --git
a/src/game.c
b/src/game.c
index acba22e9b2f67838bbde1ba74c84b6bedf5fb9ab..2308c32b0e8bef612aeca72b5a9264c438c51fd2 100644
(file)
--- a/
src/game.c
+++ b/
src/game.c
@@
-3396,6
+3396,7
@@
void InitGame(void)
player->killed = FALSE;
player->reanimated = FALSE;
player->killed = FALSE;
player->reanimated = FALSE;
+ player->buried = FALSE;
player->action = 0;
player->effective_action = 0;
player->action = 0;
player->effective_action = 0;
@@
-3539,8
+3540,6
@@
void InitGame(void)
DigField(player, 0, 0, 0, 0, 0, 0, DF_NO_PUSH);
SnapField(player, 0, 0);
DigField(player, 0, 0, 0, 0, 0, 0, DF_NO_PUSH);
SnapField(player, 0, 0);
- player->GameOver = FALSE;
-
map_player_action[i] = i;
}
map_player_action[i] = i;
}
@@
-3568,6
+3567,7
@@
void InitGame(void)
AllPlayersGone = FALSE;
game.LevelSolved = FALSE;
AllPlayersGone = FALSE;
game.LevelSolved = FALSE;
+ game.GameOver = FALSE;
game.LevelSolved_GameWon = FALSE;
game.LevelSolved_GameEnd = FALSE;
game.LevelSolved_GameWon = FALSE;
game.LevelSolved_GameEnd = FALSE;
@@
-4464,8
+4464,7
@@
static void LevelSolved(void)
return;
game.LevelSolved = TRUE;
return;
game.LevelSolved = TRUE;
-
- local_player->GameOver = TRUE;
+ game.GameOver = TRUE;
local_player->score_final = (level.game_engine_type == GAME_ENGINE_TYPE_EM ?
level.native_em_level->lev->score :
local_player->score_final = (level.game_engine_type == GAME_ENGINE_TYPE_EM ?
level.native_em_level->lev->score :
@@
-5304,7
+5303,7
@@
static void RelocatePlayer(int jx, int jy, int el_player_raw)
int enter_side = enter_side_horiz | enter_side_vert;
int leave_side = leave_side_horiz | leave_side_vert;
int enter_side = enter_side_horiz | enter_side_vert;
int leave_side = leave_side_horiz | leave_side_vert;
- if (player->
GameOver)
// do not reanimate dead player
+ if (player->
buried)
// do not reanimate dead player
return;
if (!player_relocated) // no need to relocate the player
return;
if (!player_relocated) // no need to relocate the player
@@
-7951,7
+7950,7
@@
static void StartMoving(int x, int y)
game.friends_still_needed--;
if (!game.friends_still_needed &&
game.friends_still_needed--;
if (!game.friends_still_needed &&
- !
local_player->
GameOver && AllPlayersGone)
+ !
game.
GameOver && AllPlayersGone)
LevelSolved();
return;
LevelSolved();
return;
@@
-13404,8
+13403,10
@@
void BuryPlayer(struct PlayerInfo *player)
PlayLevelSoundElementAction(jx, jy, player->artwork_element, ACTION_DYING);
PlayLevelSound(jx, jy, SND_GAME_LOSING);
PlayLevelSoundElementAction(jx, jy, player->artwork_element, ACTION_DYING);
PlayLevelSound(jx, jy, SND_GAME_LOSING);
- player->GameOver = TRUE;
RemovePlayer(player);
RemovePlayer(player);
+
+ player->buried = TRUE;
+ game.GameOver = TRUE;
}
void RemovePlayer(struct PlayerInfo *player)
}
void RemovePlayer(struct PlayerInfo *player)
@@
-15045,7
+15046,7
@@
boolean checkGameFailed(void)
else if (level.game_engine_type == GAME_ENGINE_TYPE_MM)
return (game_mm.game_over && !game_mm.level_solved);
else // GAME_ENGINE_TYPE_RND
else if (level.game_engine_type == GAME_ENGINE_TYPE_MM)
return (game_mm.game_over && !game_mm.level_solved);
else // GAME_ENGINE_TYPE_RND
- return (
local_player->
GameOver && !game.LevelSolved);
+ return (
game.
GameOver && !game.LevelSolved);
}
boolean checkGameEnded(void)
}
boolean checkGameEnded(void)