fixed two bugs with broken sniksnak graphics in SP engine after warp mode
authorHolger Schemel <info@artsoft.org>
Thu, 15 Mar 2018 22:08:55 +0000 (23:08 +0100)
committerHolger Schemel <info@artsoft.org>
Thu, 15 Mar 2018 22:27:28 +0000 (23:27 +0100)
- the more serious of the two bugs was introduced with commit 727d3b5f
  * lots of non-existing sniksnaks may have been displayed after warp mode
- the second bug existed for a long time (maybe this was never done right)
  * some sniksnaks may have been displayed incompletely after warp mode
- this bug was fixed by forcing a complete playfield redraw after warp mode

src/game_sp/DDScrollBuffer.c

index 0992e0be2dba5b90e190c0bce50f5149e6d6f117..f580d3991dc1e5273f32eb49bfb3f99b406b6a60 100644 (file)
@@ -168,6 +168,17 @@ void UpdatePlayfield(boolean force_redraw)
   int num_redrawn = 0;
 #endif
 
+  if (force_redraw)
+  {
+    // force re-initialization of graphics status variables
+    for (y = DisplayMinY; y <= DisplayMaxY; y++)
+      for (x = DisplayMinX; x <= DisplayMaxX; x++)
+       GfxGraphic[x][y] = -1;
+
+    // force complete playfield redraw
+    DisplayLevel();
+  }
+
   for (y = DisplayMinY; y <= DisplayMaxY; y++)
   {
     for (x = DisplayMinX; x <= DisplayMaxX; x++)