Make the promotion zone always 3 deep in Elven Chess
authorH.G.Muller <hgm@hgm-xboard.(none)>
Fri, 31 Oct 2014 22:46:13 +0000 (23:46 +0100)
committerH.G.Muller <hgm@hgm-xboard.(none)>
Thu, 7 May 2015 18:53:31 +0000 (20:53 +0200)
The promotion zone in Eleven Chess was treated as in Shogi, and set
to the board height divided by 3. It is better to always make it 3.
This only makes a difference when the boardHeight is overruled,
but Elven Chess is a very useful parent variant when a 3-deep promotion
zone is needed. (Makruk would only allow promotion to Ferz, and Grand
Chess would need holdings and allow only promotion to captured pieces.)

backend.c

index 857dcca..cb564b4 100644 (file)
--- a/backend.c
+++ b/backend.c
@@ -6551,7 +6551,7 @@ HasPromotionChoice (int fromX, int fromY, int toX, int toY, char *promoChoice, i
         int p = piece >= BlackPawn ? BLACK_TO_WHITE piece : piece;
         promotionZoneSize = BOARD_HEIGHT/3;
         highestPromotingPiece = (p >= WhiteLion || PieceToChar(piece + 22) == '.') ? WhitePawn : WhiteLion;
         int p = piece >= BlackPawn ? BLACK_TO_WHITE piece : piece;
         promotionZoneSize = BOARD_HEIGHT/3;
         highestPromotingPiece = (p >= WhiteLion || PieceToChar(piece + 22) == '.') ? WhitePawn : WhiteLion;
-    } else if(gameInfo.variant == VariantShogi || gameInfo.variant == VariantChuChess) {
+    } else if(gameInfo.variant == VariantShogi) {
         promotionZoneSize = BOARD_HEIGHT/3;
         highestPromotingPiece = (int)WhiteAlfil;
     } else if(gameInfo.variant == VariantMakruk || gameInfo.variant == VariantGrand || gameInfo.variant == VariantChuChess) {
         promotionZoneSize = BOARD_HEIGHT/3;
         highestPromotingPiece = (int)WhiteAlfil;
     } else if(gameInfo.variant == VariantMakruk || gameInfo.variant == VariantGrand || gameInfo.variant == VariantChuChess) {