king
};
+/* piece mask defines */
+enum {
+ T_PAWN = 1<<pawn,
+#ifndef MINISHOGI
+ T_LANCE = 1<<lance,
+ T_KNIGHT = 1<<knight,
+#endif
+ /* start of pieces that can be dropped at any square */
+ T_SILVER = 1<<silver,
+ T_GOLD = 1<<gold,
+ T_BISHOP = 1<<bishop,
+ T_ROOK = 1<<rook,
+ T_PPAWN = 1<<ppawn,
+#ifndef MINISHOGI
+ T_PLANCE = 1<<plance,
+ T_PKNIGHT = 1<<pknight,
+#endif
+ T_PSILVER = 1<<psilver,
+ T_PBISHOP = 1<<pbishop,
+ T_PROOK = 1<<prook,
+ T_KING = 1<<king
+#ifdef MINISHOGI
+ ,T_LANCE = 1<<king+1,
+ T_KNIGHT = 1<<king+2
+#endif
+};
+
/* move types */
enum {
ptype_no_piece = 0,
extern short TrPnt[];
extern small_short board[], color[];
extern const small_short sweep[NO_PIECES];
+extern const int typeMask[NO_PIECES];
extern small_short PieceList[2][NO_SQUARES], PawnCnt[2][NO_COLS];
extern small_short Captured[2][NO_PIECES];