rnd-20040822-2-src
[rocksndiamonds.git] / src / game.c
index bf9b3892aa42200833396a0e620a41f2b41b3425..1d2396b025837c2238432b4b4c30261876cec9e3 100644 (file)
@@ -37,7 +37,7 @@
 #define USE_NEW_SP_SLIPPERY    TRUE    * USE_NEW_STUFF         * 1
 #define USE_NEW_RANDOMIZE      TRUE    * USE_NEW_STUFF         * 1
 
-#define USE_PUSH_BUGFIX                TRUE    * 1
+#define USE_PUSH_BUGFIX                TRUE    * USE_NEW_STUFF         * 1
 
 /* for DigField() */
 #define DF_NO_PUSH             0
@@ -1124,6 +1124,14 @@ void DrawGameDoorValues()
   DrawGameValue_Time(TimeLeft);
 }
 
+void DrawGameDoorValues_EM(int emeralds, int dynamite, int score, int time)
+{
+  DrawGameValue_Emeralds(emeralds);
+  DrawGameValue_Dynamite(dynamite);
+  DrawGameValue_Score(score);
+  DrawGameValue_Time(time);
+}
+
 static void resolve_group_element(int group_element, int recursion_depth)
 {
   static int group_nr;
@@ -2052,6 +2060,18 @@ void InitGame()
 
   CloseDoor(DOOR_CLOSE_1);
 
+#if 1
+
+  if (em_main_init_game(level_nr) != 0)
+  {
+    game_status = GAME_MODE_MAIN;
+    DrawMainMenu();
+
+    return;
+  }
+
+#else
+
   DrawLevel();
   DrawAllPlayers();
 
@@ -2065,6 +2085,8 @@ void InitGame()
   redraw_mask |= REDRAW_FROM_BACKBUFFER;
   FadeToFront();
 
+#endif
+
   /* copy default game door content to main double buffer */
   BlitBitmap(graphic_info[IMG_GLOBAL_DOOR].bitmap, drawto,
             DOOR_GFX_PAGEX5, DOOR_GFX_PAGEY1, DXSIZE, DYSIZE, DX, DY);
@@ -5145,7 +5167,13 @@ inline static void TurnRoundExt(int x, int y)
 
     MovDir[x][y] = new_move_dir;
     if (old_move_dir != new_move_dir)
+    {
+#if 1
+      MovDelay[x][y] = GET_NEW_MOVE_DELAY(element);
+#else
       MovDelay[x][y] = 9;
+#endif
+    }
   }
 }