Fix default piece in Shogi promotions
authorH.G.Muller <hgm@hgm-xboard.(none)>
Tue, 2 Feb 2016 16:34:53 +0000 (17:34 +0100)
committerH.G.Muller <hgm@hgm-xboard.(none)>
Tue, 2 Feb 2016 16:34:53 +0000 (17:34 +0100)
In Shogi the default should be promotion, but it was using Queen like
the other variants. As the +/= issue was decided based on comparing this
default promotion piece with the moved piece, the Lance (which internally
is represented by Queen) would by default defer. Now the up-click of
a drag-drop move (which would bypass sweep selection) sets the default
choice to the promoted partner if the pieceToCharTable specifies one.

backend.c

index fd730e9..2ccc54d 100644 (file)
--- a/backend.c
+++ b/backend.c
@@ -7792,6 +7792,8 @@ LeftClick (ClickType clickType, int xPix, int yPix)
            ClearHighlights();
        }
 #endif
            ClearHighlights();
        }
 #endif
+       if(PieceToChar(CHUPROMOTED(boards[currentMove][fromY][fromX])) == '+')
+         defaultPromoChoice = CHUPROMOTED(boards[currentMove][fromY][fromX]);
        if(gameInfo.variant == VariantChuChess && piece != WhitePawn && piece != BlackPawn) defaultPromoChoice = piece;
        if(marker[y][x] == 5) { // [HGM] lion: this was the release of a to-click or drag on a cyan square
          dragging *= 2;            // flag button-less dragging if we are dragging
        if(gameInfo.variant == VariantChuChess && piece != WhitePawn && piece != BlackPawn) defaultPromoChoice = piece;
        if(marker[y][x] == 5) { // [HGM] lion: this was the release of a to-click or drag on a cyan square
          dragging *= 2;            // flag button-less dragging if we are dragging