projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixed closing doors simultaneously when aborting restart from level editor
[rocksndiamonds.git]
/
src
/
game.c
diff --git
a/src/game.c
b/src/game.c
index 8d713df727b83175c5b3a6a0f500fa1d0b76c632..643d36e5840230e1389bb7c911d79151726d70e2 100644
(file)
--- a/
src/game.c
+++ b/
src/game.c
@@
-13999,8
+13999,6
@@
void BuryPlayer(struct PlayerInfo *player)
PlayLevelSoundElementAction(jx, jy, player->artwork_element, ACTION_DYING);
PlayLevelSoundElementAction(jx, jy, player->artwork_element, ACTION_DYING);
- PlaySound(SND_GAME_LOSING);
-
RemovePlayer(player);
player->buried = TRUE;
RemovePlayer(player);
player->buried = TRUE;
@@
-15641,15
+15639,21
@@
void RequestRestartGame(char *message)
boolean has_started_game = hasStartedNetworkGame();
int request_mode = (has_started_game ? REQ_ASK : REQ_CONFIRM);
boolean has_started_game = hasStartedNetworkGame();
int request_mode = (has_started_game ? REQ_ASK : REQ_CONFIRM);
+ int door_state = DOOR_CLOSE_1;
- if (Request(message, request_mode | REQ_STAY_
CLOSED
) && has_started_game)
+ if (Request(message, request_mode | REQ_STAY_
OPEN
) && has_started_game)
{
{
+ CloseDoor(door_state);
+
StartGameActions(network.enabled, setup.autorecord, level.random_seed);
}
else
{
StartGameActions(network.enabled, setup.autorecord, level.random_seed);
}
else
{
- // needed in case of envelope request to close game panel
- CloseDoor(DOOR_CLOSE_1);
+ // if game was invoked from level editor, also close tape recorder door
+ if (level_editor_test_game)
+ door_state = DOOR_CLOSE_ALL;
+
+ CloseDoor(door_state);
SetGameStatus(GAME_MODE_MAIN);
SetGameStatus(GAME_MODE_MAIN);
@@
-15682,6
+15686,9
@@
void CheckGameOver(void)
if (game_over_delay > 0)
{
if (game_over_delay > 0)
{
+ if (game_over_delay == game_over_delay_value / 2)
+ PlaySound(SND_GAME_LOSING);
+
game_over_delay--;
return;
game_over_delay--;
return;