rnd-20060829-1-src
authorHolger Schemel <info@artsoft.org>
Tue, 29 Aug 2006 17:56:27 +0000 (19:56 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:53:09 +0000 (10:53 +0200)
* fixed bug with redrawing screen in fullscreen mode after quick tape
  reloading when using the EMC game engine

ChangeLog
src/conftime.h
src/game.c
src/tape.c
src/tools.c

index e1a10406edd14937680342a2f9b32d29694e00fb..960d506361e8c330e1af171874e3afa93cfce053 100644 (file)
--- 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)
 
index 2d59984d3c07ce02bc76ac69d318d4b96f865535..1009d8da8ce0c1887851b0429878e850b7c50fff 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "[2006-08-28 22:47]"
+#define COMPILE_DATE_STRING "[2006-08-29 19:52]"
index 05a0b9ab5f7a5ef41e25f6ba7e9465ffef91e2a7..7eb62bb5e561e858081b24affaa96ea72dec3edc 100644 (file)
@@ -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)
   {
index a7bd35ee2f94196452216d1adcd08749b5119e5e..eb03967adfc04a84e5e34e5c2bd0999781632911 100644 (file)
@@ -948,7 +948,7 @@ void TapeQuickLoad()
   if (game_status != GAME_MODE_PLAYING && game_status != GAME_MODE_MAIN)
     return;
 
-  if (1 && CheckEngineSnapshot())
+  if (CheckEngineSnapshot())
   {
     TapeStartGamePlaying();
 
index 23a255108812d00a7028e4d171f69cc6f408bdd7..7a2fd3e29793c249ffe6c43a5c4fc5dd527edb38 100644 (file)
@@ -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);
 }