extern ChessMove PromoCharToMoveType P((int whiteOnMove, int promoChar));\r
extern char PieceToChar P((ChessSquare p));\r
extern ChessSquare CharToPiece P((int c));\r
+extern int PieceToNumber P((ChessSquare p));\r
\r
extern void CopyBoard P((Board to, Board from));\r
extern int CompareBoards P((Board board1, Board board2));\r
#define F_ATOMIC_CAPTURE 128 /* capturing piece explodes, destroying itself\r
and all non-pawns on adjacent squares; \r
destroying your own king is illegal */\r
+#define F_FRC_TYPE_CASTLING 256 /* generate castlings as captures of own Rook */\r
\r
/* Special epfile values. [HGM] positive values are non-reversible moves! */\r
#define EP_NONE (-4) /* [HGM] Tricky! order matters: */\r
#define EP_RULE_DRAW (-14)\r
#define EP_INSUF_DRAW (-13)\r
#define EP_DRAWS (-10)\r
+#define EP_BEROLIN_A 16 /* [HGM] berolina: add to file if pawn to be taken of a-side of e.p.file */\r
\r
/* Call callback once for each pseudo-legal move in the given\r
position, except castling moves. A move is pseudo-legal if it is\r