X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=moves.c;h=7ffe59df8517cb72390671185ed9cfc713c1c1c5;hb=e6e38912837a4fe2464356408d10dee950b3121c;hp=52b609c0899c596b770fa3a730bd84358fea8479;hpb=829031aa78f85ced458ab253cdae852e01c751f2;p=xboard.git diff --git a/moves.c b/moves.c index 52b609c..7ffe59d 100644 --- a/moves.c +++ b/moves.c @@ -5,7 +5,7 @@ * Massachusetts. * * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006, - * 2007, 2008, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc. + * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc. * * Enhancements Copyright 2005 Alessandro Scotti * @@ -1224,6 +1224,7 @@ GenLegal (Board board, int flags, MoveCallback callback, VOIDSTAR closure, Ches if(ff <= BOARD_LEFT+2) { left = ff+1; right = BOARD_LEFT+3; } for(k=left; k<=right && ft != NoRights; k++) /* first test if blocked */ if(k != ft && board[0][k] != EmptySquare) ft = NoRights; + if(ft == 0 && ff != 1 && board[0][1] != EmptySquare) ft = NoRights; /* Rook can be blocked on b1 */ if(ff > BOARD_LEFT+2) for(k=left+1; k<=right && ft != NoRights; k++) /* then if not checked */ if(!ignoreCheck && CheckTest(board, flags, 0, ff, 0, k, FALSE)) ft = NoRights; @@ -1250,6 +1251,7 @@ GenLegal (Board board, int flags, MoveCallback callback, VOIDSTAR closure, Ches if(ff <= BOARD_LEFT+2) { left = ff+1; right = BOARD_LEFT+3; } for(k=left; k<=right && ft != NoRights; k++) /* first test if blocked */ if(k != ft && board[BOARD_HEIGHT-1][k] != EmptySquare) ft = NoRights; + if(ft == 0 && ff != 1 && board[BOARD_HEIGHT-1][1] != EmptySquare) ft = NoRights; /* Rook can be blocked on b8 */ if(ff > BOARD_LEFT+2) for(k=left+1; k<=right && ft != NoRights; k++) /* then if not checked */ if(!ignoreCheck && CheckTest(board, flags, BOARD_HEIGHT-1, ff, BOARD_HEIGHT-1, k, FALSE)) ft = NoRights;