int py = 2 * TILEY + (mScrollY - mScrollY_last) % TILEY;
int sx, sy, sxsize, sysize;
-#if 1
+#if 0
printf("::: %d, %d / %d, %d / %ld, %ld (%ld, %ld) / %d, %d\n",
MurphyScreenXPos, MurphyScreenYPos,
ScreenScrollXPos, ScreenScrollYPos,
sx = SX + (full_xsize < xsize ? (xsize - full_xsize) / 2 : 0);
sy = SY + (full_ysize < ysize ? (ysize - full_ysize) / 2 : 0);
+ /* scroll correction for even number of visible tiles (half tile shifted) */
+ px += game_sp.scroll_xoffset;
+ py += game_sp.scroll_yoffset;
+
#if 1
-#if 1
- {
- px += game_sp.scroll_xoffset;
- py += game_sp.scroll_yoffset;
- }
-#else
- if (1)
- {
- px += TILEX / 2;
- py += TILEY / 2;
- }
-#endif
-#else
-#if 1
- if (0 && !menBorder)
+ if (ExplosionShakeMurphy != 0)
{
- if (mScrollX < ScrollMinX + TILEX / 2)
- px += ScrollMinX + TILEX / 2 - mScrollX;
- else if (mScrollX > ScrollMaxX - TILEX / 2)
- px -= mScrollX - (ScrollMaxX - TILEX / 2);
- if (mScrollY < ScrollMinY + TILEY / 2)
- py += ScrollMinY + TILEY / 2 - mScrollY;
- else if (mScrollY > ScrollMaxY - TILEY / 2)
- py -= mScrollY - (ScrollMaxY - TILEY / 2);
+ px += TILEX / 2 - GetSimpleRandom(TILEX + 1);
+ py += TILEY / 2 - GetSimpleRandom(TILEX + 1);
}
-#else
- if (!menBorder)
- {
- px += TILEX / 2;
- py += TILEY / 2;
- }
-#endif
#endif
BlitBitmap(bitmap_db_field_sp, target_bitmap, px, py, sxsize, sysize, sx, sy);