rnd-20070424-1-src
[rocksndiamonds.git] / src / game_em / graphics.c
index a55909afc7540958beaf1909c03a9932f39bf513..3ffdb105fac7762d855a2b81ca7640589d199b65 100644 (file)
@@ -27,7 +27,7 @@
                                  (8 - frame) * ply[p].y) * TILEY / 8   \
                                 - ((SCR_FIELDY - 1) * TILEY) / 2)
 
-#define USE_EXTENDED_GRAPHICS_ENGINE           0
+#define USE_EXTENDED_GRAPHICS_ENGINE           1
 
 int frame;                     /* current screen frame */
 int screen_x;                  /* current scroll position */
@@ -195,6 +195,12 @@ static void DrawLevelFieldCrumbled_EM(int x, int y, int sx, int sy,
 {
   int tile = Draw[y][x];
   struct GraphicInfo_EM *g = &graphic_info_em_object[tile][frame];
+
+#if USE_EXTENDED_GRAPHICS_ENGINE
+  getGraphicSourceObjectExt_EM(tile, frame, &g->bitmap, &g->src_x, &g->src_y,
+                              x - 2, y - 2);
+#endif
+
   int left = screen_x / TILEX;
   int top  = screen_y / TILEY;
   int i;
@@ -337,6 +343,12 @@ static void animscreen(void)
     { 0, +1 }
   };
 
+#if USE_EXTENDED_GRAPHICS_ENGINE
+  for (y = 2; y < EM_MAX_CAVE_HEIGHT - 2; y++)
+    for (x = 2; x < EM_MAX_CAVE_WIDTH - 2; x++)
+      SetGfxAnimation_EM(Draw[y][x], frame, x - 2, y - 2);
+#endif
+
   for (y = top; y < top + MAX_BUF_YSIZE; y++)
   {
     for (x = left; x < left + MAX_BUF_XSIZE; x++)
@@ -522,7 +534,7 @@ void DrawRelocatePlayer(struct PlayerInfo *player, boolean quick_relocation)
 
   if (quick_relocation)
   {
-    int offset = (setup.scroll_delay ? setup.scroll_delay_value : 0);
+    int offset = game.scroll_delay_value;
 
     if (!IN_VIS_FIELD(SCREENX(jx), SCREENY(jy)))
     {
@@ -726,7 +738,7 @@ void RedrawPlayfield_EM(boolean force_redraw)
   int player_nr = game_em.last_moving_player;
 #endif
   int stepsize = TILEX / 8;
-  int offset = (setup.scroll_delay ? setup.scroll_delay_value : 0) * TILEX;
+  int offset = game.scroll_delay_value * TILEX;
   int offset_x = offset;
   int offset_y = offset;
   int screen_x_old = screen_x;