From b0a3b9168089fad528ed1b838f8b2435af2ee46b Mon Sep 17 00:00:00 2001 From: Holger Schemel Date: Tue, 29 Aug 2006 19:56:27 +0200 Subject: [PATCH] rnd-20060829-1-src * fixed bug with redrawing screen in fullscreen mode after quick tape reloading when using the EMC game engine --- ChangeLog | 4 ++++ src/conftime.h | 2 +- src/game.c | 9 ++++++--- src/tape.c | 2 +- src/tools.c | 9 ++++++++- 5 files changed, 20 insertions(+), 6 deletions(-) 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); } -- 2.34.1