rnd-20060816-2-src
[rocksndiamonds.git] / src / game_em / graphics.c
index deee45a380a905e09b93cb2f02609659b33edfa2..800ee03faaf8de2a6022b7f3cb5440c36492a99f 100644 (file)
@@ -912,7 +912,36 @@ void RedrawPlayfield_EM(boolean force_redraw)
                            sy - offset_y > screen_y ? sy - offset_y :
                            screen_y);
 
+#if 0
+  printf("::: (%d, %d) => (%d, %d) [(%d, %d), (%d, %d)] [%d, %d] [%d / %d]\n",
+        screen_x_old, screen_y_old,
+        screen_x, screen_y,
+        ply[max_center_distance_player_nr].oldx,
+        ply[max_center_distance_player_nr].x,
+        ply[max_center_distance_player_nr].oldy,
+        ply[max_center_distance_player_nr].y,
+        sx, sy,
+        ABS(screen_x - screen_x_old),
+        ABS(screen_y - screen_y_old));
+#endif
+
+#if 1
+
 #if 1
+  /* prevent scrolling further than double player step size when scrolling */
+  if (ABS(screen_x - screen_x_old) > 2 * stepsize)
+  {
+    int dx = SIGN(screen_x - screen_x_old);
+
+    screen_x = screen_x_old + dx * 2 * stepsize;
+  }
+  if (ABS(screen_y - screen_y_old) > 2 * stepsize)
+  {
+    int dy = SIGN(screen_y - screen_y_old);
+
+    screen_y = screen_y_old + dy * 2 * stepsize;
+  }
+#else
   /* prevent scrolling further than double player step size when scrolling */
   if (ABS(screen_x - screen_x_old) > 2 * stepsize ||
       ABS(screen_y - screen_y_old) > 2 * stepsize)
@@ -923,6 +952,8 @@ void RedrawPlayfield_EM(boolean force_redraw)
     screen_x = screen_x_old + dx * 2 * stepsize;
     screen_y = screen_y_old + dy * 2 * stepsize;
   }
+#endif
+
 #else
   /* prevent scrolling further than player step size when scrolling */
   if (ABS(screen_x - screen_x_old) > stepsize ||
@@ -997,11 +1028,13 @@ void RedrawPlayfield_EM(boolean force_redraw)
   for (i = 0; i < MAX_PLAYERS; i++)
     blitplayer(&ply[i]);
 
+#if 0
   SyncDisplay();
 
   blitscreen();
 
   FlushDisplay();
+#endif
 }
 
 void game_animscreen(void)