- unsigned int i, x, y;
-
- /* !!! FIX THIS (CENTERED TO PLAYER 1) !!! */
- x = (frame * ply[0].oldx + (8 - frame) * ply[0].x) * TILEX / 8
- + ((SCR_FIELDX - 1) * TILEX) / 2;
- y = (frame * ply[0].oldy + (8 - frame) * ply[0].y) * TILEY / 8
- + ((SCR_FIELDY - 1) * TILEY) / 2;
-
- if (x > lev.width * TILEX)
- x = lev.width * TILEX;
- if (y > lev.height * TILEY)
- y = lev.height * TILEY;
-
- if (x < SCR_FIELDX * TILEX)
- x = SCR_FIELDX * TILEY;
- if (y < SCR_FIELDY * TILEY)
- y = SCR_FIELDY * TILEY;
-
- screen_x = x - (SCR_FIELDX - 1) * TILEX;
- screen_y = y - (SCR_FIELDY - 1) * TILEY;
+ int player_nr = 0; /* !!! FIX THIS (CENTERED TO PLAYER 1) !!! */
+ int sx = PLAYER_SCREEN_X(player_nr);
+ int sy = PLAYER_SCREEN_Y(player_nr);
+ int i;
+
+#if 1
+
+ int offset = (setup.scroll_delay ? 3 : 0) * TILEX;
+
+ /* calculate new screen scrolling position, with regard to scroll delay */
+ screen_x = VALID_SCREEN_X(sx < screen_x - offset ? sx + offset :
+ sx > screen_x + offset ? sx - offset : screen_x);
+ screen_y = VALID_SCREEN_Y(sy < screen_y - offset ? sy + offset :
+ sy > screen_y + offset ? sy - offset : screen_y);
+
+#else
+
+ if (sx > lev.width * TILEX)
+ sx = lev.width * TILEX;
+ if (sy > lev.height * TILEY)
+ sy = lev.height * TILEY;
+
+ if (sx < SCR_FIELDX * TILEX)
+ sx = SCR_FIELDX * TILEY;
+ if (sy < SCR_FIELDY * TILEY)
+ sy = SCR_FIELDY * TILEY;
+
+ screen_x = sx - (SCR_FIELDX - 1) * TILEX;
+ screen_y = sy - (SCR_FIELDY - 1) * TILEY;
+
+#endif