X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_bd%2Fmain_bd.c;h=6b3ba1043116ebfb468eccff1cb2b3c83f274adc;hb=ee1d57d74c4e4037fafb677953f8363489a263d0;hp=fcd2a23dd4287ecb768c202c33afceea142c77c8;hpb=459e3ba4589c247d389e315d1f501ee099a8a125;p=rocksndiamonds.git diff --git a/src/game_bd/main_bd.c b/src/game_bd/main_bd.c index fcd2a23d..6b3ba104 100644 --- a/src/game_bd/main_bd.c +++ b/src/game_bd/main_bd.c @@ -386,6 +386,19 @@ void GameActions_BD(byte action[MAX_PLAYERS]) play_game_func(game_bd.game, action[0]); + // scroll without iterating engine if player out of sight (mainly due to wrap-around) + // (this is needed to prevent broken tapes in case of viewport or tile size changes) + while (game_bd.game->out_of_window) + { + RedrawPlayfield_BD(TRUE); + + BlitScreenToBitmap_BD(backbuffer); + + BackToFront(); + + play_game_func(game_bd.game, action[0]); + } + RedrawPlayfield_BD(FALSE); UpdateGameDoorValues_BD(); @@ -396,6 +409,11 @@ void GameActions_BD(byte action[MAX_PLAYERS]) // graphics functions // ============================================================================ +Bitmap *GetTitleScreen_BD(void) +{ + return gd_get_title_screen_bitmap(); +} + void CoverScreen_BD(void) { game_bd.cover_screen = FALSE;