X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=gnushogi%2Fgnushogi.h;h=39c07154f67d254f16b98b908292aa43e7b0abf3;hb=db669bbcd569f6ee2a8b0dafc307e8d3e52d0708;hp=423a8643e5a7ed043f230b02711c6e720503a18f;hpb=1aca00e04580e7b3effefa535edb469876ecce74;p=gnushogi.git
diff --git a/gnushogi/gnushogi.h b/gnushogi/gnushogi.h
index 423a864..39c0715 100644
--- a/gnushogi/gnushogi.h
+++ b/gnushogi/gnushogi.h
@@ -16,8 +16,8 @@
*
* GNU Shogi is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 1, or (at your option) any
- * later version.
+ * Free Software Foundation; either version 3 of the License,
+ * or (at your option) any later version.
*
* GNU Shogi is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
@@ -25,8 +25,8 @@
* for more details.
*
* You should have received a copy of the GNU General Public License along
- * with GNU Shogi; see the file COPYING. If not, write to the Free
- * Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * with GNU Shogi; see the file COPYING. If not, see
+ * .
* ----------------------------------------------------------------------
*
*/
@@ -39,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. */
@@ -47,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)
@@ -139,11 +145,6 @@ typedef unsigned long ULONG;
# endif
#endif
-#ifdef HAVE_SETLINEBUF
-/* Not necessarily included in */
-extern void setlinebuf(FILE *__stream);
-#endif
-
#define RWA_ACC "r+"
#define WA_ACC "w+"
#ifdef BINBOOK
@@ -163,10 +164,12 @@ 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)
@@ -238,39 +241,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 */
@@ -856,14 +863,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 */