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];
extern void NewGame(void);
extern void GetOpenings(void);
extern int OpeningBook(unsigned short *hint);
+extern int AllocateTT(int size); /* init-common.c */
typedef enum
{
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);
extern int VerifyMove(char *s, VerifyMove_mode iop, unsigned short *mv);
extern unsigned short TTage;
+extern short movesLeft, currentMove;
/* display driver framework */