fixed bug with short delay in crumbling border elements around explosion
[rocksndiamonds.git] / src / game.c
index b7f8736a03a77ec1d932b44956ca14d871242477..a0b51c750a21cb252a697eb11db1e78492ecbaec 100644 (file)
@@ -5836,9 +5836,6 @@ static void Explode(int ex, int ey, int phase, int mode)
   int last_phase;
   int border_element;
 
-  // !!! eliminate this variable !!!
-  int delay = (game.emulation == EMU_SUPAPLEX ? 3 : 2);
-
   if (game.explosions_delayed)
   {
     ExplodeField[ex][ey] = mode;
@@ -6119,7 +6116,7 @@ static void Explode(int ex, int ey, int phase, int mode)
     int graphic = el_act2img(GfxElement[x][y], ACTION_EXPLODING);
     int frame = getGraphicAnimationFrameXY(graphic, x, y);
 
-    if (phase == delay)
+    if (phase == 1)
       TEST_DrawLevelFieldCrumbled(x, y);
 
     if (IS_WALKABLE_OVER(Back[x][y]) && Back[x][y] != EL_EMPTY)
@@ -15632,8 +15629,26 @@ void RequestQuitGame(boolean escape_key_pressed)
                     "Do you really want to quit the game?");
 }
 
-void RequestRestartGame(char *message)
+static char *getRestartGameMessage(void)
+{
+  boolean play_again = hasStartedNetworkGame();
+  static char message[MAX_OUTPUT_LINESIZE];
+  char *game_over_text = "Game over!";
+  char *play_again_text = " Play it again?";
+
+  if (level.game_engine_type == GAME_ENGINE_TYPE_MM &&
+      game_mm.game_over_message != NULL)
+    game_over_text = game_mm.game_over_message;
+
+  snprintf(message, MAX_OUTPUT_LINESIZE, "%s%s", game_over_text,
+          (play_again ? play_again_text : ""));
+
+  return message;
+}
+
+static void RequestRestartGame(void)
 {
+  char *message = getRestartGameMessage();
   boolean has_started_game = hasStartedNetworkGame();
   int request_mode = (has_started_game ? REQ_ASK : REQ_CONFIRM);
   int door_state = DOOR_CLOSE_1;
@@ -15658,23 +15673,6 @@ void RequestRestartGame(char *message)
   }
 }
 
-static char *getRestartGameMessage(void)
-{
-  boolean play_again = hasStartedNetworkGame();
-  static char message[MAX_OUTPUT_LINESIZE];
-  char *game_over_text = "Game over!";
-  char *play_again_text = " Play it again?";
-
-  if (level.game_engine_type == GAME_ENGINE_TYPE_MM &&
-      game_mm.game_over_message != NULL)
-    game_over_text = game_mm.game_over_message;
-
-  snprintf(message, MAX_OUTPUT_LINESIZE, "%s%s", game_over_text,
-          (play_again ? play_again_text : ""));
-
-  return message;
-}
-
 boolean CheckRestartGame(void)
 {
   static int game_over_delay = 0;
@@ -15710,7 +15708,7 @@ boolean CheckRestartGame(void)
   if (!setup.ask_on_game_over)
     return FALSE;
 
-  RequestRestartGame(getRestartGameMessage());
+  RequestRestartGame();
 
   return TRUE;
 }