X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ftools.c;h=0650532c0cc8610ed6d5764646bff28d67828cb6;hb=843029e7c2253a35aa1b4ac87241978808b9e6fc;hp=e80cd9967eb6c6acfd8e603e3c3fe0e87bf7c6f2;hpb=52a2112f8746f773e78e3a98cda8476425e9961a;p=rocksndiamonds.git diff --git a/src/tools.c b/src/tools.c index e80cd996..0650532c 100644 --- a/src/tools.c +++ b/src/tools.c @@ -144,7 +144,17 @@ void RedrawPlayfield(boolean force_redraw, int x, int y, int width, int height) /* blit playfield from scroll buffer to normal back buffer for fading in */ BlitScreenToBitmap_EM(backbuffer); } - else if (game_status == GAME_MODE_PLAYING && !game.envelope_active) + else if (game_status == GAME_MODE_PLAYING && + level.game_engine_type == GAME_ENGINE_TYPE_SP) + { + /* currently there is no partial redraw -- always redraw whole playfield */ + RedrawPlayfield_SP(TRUE); + + /* blit playfield from scroll buffer to normal back buffer for fading in */ + BlitScreenToBitmap_SP(backbuffer); + } + else if (game_status == GAME_MODE_PLAYING && + !game.envelope_active) { if (force_redraw) { @@ -2811,9 +2821,13 @@ boolean Request(char *text, unsigned int req_state) } } - if (game_status == GAME_MODE_PLAYING && - level.game_engine_type == GAME_ENGINE_TYPE_EM) - BlitScreenToBitmap_EM(backbuffer); + if (game_status == GAME_MODE_PLAYING) + { + if (level.game_engine_type == GAME_ENGINE_TYPE_EM) + BlitScreenToBitmap_EM(backbuffer); + else if (level.game_engine_type == GAME_ENGINE_TYPE_SP) + BlitScreenToBitmap_SP(backbuffer); + } /* disable deactivated drawing when quick-loading level tape recording */ if (tape.playing && tape.deactivate_display) @@ -6044,6 +6058,8 @@ unsigned int InitRND(long seed) { if (level.game_engine_type == GAME_ENGINE_TYPE_EM) return InitEngineRandom_EM(seed); + else if (level.game_engine_type == GAME_ENGINE_TYPE_SP) + return InitEngineRandom_SP(seed); else return InitEngineRandom_RND(seed); }