From: Holger Schemel Date: Tue, 29 Aug 2006 17:56:27 +0000 (+0200) Subject: rnd-20060829-1-src X-Git-Tag: 3.2.2^2~1 X-Git-Url: https://git.artsoft.org/?a=commitdiff_plain;h=b0a3b9168089fad528ed1b838f8b2435af2ee46b;p=rocksndiamonds.git rnd-20060829-1-src * fixed bug with redrawing screen in fullscreen mode after quick tape reloading when using the EMC game engine --- diff --git a/ChangeLog b/ChangeLog index e1a10406..960d5063 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2006-08-29 + * fixed bug with redrawing screen in fullscreen mode after quick tape + reloading when using the EMC game engine + 2006-08-28 * fixed bug in GameWon() when level contains no exit (like in Sokoban) diff --git a/src/conftime.h b/src/conftime.h index 2d59984d..1009d8da 100644 --- a/src/conftime.h +++ b/src/conftime.h @@ -1 +1 @@ -#define COMPILE_DATE_STRING "[2006-08-28 22:47]" +#define COMPILE_DATE_STRING "[2006-08-29 19:52]" diff --git a/src/game.c b/src/game.c index 05a0b9ab..7eb62bb5 100644 --- a/src/game.c +++ b/src/game.c @@ -12586,9 +12586,12 @@ static void LoadEngineSnapshotValues_RND() printf("::: LOADING ... : %d RNDs\n", num_random_calls); #endif - InitRND(tape.random_seed); - for (i = 0; i < num_random_calls; i++) - RND(1); + if (level.game_engine_type == GAME_ENGINE_TYPE_RND) + { + InitRND(tape.random_seed); + for (i = 0; i < num_random_calls; i++) + RND(1); + } if (game.num_random_calls != num_random_calls) { diff --git a/src/tape.c b/src/tape.c index a7bd35ee..eb03967a 100644 --- a/src/tape.c +++ b/src/tape.c @@ -948,7 +948,7 @@ void TapeQuickLoad() if (game_status != GAME_MODE_PLAYING && game_status != GAME_MODE_MAIN) return; - if (1 && CheckEngineSnapshot()) + if (CheckEngineSnapshot()) { TapeStartGamePlaying(); diff --git a/src/tools.c b/src/tools.c index 23a25510..7a2fd3e2 100644 --- a/src/tools.c +++ b/src/tools.c @@ -138,7 +138,6 @@ void RedrawPlayfield(boolean force_redraw, int x, int y, int width, int height) level.game_engine_type == GAME_ENGINE_TYPE_EM) { /* currently there is no partial redraw -- always redraw whole playfield */ - RedrawPlayfield_EM(TRUE); /* blit playfield from scroll buffer to normal back buffer for fading in */ @@ -184,6 +183,14 @@ void RedrawPlayfield(boolean force_redraw, int x, int y, int width, int height) } } + if (force_redraw) + { + x = gfx.sx; + y = gfx.sy; + width = gfx.sxsize; + height = gfx.sysize; + } + BlitBitmap(drawto, window, x, y, width, height, x, y); }