if (EVEN(SCR_FIELDX))
{
- int ffx = (scroll_x - SBX_Left) * TILEX_VAR + dx_var;
+ int sbx_right = SBX_Right + (BorderElement != EL_EMPTY ? 1 : 0);
+ int ffx = (scroll_x - SBX_Left) * TILEX_VAR + dx_var;
- if (ffx < SBX_Right * TILEX_VAR + TILEX_VAR / 2 + TILEX_VAR)
+ if (ffx < sbx_right * TILEX_VAR + TILEX_VAR / 2)
fx += dx_var - MIN(ffx, TILEX_VAR / 2) + TILEX_VAR;
else
fx += (dx_var > 0 ? TILEX_VAR : 0);
static int getFieldbufferOffsetY_RND(void)
{
int full_lev_fieldy = lev_fieldy + (BorderElement != EL_EMPTY ? 2 : 0);
- int dy = (ScreenMovDir & (MV_UP | MV_DOWN) ? ScreenGfxPos : 0);
+ int dy = (ScreenMovDir & (MV_UP | MV_DOWN) ? ScreenGfxPos : 0);
int dy_var = dy * TILESIZE_VAR / TILESIZE;
int fy = FY;
if (EVEN(SCR_FIELDY))
{
+ int sby_lower = SBY_Lower + (BorderElement != EL_EMPTY ? 1 : 0);
int ffy = (scroll_y - SBY_Upper) * TILEY_VAR + dy_var;
- if (ffy < SBY_Lower * TILEY_VAR + TILEY_VAR / 2 + TILEY_VAR)
+ if (ffy < sby_lower * TILEY_VAR + TILEY_VAR / 2)
fy += dy_var - MIN(ffy, TILEY_VAR / 2) + TILEY_VAR;
else
fy += (dy_var > 0 ? TILEY_VAR : 0);
if (game_status != GAME_MODE_MAIN)
return;
+ // do not draw preview players if level preview redefined, but players aren't
+ if (preview.redefined && !menu.main.preview_players.redefined)
+ return;
+
boolean player_found[MAX_PLAYERS];
int num_players = 0;
int i, x, y;
if (!network.connected && !force)
return;
+ // do not draw network players if level preview redefined, but players aren't
+ if (preview.redefined && !menu.main.network_players.redefined)
+ return;
+
int num_players = 0;
int i;