Merge branch 'maint' into HEAD
[gnushogi.git] / gnushogi / gnushogi.h
index 48408d7..7854113 100644 (file)
@@ -44,6 +44,8 @@
 #include "debug.h"
 #include "opts.h"          /* Various option-setting #defines.  */
 
+#include <stdarg.h>
+
 /*
  * Display options.
  */
@@ -58,14 +60,11 @@ typedef enum {
 extern display_t display_type;
 
 #define XSHOGI     (display_type == DISPLAY_X)
-#define NOT_CURSES ((display_type == DISPLAY_X) \
-  || (display_type == DISPLAY_RAW))
 
 
 /* Miscellaneous globals. */
 
 extern short hard_time_limit; /* If you exceed time limit, you lose.   */
-extern short barebones;       /* Don't print of stats for x interface. */
 extern short nolist;          /* Don't list game after exit.           */
 
 
@@ -171,12 +170,14 @@ extern void movealgbr(short m, char *s);
 #define NO_PTYPE_PIECES 11
 #define NO_COLS          5
 #define NO_ROWS          5
+#define NO_CAMP_ROWS     1
 #else
 #define NO_PIECES       15
 #define MAX_CAPTURED    19
 #define NO_PTYPE_PIECES 15
 #define NO_COLS          9
 #define NO_ROWS          9
+#define NO_CAMP_ROWS     3
 #endif
 #define NO_SQUARES      (NO_COLS*NO_ROWS)
 
@@ -231,13 +232,8 @@ extern void movealgbr(short m, char *s);
 
 
 /* board properties */
-#ifndef MINISHOGI
-#define InBlackCamp(sq) ((sq) < 27)
-#define InWhiteCamp(sq) ((sq) > 53)
-#else
-#define InBlackCamp(sq) ((sq) < 5)
-#define InWhiteCamp(sq) ((sq) > 19)
-#endif
+#define InBlackCamp(sq) ((sq) < (NO_COLS * NO_CAMP_ROWS))
+#define InWhiteCamp(sq) ((sq) >= (NO_COLS * (NO_ROWS - NO_CAMP_ROWS)))
 #define InPromotionZone(side, sq) \
 (((side) == black) ? InWhiteCamp(sq) : InBlackCamp(sq))
 
@@ -332,13 +328,9 @@ enum {
 #ifndef MINISHOGI
 #define pxx (" PLNSGBRPLNSBRK ")
 #define qxx (" plnsgbrplnsbrk ")
-#define rxx ("ihgfedcba")
-#define cxx ("987654321")
 #else
 #define pxx (" PSGBRPSBRK ")
 #define qxx (" psgbrpsbrk ")
-#define rxx ("edcba")
-#define cxx ("54321")
 #endif
 
 /***************** Table limits ********************************************/
@@ -685,8 +677,6 @@ extern long znodes;
 extern char ColorStr[2][10];
 
 extern char mvstr[4][6];
-extern unsigned short MV[MAXDEPTH];
-extern int MSCORE;
 extern int mycnt1, mycnt2;
 extern short ahead;
 extern struct leaf rootnode;
@@ -917,10 +907,8 @@ extern void Unlock_data(void);     /* init.c */
 extern void Initialize_dist(void); /* init.c */
 extern void Initialize_eval(void); /* eval.c */
 extern void NewGame(void);
-extern int  parse(FILE * fd, unsigned short *mv,
-                  short side, char *opening);
 extern void GetOpenings(void);
-extern int  OpeningBook(unsigned short *hint, short side);
+extern int  OpeningBook(unsigned short *hint);
 
 typedef enum
 {
@@ -967,7 +955,6 @@ PutInTTable(short side,
             short score,
             short depth,
             short ply,
-            short alpha,
             short beta,
             unsigned short mv);
 
@@ -1127,6 +1114,55 @@ typedef enum
 extern int VerifyMove(char *s, VerifyMove_mode iop, unsigned short *mv);
 extern unsigned short TTage;
 
-#include "dspwrappers.h"   /* Display functions. */
+/* display driver framework */
+
+struct display
+{
+    void (*ChangeAlphaWindow)(void);
+    void (*ChangeBetaWindow)(void);
+    void (*ChangeHashDepth)(void);
+    void (*ChangeSearchDepth)(char *sx);
+    void (*ChangeXwindow)(void);
+    void (*ClearScreen)(void);
+    void (*DoDebug)(void);
+    void (*DoTable)(short table[NO_SQUARES]);
+    void (*EditBoard)(void);
+    void (*ExitShogi)(void);
+    void (*GiveHint)(void);
+    void (*Initialize)(void);
+    void (*ShowNodeCnt)(long NodeCnt);
+    void (*OutputMove)(void);
+    void (*PollForInput)(void);
+    void (*SetContempt)(void);
+    void (*SearchStartStuff)(short side);
+    void (*SelectLevel)(char *sx);
+    void (*ShowCurrentMove)(short pnt, short f, short t);
+    void (*ShowDepth)(char ch);
+    void (*ShowGameType)(void);
+    void (*ShowLine)(unsigned short *bstline);
+    void (*ShowMessage)(char *s);
+    void (*AlwaysShowMessage)(const char *format, ...);
+    void (*Printf)(const char *format, ...);
+    void (*doRequestInputString)(const char* fmt, char* buffer);
+    int  (*GetString)(char* sx);
+    void (*SetupBoard)(void);
+    void (*ShowPatternCount)(short side, short n);
+    void (*ShowPostnValue)(short sq);
+    void (*ShowPostnValues)(void);
+    void (*ShowPrompt)(void);
+    void (*ShowResponseTime)(void);
+    void (*ShowResults)(short score, unsigned short *bstline, char ch);
+    void (*ShowSidetoMove)(void);
+    void (*ShowStage)(void);
+    void (*TerminateSearch)(int sig);
+    void (*UpdateClocks)(void);
+    void (*UpdateDisplay)(short f, short t, short redraw, short isspec);
+    void (*help)(void);
+};
+
+extern struct display *dsp;
+
+extern struct display raw_display;
+extern struct display curses_display;
 
 #endif /* _GNUSHOGI_H_ */