Make piece-type testable by bitmask
[gnushogi.git] / gnushogi / gnushogi.h
index 0e3e0de..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,
@@ -912,6 +939,7 @@ extern void Initialize_eval(void); /* eval.c */
 extern void NewGame(void);
 extern void GetOpenings(void);
 extern int  OpeningBook(unsigned short *hint);
+extern int  AllocateTT(int size); /* init-common.c */
 
 typedef enum
 {
@@ -1042,7 +1070,7 @@ extern void  UpdateWeights(short side);
 extern int   InitMain(void);
 extern void  ExitMain(void);
 extern void  Initialize(void);
-extern void  InputCommand(char *command);
+extern int   InputCommand(char *command, int root);
 extern void  ExitShogi(void);
 extern void  ClearScreen(void);
 extern void  SetTimeControl(void);
@@ -1116,6 +1144,7 @@ typedef enum
 
 extern int VerifyMove(char *s, VerifyMove_mode iop, unsigned short *mv);
 extern unsigned short TTage;
+extern short movesLeft, currentMove;
 
 /* display driver framework */