Remove excessive boilerplate duplication from dspwrappers.
[gnushogi.git] / gnushogi / gnushogi.h
index 0200d67..13dea78 100644 (file)
@@ -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
@@ -155,10 +158,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)
@@ -248,6 +253,7 @@ enum {
     king
 };
 
+/* move types */
 enum {
     ptype_no_piece = 0,
     ptype_pawn = 0,
@@ -851,14 +857,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 */