X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame.c;h=7c70ae071aead691d63232a5006a07089ca0e0ac;hb=205e33df255a817dc1032696f065256a08aa61fa;hp=a88b3f04ec1a8525e904b45e13418c94580ea9c3;hpb=1e422c29292f0583391b0ce9e9c872b38f035ac0;p=rocksndiamonds.git diff --git a/src/game.c b/src/game.c index a88b3f04..7c70ae07 100644 --- a/src/game.c +++ b/src/game.c @@ -4354,11 +4354,27 @@ void InitGame() SBY_Lower = lev_fieldy - SCR_FIELDY + 1; } +#if NEW_TILESIZE + + if (lev_fieldx + (SBX_Left < 0 ? 2 : 0) <= SCR_FIELDX) + SBX_Left = SBX_Right = -1 * (SCR_FIELDX - lev_fieldx) / 2; + + if (lev_fieldy + (SBY_Upper < 0 ? 2 : 0) <= SCR_FIELDY) + SBY_Upper = SBY_Lower = -1 * (SCR_FIELDY - lev_fieldy) / 2; + + if (EVEN(SCR_FIELDX)) + SBX_Left--; + if (EVEN(SCR_FIELDY)) + SBY_Upper--; + +#else + if (lev_fieldx + (SBX_Left == -1 ? 2 : 0) <= SCR_FIELDX) SBX_Left = SBX_Right = -1 * (SCR_FIELDX - lev_fieldx) / 2; if (lev_fieldy + (SBY_Upper == -1 ? 2 : 0) <= SCR_FIELDY) SBY_Upper = SBY_Lower = -1 * (SCR_FIELDY - lev_fieldy) / 2; +#endif /* if local player not found, look for custom element that might create the player (make some assumptions about the right custom element) */ @@ -4469,6 +4485,8 @@ void InitGame() local_player->jy - MIDPOSY); } + printf("::: %d, %d (initial)\n", scroll_x, scroll_y); + #if 0 /* do not use PLAYING mask for fading out from main screen */ game_status = GAME_MODE_MAIN; @@ -4526,9 +4544,13 @@ void InitGame() if (game.timegate_time_left == 0) CloseAllOpenTimegates(); +#if NEW_TILESIZE + BlitScreenToBitmap(backbuffer); +#else /* blit playfield from scroll buffer to normal back buffer for fading in */ if (setup.soft_scrolling) BlitBitmap(fieldbuffer, backbuffer, FX, FY, SXSIZE, SYSIZE, SX, SY); +#endif redraw_mask |= REDRAW_FROM_BACKBUFFER; }