X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=gnushogi%2Fgnushogi.h;h=a244428c2a55682095957a537df539d6a5f82212;hb=1f6f420ff000a2f0f5bec0845da2fa51170573c9;hp=70bf95b563919a93bdc8ebbe800aa963720e5e63;hpb=82b026e6376b640a4d3409a461dd6bd83708e33e;p=gnushogi.git diff --git a/gnushogi/gnushogi.h b/gnushogi/gnushogi.h index 70bf95b..a244428 100644 --- a/gnushogi/gnushogi.h +++ b/gnushogi/gnushogi.h @@ -4,11 +4,14 @@ * Main header file for GNU Shogi. * * ---------------------------------------------------------------------- - * - * Copyright (c) 2012 Free Software Foundation + * Copyright (c) 1993, 1994, 1995 Matthias Mutz + * Copyright (c) 1999 Michael Vanier and the Free Software Foundation * * GNU SHOGI is based on GNU CHESS * + * Copyright (c) 1988, 1989, 1990 John Stanback + * Copyright (c) 1992 Free Software Foundation + * * This file is part of GNU SHOGI. * * GNU Shogi is free software; you can redistribute it and/or modify it @@ -36,7 +39,7 @@ #ifndef _GNUSHOGI_H_ #define _GNUSHOGI_H_ -#include "../config.h" /* Portability #defines. */ +#include "config.h" /* Portability #defines. */ #include "debug.h" #include "opts.h" /* Various option-setting #defines. */ @@ -44,7 +47,13 @@ * Display options. */ -typedef enum { DISPLAY_RAW, DISPLAY_CURSES, DISPLAY_X } display_t; +typedef enum { + DISPLAY_RAW, +#ifdef HAVE_LIBCURSES + DISPLAY_CURSES, +#endif + DISPLAY_X +} display_t; extern display_t display_type; #define XSHOGI (display_type == DISPLAY_X) @@ -155,16 +164,17 @@ extern void movealgbr(short m, char *s); #define NO_PIECES 15 #define MAX_CAPTURED 19 #define NO_PTYPE_PIECES 15 -#define NO_SQUARES 81 -#define NO_SQUARES_1 80 #define NO_COLS 9 #define NO_ROWS 9 +#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) #if defined HASHFILE || defined CACHE # define PTBLBDSIZE (NO_SQUARES + NO_PIECES) #endif -#include "dspwrappers.h" /* Display functions. */ #include "eval.h" #define SCORE_LIMIT 12000 @@ -230,39 +240,43 @@ extern void movealgbr(short m, char *s); #define neutral 2 /* piece code defines */ -/* CHECKME: Replace with an enum? */ -#define no_piece 0 -#define pawn 1 -#define lance 2 -#define knight 3 -#define silver 4 -#define gold 5 -#define bishop 6 -#define rook 7 -#define ppawn 8 -#define plance 9 -#define pknight 10 -#define psilver 11 -#define pbishop 12 -#define prook 13 -#define king 14 - -#define ptype_no_piece 0 -#define ptype_pawn 0 -#define ptype_lance 1 -#define ptype_knight 2 -#define ptype_silver 3 -#define ptype_gold 4 -#define ptype_bishop 5 -#define ptype_rook 6 -#define ptype_pbishop 7 -#define ptype_prook 8 -#define ptype_king 9 -#define ptype_wpawn 10 -#define ptype_wlance 11 -#define ptype_wknight 12 -#define ptype_wsilver 13 -#define ptype_wgold 14 +enum { + no_piece = 0, + pawn, + lance, + knight, + silver, + gold, + bishop, + rook, + ppawn, + plance, + pknight, + psilver, + pbishop, + prook, + king +}; + +/* move types */ +enum { + ptype_no_piece = 0, + ptype_pawn = 0, + ptype_lance, + ptype_knight, + ptype_silver, + ptype_gold, + ptype_bishop, + ptype_rook, + ptype_pbishop, + ptype_prook, + ptype_king, + ptype_wpawn, + ptype_wlance, + ptype_wknight, + ptype_wsilver, + ptype_wgold +}; /* node flags */ #define pmask 0x000f /* 15 */ @@ -848,14 +862,9 @@ extern struct hashentry *ttable[2]; extern short rpthash[2][256]; extern char *DRAW; -/* - * FIXME: these should be more generic instead of using the - * magic number 9. - */ - -#define row(a) ((a) / 9) -#define column(a) ((a) % 9) -#define locn(a, b) (((a) * 9) + b) +#define row(a) ((a) / NO_COLS) +#define column(a) ((a) % NO_COLS) +#define locn(a, b) (((a) * NO_COLS) + b) /* init external functions */ extern void InitConst(char *lang); /* init.c */ @@ -1021,7 +1030,6 @@ typedef enum #endif } ElapsedTime_mode; -extern void ElapsedTime(ElapsedTime_mode iop); extern void SetResponseTime(short side); extern void CheckForTimeout(int score, int globalscore, int Jscore, int zwndw); @@ -1032,7 +1040,6 @@ extern void SearchStartStuff(short side); extern void ShowDepth(char ch); extern void TerminateSearch(int); extern void ShowResults(short score, unsigned short *bstline, char ch); -extern void PromptForMove(void); extern void SetupBoard(void); extern void algbr(short f, short t, short flag); extern void OutputMove(void); @@ -1040,10 +1047,6 @@ extern void ShowCurrentMove(short pnt, short f, short t); extern void ListGame(void); extern void ShowMessage(char *s); extern void ClearScreen(void); -extern void gotoXY(short x, short y); -extern void ClearEoln(void); -extern void DrawPiece(short sq); -extern void UpdateClocks(void); extern void DoDebug(void); extern void DoTable(short table[NO_SQUARES]); extern void ShowPostnValues(void); @@ -1064,6 +1067,7 @@ extern void ShowLine(unsigned short *bstline); extern int pick(short p1, short p2); extern short repetition(void); extern void TimeCalc(void); +extern void ElapsedTime(ElapsedTime_mode iop); extern short DropPossible(short piece, short side, short sq); /* genmoves.c */ @@ -1081,4 +1085,6 @@ typedef enum extern int VerifyMove(char *s, VerifyMove_mode iop, unsigned short *mv); extern unsigned short TTage; +#include "dspwrappers.h" /* Display functions. */ + #endif /* _GNUSHOGI_H_ */