Fixed bug in atomic patch that interfered with non-atomic variants
authorH.G. Muller <h.g.muller@hccnet.nl>
Sat, 13 Jun 2009 16:07:07 +0000 (09:07 -0700)
committerArun Persaud <arun@nubati.net>
Sat, 13 Jun 2009 16:07:07 +0000 (09:07 -0700)
winboard/winboard.c

index 7d8c272..49df8ee 100644 (file)
@@ -4481,7 +4481,14 @@ HDCDrawPosition(HDC hdc, BOOLEAN repaint, Board board)
       x2 = boardRect.left + animInfo.pos.x;\r
       y2 = boardRect.top + animInfo.pos.y;\r
       clips[num_clips++] = CreateRectRgn(MIN(x,x2), MIN(y,y2), MAX(x,x2)+squareSize, MAX(y,y2)+squareSize);\r
       x2 = boardRect.left + animInfo.pos.x;\r
       y2 = boardRect.top + animInfo.pos.y;\r
       clips[num_clips++] = CreateRectRgn(MIN(x,x2), MIN(y,y2), MAX(x,x2)+squareSize, MAX(y,y2)+squareSize);\r
-      /* [HGM] old location of "slight kludge" below */\r
+      /* Slight kludge.  The real problem is that after AnimateMove is\r
+        done, the position on the screen does not match lastDrawn.\r
+        This currently causes trouble only on e.p. captures in\r
+        atomic, where the piece moves to an empty square and then\r
+        explodes.  The old and new positions both had an empty square\r
+        at the destination, but animation has drawn a piece there and\r
+        we have to remember to erase it. [HGM] moved until after setting lastDrawn */\r
+      lastDrawn[animInfo.to.y][animInfo.to.x] = animInfo.piece;\r
     }\r
   }\r
 \r
     }\r
   }\r
 \r
@@ -4558,14 +4565,6 @@ HDCDrawPosition(HDC hdc, BOOLEAN repaint, Board board)
     DrawPieceOnDC(hdcmem, animInfo.piece,\r
                  ((int) animInfo.piece < (int) BlackPawn),\r
                   (animInfo.from.y + animInfo.from.x) % 2, x, y, tmphdc);\r
     DrawPieceOnDC(hdcmem, animInfo.piece,\r
                  ((int) animInfo.piece < (int) BlackPawn),\r
                   (animInfo.from.y + animInfo.from.x) % 2, x, y, tmphdc);\r
-      /* Slight kludge.  The real problem is that after AnimateMove is\r
-        done, the position on the screen does not match lastDrawn.\r
-        This currently causes trouble only on e.p. captures in\r
-        atomic, where the piece moves to an empty square and then\r
-        explodes.  The old and new positions both had an empty square\r
-        at the destination, but animation has drawn a piece there and\r
-        we have to remember to erase it. [HGM] moved until after setting lastDrawn */\r
-      lastDrawn[animInfo.to.y][animInfo.to.x] = animInfo.piece;\r
   }\r
 \r
   /* Release the bufferBitmap by selecting in the old bitmap \r
   }\r
 \r
   /* Release the bufferBitmap by selecting in the old bitmap \r