fixed delay for setting "game over" state for native Supaplex engine
[rocksndiamonds.git] / src / game_sp / MainGameLoop.c
index dcbe62f436d7099265482f686d6423a6b95d99c6..39580a30f6ea5f81dbf22eccef16657f2850ca4c 100644 (file)
@@ -25,7 +25,7 @@ void subMainGameLoop_Init(void)
   RedDiskReleasePhase = 0; // (re-)enable red disk release
 }
 
-void subMainGameLoop_Main(byte action, boolean warp_mode)
+void subMainGameLoop_Main(byte action)
 {
   // ---------------------------------------------------------------------------
   // --------------------- START OF GAME-BUSY LOOP -----------------------------
@@ -66,6 +66,10 @@ void subMainGameLoop_Main(byte action, boolean warp_mode)
   // ---------------------- END OF GAME-BUSY LOOP ------------------------------
   // ---------------------------------------------------------------------------
 
+  // if the game is not won when reaching this point, then it is lost
+  if (!game_sp.level_solved)
+    game_sp.game_over = TRUE;
+
   LeadOutCounter = LeadOutCounter - 1;         // do more lead-out after quit
 
   if (LeadOutCounter != 0)                     // lead-out not ready: more
@@ -73,17 +77,13 @@ void subMainGameLoop_Main(byte action, boolean warp_mode)
 
   // lead-out done: exit now
   // ---------------------- END OF GAME-BUSY LOOP (including lead-out) ---------
-
-  /* if the game is not won when reaching this point, then it is lost */
-  if (!game_sp.LevelSolved)
-    game_sp.GameOver = TRUE;
 }
 
 void subCalculateScreenScrollPos(void)
 {
   int jump_pos = TILEX / 2;
 
-  /* handle wrap-around */
+  // handle wrap-around
   if (MurphyScreenXPos < -jump_pos)
   {
     MurphyScreenXPos = FieldWidth * TILEX + MurphyScreenXPos;
@@ -99,7 +99,7 @@ void subCalculateScreenScrollPos(void)
   {
     subGetRandomNumber();
 
-    // printf("::: ExplosionShake [%d]\n", FrameCounter);
+    // Debug("game:playing:SP", "ExplosionShake [%d]", FrameCounter);
   }
 
   ScreenScrollXPos = MurphyScreenXPos - (SCR_FIELDX / 2) * TILESIZE;