fixed fading in game screen before playing for Mirror Magic game engine
[rocksndiamonds.git] / src / game_mm / mm_game.c
index 6b8d02aeba340cbae2f6c72d414747dc6904344f..b88499a552473031cd8d459dfac73dffbef9384e 100644 (file)
@@ -349,6 +349,10 @@ void InitGameEngine_MM()
 #endif
 
   DrawLevel_MM();
+}
+
+void InitGameEngine_MM_AfterFadingIn()
+{
   InitCycleElements();
   InitLaser();
 
@@ -2131,6 +2135,7 @@ static void Explode_MM(int x, int y, int phase, int mode)
       Store[x][y] = EL_EMPTY;
     }
 
+    Feld[x][y] = Store[x][y];
     Store[x][y] = Store2[x][y] = 0;
     MovDir[x][y] = MovPos[x][y] = MovDelay[x][y] = 0;
     InitField(x, y, FALSE);
@@ -2680,7 +2685,7 @@ void ColorCycling(void)
   }
 }
 
-void GameActions_MM(byte action[MAX_PLAYERS], boolean warp_mode)
+static void GameActions_MM_Ext(byte action[MAX_PLAYERS], boolean warp_mode)
 {
   static unsigned int action_delay = 0;
   static unsigned int pacman_delay = 0;
@@ -3356,6 +3361,14 @@ void GameActions_MM(byte action[MAX_PLAYERS], boolean warp_mode)
   return;
 }
 
+void GameActions_MM(byte action[MAX_PLAYERS], boolean warp_mode)
+{
+  if (!button_status)
+    ClickElement(0, 0, MB_NOT_PRESSED);
+
+  GameActions_MM_Ext(action, warp_mode);
+}
+
 void MovePacMen()
 {
   static int p = -1;