Fix sweep promotions for Lance on deeper zones
authorH.G.Muller <hgm@hgm-xboard.(none)>
Mon, 3 Nov 2014 20:51:46 +0000 (21:51 +0100)
committerH.G.Muller <hgm@hgm-xboard.(none)>
Thu, 7 May 2015 18:53:31 +0000 (20:53 +0200)
Unlike Pawns, Lances always assumed a zone depth of 1 in deciding on
activating sweep promotion. (Because they did not naturally occur in
any variant that had a deeper zone.)

backend.c

index 552935e..bdafe3d 100644 (file)
--- a/backend.c
+++ b/backend.c
@@ -7323,8 +7323,8 @@ CanPromote (ChessSquare piece, int y)
          gameInfo.variant == VariantMakruk   || gameInfo.variant == VariantASEAN) return FALSE;
        return (piece == BlackPawn && y <= zone ||
                piece == WhitePawn && y >= BOARD_HEIGHT-1-zone ||
          gameInfo.variant == VariantMakruk   || gameInfo.variant == VariantASEAN) return FALSE;
        return (piece == BlackPawn && y <= zone ||
                piece == WhitePawn && y >= BOARD_HEIGHT-1-zone ||
-               piece == BlackLance && y == 1 ||
-               piece == WhiteLance && y == BOARD_HEIGHT-2 );
+               piece == BlackLance && y <= zone ||
+               piece == WhiteLance && y >= BOARD_HEIGHT-1-zone );
 }
 
 void
 }
 
 void