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
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