* Generate move strings in different formats.
*/
-void
+static void
Balgbr(short f, short t, short flag)
{
short promoted = false;
}
-
-
#ifndef QUIETBOOKGEN
-void
+static void
bkdisplay(char *s, int cnt, int moveno)
{
static short pnt;
}
#endif /* SEMIQUIETBOOKGEN */
}
-
#endif /* QUIETBOOKGEN */
-
/*
* BVerifyMove(s, mv, moveno)
*
* opponent. If a match is found, make the move on the board.
*/
-int
+static int
BVerifyMove(char *s, unsigned short *mv, int moveno)
{
static short pnt, tempb, tempc, tempsf, tempst, cnt;
}
-
-
/*
* RESET()
*
*
*/
-void
+static void
RESET(void)
{
short l;
- flag.illegal = flag.mate = flag.post = flag.quit
+ flag.illegal = flag.mate = flag.quit
= flag.reverse = flag.bothsides = flag.onemove = flag.force
= false;
+ flag.post &= xboard; /* [HGM] xboard: do not clear in XBoard mode */
+
flag.material = flag.coords = flag.hash = flag.easy
= flag.beep = flag.rcptr
= true;
}
-
-static
-int
+static int
Vparse (FILE * fd, USHORT *mv, USHORT *flags, int moveno)
{
int c, i;
#define MAXOFFSET(B) ((B.booksize - 1) * sizeof_gdxdata + sizeof_gdxadmin)
-#define HashOffset(hashkey, B) \
-{ \
- currentoffset = ((ULONG)hashkey % B.booksize) \
- * sizeof_gdxdata + sizeof_gdxadmin; \
+static void HashOffset(ULONG hashkey, struct gdxadmin *B)
+{
+ currentoffset = (hashkey % B->booksize) * sizeof_gdxdata + sizeof_gdxadmin;
}
-#define NextOffset(B) \
-{ \
- currentoffset += sizeof_gdxdata; \
- if (currentoffset > B.maxoffset) \
- currentoffset = sizeof_gdxadmin; \
+static void NextOffset(struct gdxadmin *B)
+{
+ currentoffset += sizeof_gdxdata;
+ if (currentoffset > B->maxoffset)
+ currentoffset = sizeof_gdxadmin;
}
-#define WriteAdmin() \
-{ \
- lseek(gfd, 0, 0); \
- write(gfd, (char *)&ADMIN, sizeof_gdxadmin); \
+static void WriteAdmin(void)
+{
+ lseek(gfd, 0, SEEK_SET);
+ write(gfd, (char *)&ADMIN, sizeof_gdxadmin);
}
-#define WriteData() \
-{ \
- if (mustwrite ) \
- { \
- lseek(gfd, currentoffset, 0); \
- write(gfd, (char *)&DATA, sizeof_gdxdata); \
- mustwrite = false; \
- } \
+static void WriteData(int *mustwrite)
+{
+ if (*mustwrite)
+ {
+ lseek(gfd, currentoffset, SEEK_SET);
+ write(gfd, (char *)&DATA, sizeof_gdxdata);
+ *mustwrite = false;
+ }
}
static int ReadAdmin(void)
{
- lseek(gfd, 0, 0);
+ lseek(gfd, 0, SEEK_SET);
return (sizeof_gdxadmin == read(gfd, (char *)&ADMIN, sizeof_gdxadmin));
}
static int ReadData(struct gdxdata *DATA)
{
- lseek(gfd, currentoffset, 0);
+ lseek(gfd, currentoffset, SEEK_SET);
return (sizeof_gdxdata == read(gfd, (char *)DATA, sizeof_gdxdata));
}
* exist from some other opening.
*/
- WriteData();
- HashOffset(bhashkey, B);
+ WriteData(&mustwrite);
+ HashOffset(bhashkey, &B);
first = true;
while (true)
{
DATA.flags &= (~LASTMOVE);
mustwrite = true;
- WriteData();
+ WriteData(&mustwrite);
}
}
}
- NextOffset(B);
+ NextOffset(&B);
first = false;
}
{
/* reset for next opening */
games++;
- WriteData();
+ WriteData(&mustwrite);
RESET();
i = 0;
side = black;
}
}
- WriteData();
+ WriteData(&mustwrite);
fclose(fd);
/* write admin rec with counts */
ADMIN.bookcount = B.bookcount;
}
-
/*
* OpeningBook(hint)
*
}
x = 0;
- HashOffset(hashkey, B);
+ HashOffset(hashkey, &B);
#ifdef BOOKTEST
printf("looking for book move, bhashbd = 0x%lx bhashkey = 0x%x\n",
(ULONG)hashbd, HashValue(hashkey));
break;
}
- NextOffset(B);
+ NextOffset(&B);
}
#ifdef BOOKTEST
Book--;
return false;
}
-
-
-