X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fgame.c;h=f359a2cbdfb406c6bf018873c7b14c5901397dfc;hp=eed459776345f33d6bc402864eb4ba6bf1a56c00;hb=4848f0bcd25bee8a7a4e48ae7d2a670bbc4e278d;hpb=856dbde29399ce97b14ad604569e1a95ce9545fd diff --git a/src/game.c b/src/game.c index eed45977..f359a2cb 100644 --- a/src/game.c +++ b/src/game.c @@ -11346,7 +11346,8 @@ static void GameActionsExt(void) if (game_status != GAME_MODE_PLAYING) return; - if (!network_player_action_received) + /* check if network player actions still missing and game still running */ + if (!network_player_action_received && !checkGameEnded()) return; /* failed to get network player actions in time */ /* do not yet reset "network_player_action_received" (for tape.pausing) */ @@ -11386,7 +11387,7 @@ static void GameActionsExt(void) stored_player[i].effective_action = stored_player[i].action; } - if (network_playing) + if (network_playing && !checkGameEnded()) SendToServer_MovePlayer(summarized_player_action); // summarize all actions at local players mapped input device position @@ -14937,7 +14938,10 @@ void RequestRestartGame(char *message) { game.restart_game_message = NULL; - if (Request(message, REQ_ASK | REQ_STAY_CLOSED)) + boolean has_started_game = hasStartedNetworkGame(); + int request_mode = (has_started_game ? REQ_ASK : REQ_CONFIRM); + + if (Request(message, request_mode | REQ_STAY_CLOSED) && has_started_game) { StartGameActions(network.enabled, setup.autorecord, level.random_seed); } @@ -14976,7 +14980,9 @@ void CheckGameOver(void) } if (last_game_over != game_over) - game.restart_game_message = "Game over! Play it again?"; + game.restart_game_message = (hasStartedNetworkGame() ? + "Game over! Play it again?" : + "Game over!"); last_game_over = game_over; }