Fix sweep promotions
authorH.G. Muller <h.g.muller@hccnet.nl>
Mon, 21 Oct 2013 20:38:53 +0000 (22:38 +0200)
committerH.G. Muller <h.g.muller@hccnet.nl>
Sun, 22 Dec 2013 22:32:08 +0000 (23:32 +0100)
We should not be able to select shogi-style promotion partners of
other pieces, as there is no promotion suffix to indicate them.

backend.c

index 39ec535..b1a20ff 100644 (file)
--- a/backend.c
+++ b/backend.c
@@ -5328,6 +5328,7 @@ Sweep (int step)
        else if(promoSweep == WhiteKing && step > 0) promoSweep = BlackKing;
        if(!step) step = -1;
     } while(PieceToChar(promoSweep) == '.' || PieceToChar(promoSweep) == '~' || promoSweep == pawn ||
+           !toggleFlag && PieceToChar(promoSweep) == '+' || // skip promoted versions of other
            appData.testLegality && (promoSweep == king || promoSweep == WhiteLion || promoSweep == BlackLion));
     if(toX >= 0) {
        int victim = boards[currentMove][toY][toX];