Make piece-type testable by bitmask
[gnushogi.git] / gnushogi / gnushogi.h
index d40c3ac..c993804 100644 (file)
@@ -281,6 +281,33 @@ enum {
     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,