X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=moves.h;h=5a7e9ae6eee034c87aab8d615142e09b64e5bee5;hb=1c03d229073e56dda9e5856db5adaae51576a3bb;hp=82c7482bab0789adaf0c637f12ce13d68c1f0f0a;hpb=f7e7dc832cce623d716a05b2be6c63c8cae541d7;p=xboard.git diff --git a/moves.h b/moves.h index 82c7482..5a7e9ae 100644 --- a/moves.h +++ b/moves.h @@ -5,7 +5,7 @@ * Massachusetts. * * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006, - * 2007, 2008, 2009, 2010 Free Software Foundation, Inc. + * 2007, 2008, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc. * * Enhancements Copyright 2005 Alessandro Scotti * @@ -60,6 +60,7 @@ extern int PieceToNumber P((ChessSquare p)); extern void CopyBoard P((Board to, Board from)); extern int CompareBoards P((Board board1, Board board2)); extern char pieceToChar[(int)EmptySquare+1]; +extern char pieceNickName[(int)EmptySquare]; typedef void (*MoveCallback) P((Board board, int flags, ChessMove kind, int rf, int ff, int rt, int ft, @@ -76,7 +77,7 @@ typedef void (*MoveCallback) P((Board board, int flags, ChessMove kind, #define F_IGNORE_CHECK 32 #define F_KRIEGSPIEL_CAPTURE 64 /* pawns can try to capture invisible pieces */ #define F_ATOMIC_CAPTURE 128 /* capturing piece explodes, destroying itself - and all non-pawns on adjacent squares; + and all non-pawns on adjacent squares; destroying your own king is illegal */ #define F_FRC_TYPE_CASTLING 256 /* generate castlings as captures of own Rook */ #define F_MANDATORY_CAPTURE 0x200 @@ -104,16 +105,16 @@ typedef void (*MoveCallback) P((Board board, int flags, ChessMove kind, Promotion moves generated are to Queen only. */ extern void GenPseudoLegal P((Board board, int flags, - MoveCallback callback, VOIDSTAR closure)); + MoveCallback callback, VOIDSTAR closure, ChessSquare filter)); -/* Like GenPseudoLegal, but include castling moves and (unless +/* Like GenPseudoLegal, but include castling moves and (unless F_IGNORE_CHECK is set in the flags) omit moves that would leave the king in check. The CASTLE_OK flags are true if castling is not yet ruled out by a move of the king or rook. Return TRUE if the player on move is currently in check and F_IGNORE_CHECK is not set. */ extern int GenLegal P((Board board, int flags, - MoveCallback callback, VOIDSTAR closure)); + MoveCallback callback, VOIDSTAR closure, ChessSquare filter)); /* If the player on move were to move from (rf, ff) to (rt, ft), would he leave himself in check? Or if rf == -1, is the player on move @@ -121,7 +122,7 @@ extern int GenLegal P((Board board, int flags, e.p. capture. The possibility of castling out of a check along the back rank is not accounted for (i.e., we still return nonzero), as this is illegal anyway. Return value is the number of times the - king is in check. */ + king is in check. */ extern int CheckTest P((Board board, int flags, int rf, int ff, int rt, int ft, int enPassant)); @@ -170,3 +171,5 @@ void Disambiguate P((Board board, int flags, DisambiguateClosure *closure)); ChessMove CoordsToAlgebraic P((Board board, int flags, int rf, int ff, int rt, int ft, int promoChar, char out[MOVE_LEN])); + +extern int quickFlag;