fixed bugs with missing re-initializations of delay counters in MM engine
[rocksndiamonds.git] / src / game_mm / mm_game.c
index 20e27068ffa641502bc60d230642c3fe62f10563..63e892c5eda19f7ad3f497aec8ee140ede460951 100644 (file)
@@ -644,8 +644,6 @@ void InitGameEngine_MM(void)
   game_mm.laser_green = FALSE;
   game_mm.laser_blue = TRUE;
 
-  game_mm.lightball_rnd = TRUE;
-
   game_mm.level_solved = FALSE;
   game_mm.game_over = FALSE;
   game_mm.game_over_cause = 0;
@@ -716,8 +714,6 @@ void InitGameActions_MM(void)
 
   InitLaser();
 
-  game_mm.lightball_rnd = FALSE;
-
   for (i = 0; i <= num_init_game_frames; i++)
   {
     if (i == num_init_game_frames)
@@ -753,8 +749,6 @@ void InitGameActions_MM(void)
 #endif
   }
 
-  game_mm.lightball_rnd = TRUE;
-
   ScanLaser();
 
   if (game_mm.kettles_still_needed == 0)
@@ -763,7 +757,11 @@ void InitGameActions_MM(void)
   SetTileCursorXY(laser.start_edge.x, laser.start_edge.y);
   SetTileCursorActive(TRUE);
 
+  // restart all delay counters after initially cycling game elements
+  ResetFrameCounter(&rotate_delay);
+  ResetFrameCounter(&pacman_delay);
   ResetFrameCounter(&energy_delay);
+  ResetFrameCounter(&overload_delay);
 }
 
 static void FadeOutLaser(void)