Fix multi-leg promotions
[xboard.git] / moves.h
diff --git a/moves.h b/moves.h
index bef3073..4a02a19 100644 (file)
--- a/moves.h
+++ b/moves.h
@@ -5,7 +5,8 @@
  * 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, 2015, 2016 Free
+ * Software Foundation, Inc.
  *
  * Enhancements Copyright 2005 Alessandro Scotti
  *
  *------------------------------------------------------------------------
  ** See the file ChangeLog for a revision history.  */
 
+#define SUFFIXES "'!"
+
 extern ChessSquare PromoPiece P((ChessMove moveType));
 extern ChessMove PromoCharToMoveType P((int whiteOnMove, int promoChar));
-extern char PieceToChar P((ChessSquare p));
+extern char PieceSuffix P((ChessSquare p));
 extern ChessSquare CharToPiece P((int c));
 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];
+extern unsigned char pieceToChar[(int)EmptySquare+1];
+extern unsigned char pieceNickName[(int)EmptySquare];
+extern int promoPartner[(int)EmptySquare];
+extern char *pieceDesc[(int)EmptySquare];
+extern Board initialPosition;
+extern Boolean pieceDefs;
 
 typedef void (*MoveCallback) P((Board board, int flags, ChessMove kind,
                                int rf, int ff, int rt, int ft,
@@ -81,6 +88,7 @@ typedef void (*MoveCallback) P((Board board, int flags, ChessMove kind,
                                   destroying your own king is illegal */
 #define F_FRC_TYPE_CASTLING 256 /* generate castlings as captures of own Rook */
 #define F_MANDATORY_CAPTURE 0x200
+#define F_NULL_MOVE         0x400
 
 /* Special epfile values. [HGM] positive values are non-reversible moves! */
 #define EP_NONE (-6)           /* [HGM] Tricky! order matters:            */
@@ -174,4 +182,4 @@ ChessMove CoordsToAlgebraic P((Board board, int flags,
                               int rf, int ff, int rt, int ft,
                               int promoChar, char out[MOVE_LEN]));
 
-extern int quickFlag, killX, killY;
+extern int quickFlag, killX, killY, kill2X, kill2Y, legNr;