X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fgame_bd%2Fmain_bd.c;h=a854786e3a868e429a3431f4c6c3cd6de4435c74;hb=8520e9b214c5feebde66b88b1304ab5ca8aa3274;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..a854786e 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();