X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=gnushogi%2Fgnushogi.h;h=322d32fd25eabd74d617327b4410165afd2f1a1d;hb=0b0fc4c9c805e95d883196b947217e23efb443c5;hp=7cd5a49a981d48d5f4bbeb5743e6ba2b3d7c3f5c;hpb=68c554411d120d163045f77a80ad9009f7a73841;p=gnushogi.git diff --git a/gnushogi/gnushogi.h b/gnushogi/gnushogi.h index 7cd5a49..322d32f 100644 --- a/gnushogi/gnushogi.h +++ b/gnushogi/gnushogi.h @@ -44,6 +44,8 @@ #include "debug.h" #include "opts.h" /* Various option-setting #defines. */ +#include + /* * Display options. */ @@ -58,15 +60,13 @@ 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. */ +extern short xboard; /* Use XBoard instead of xShogi protocol */ /* @@ -171,17 +171,21 @@ 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) #define ROW_NAME(n) ('a' + NO_ROWS - 1 - n) #define COL_NAME(n) ('1' + NO_COLS - 1 - n) +#define ROW_NUM(c) ('a' + NO_ROWS - 1 - c) +#define COL_NUM(c) ('1' + NO_COLS - 1 - c) #if defined HASHFILE || defined CACHE # define PTBLBDSIZE (NO_SQUARES + NO_PIECES) @@ -229,13 +233,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)) @@ -330,13 +329,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 ********************************************/ @@ -683,8 +678,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; @@ -915,10 +908,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 { @@ -965,7 +956,6 @@ PutInTTable(short side, short score, short depth, short ply, - short alpha, short beta, unsigned short mv); @@ -1125,6 +1115,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_ */