X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Ftools.c;h=1f857f6bc095190c1d27eff371dd68a85bb66d41;hb=2d235297197dd0c325184f7fc401d9c5c41c2616;hp=4771915a3cd1f80994ae209bab94664daa956294;hpb=341dd8cb9d8d33191f3eeda7eba45f02418d2819;p=rocksndiamonds.git diff --git a/src/tools.c b/src/tools.c index 4771915a..1f857f6b 100644 --- a/src/tools.c +++ b/src/tools.c @@ -123,6 +123,14 @@ void SetDrawtoField(int mode) void RedrawPlayfield(boolean force_redraw, int x, int y, int width, int height) { + if (game_status == GAME_MODE_PLAYING && + level.game_engine_type == GAME_ENGINE_TYPE_EM) + { + RedrawPlayfield_EM(); + + return; + } + if (game_status == GAME_MODE_PLAYING && !game.envelope_active) { if (force_redraw) @@ -2219,6 +2227,12 @@ boolean Request(char *text, unsigned int req_state) } } +#if 1 + if (game_status == GAME_MODE_PLAYING && + level.game_engine_type == GAME_ENGINE_TYPE_EM) + BlitScreenToBitmap_EM(backbuffer); +#endif + #if 1 /* disable deactivated drawing when quick-loading level tape recording */ if (tape.playing && tape.deactivate_display) @@ -5590,8 +5604,17 @@ int el2preimg(int element) int getGameFrameDelay_EM(int native_em_game_frame_delay) { - return (GameFrameDelay == GAME_FRAME_DELAY ? native_em_game_frame_delay : - GameFrameDelay); + int game_frame_delay_value; + + game_frame_delay_value = + (tape.playing && tape.fast_forward ? FfwdFrameDelay : + GameFrameDelay == GAME_FRAME_DELAY ? native_em_game_frame_delay : + GameFrameDelay); + + if (tape.playing && tape.warp_forward && !tape.pausing) + game_frame_delay_value = 0; + + return game_frame_delay_value; } unsigned int InitRND(long seed)