X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=gnushogi%2Fbook.c;h=547f3fd8f5e0e7292edb15c3e822236379445a31;hb=7e806d3c2cba049e315b13e64cadfa309c734ba5;hp=cadefa3a63804726bb1411d5ec82d528b36b7b1d;hpb=82b026e6376b640a4d3409a461dd6bd83708e33e;p=gnushogi.git diff --git a/gnushogi/book.c b/gnushogi/book.c index cadefa3..547f3fd 100644 --- a/gnushogi/book.c +++ b/gnushogi/book.c @@ -2,11 +2,15 @@ * FILE: book.c * * ---------------------------------------------------------------------- - * - * Copyright (c) 2012 Free Software Foundation + * Copyright (c) 1993, 1994, 1995 Matthias Mutz + * Copyright (c) 1999 Michael Vanier and the Free Software Foundation + * Copyright (c) 2008, 2013, 2014 Yann Dirson 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 @@ -113,8 +117,8 @@ Balgbr(short f, short t, short flag) short piece = flag & pmask; bmvstr[0][0] = pxx[piece]; bmvstr[0][1] = '*'; - bmvstr[0][2] = cxx[column(t)]; - bmvstr[0][3] = rxx[row(t)]; + bmvstr[0][2] = COL_NAME(column(t)); + bmvstr[0][3] = ROW_NAME(row(t)); bmvstr[0][4] = bmvstr[2][0] = '\0'; strcpy(bmvstr[1], bmvstr[0]); bmvstr[1][1] = '\''; @@ -126,10 +130,10 @@ Balgbr(short f, short t, short flag) /* algebraic notation */ /* bmvstr[0]: 7g7f bmvstr[1]: * (+)P7g7f(+) bmvstr[2]: (+)P7f(+) */ - bmvstr[0][0] = cxx[column(f)]; - bmvstr[0][1] = rxx[row(f)]; - bmvstr[0][2] = cxx[column(t)]; - bmvstr[0][3] = rxx[row(t)]; + bmvstr[0][0] = COL_NAME(column(f)); + bmvstr[0][1] = ROW_NAME(row(f)); + bmvstr[0][2] = COL_NAME(column(t)); + bmvstr[0][3] = ROW_NAME(row(t)); bmvstr[0][4] = '\0'; if (promoted) @@ -289,9 +293,7 @@ BVerifyMove(char *s, unsigned short *mv, int moveno) UnmakeMove(opponent, &xnode, &tempb, &tempc, &tempsf, &tempst); /* Illegal move in check */ #if !defined QUIETBOOKGEN - /* 077: "Illegal move (in check) %s" */ - printf(CP[77]); - printf("\n"); + puts("Illegal move (in check): %s"); bkdisplay(s, cnt, moveno); #endif return false; @@ -311,8 +313,7 @@ BVerifyMove(char *s, unsigned short *mv, int moveno) /* Illegal move */ #if !defined QUIETBOOKGEN - /* 075: "Illegal move (no match)%s\n" */ - printf(CP[75], s); + printf("Illegal move (no match): %s\n", s); bkdisplay(s, cnt, moveno); #endif return false; @@ -333,10 +334,12 @@ 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; @@ -365,7 +368,7 @@ RESET(void) static int -Vparse (FILE * fd, USHORT *mv, USHORT *flags, USHORT side, int moveno) +Vparse (FILE * fd, USHORT *mv, USHORT *flags, int moveno) { int c, i; char s[255]; @@ -646,7 +649,7 @@ GetOpenings(void) { short i; int mustwrite = false, first; - unsigned short xside, side; + unsigned short side; short c; USHORT mv, flags; unsigned int x; @@ -715,11 +718,10 @@ GetOpenings(void) { /* setvbuf(fd, buffr, _IOFBF, 2048); */ side = black; - xside = white; hashbd = hashkey = 0; i = 0; - while ((c = Vparse(fd, &mv, &flags, side, i)) >= 0) + while ((c = Vparse(fd, &mv, &flags, i)) >= 0) { if (c == 1) { @@ -821,7 +823,6 @@ GetOpenings(void) computer = opponent; opponent = computer ^ 1; - xside = side; side = side ^ 1; } else if (i > 0) @@ -832,8 +833,6 @@ GetOpenings(void) RESET(); i = 0; side = black; - xside = white; - } } @@ -875,9 +874,8 @@ GetOpenings(void) } - /* 213: "Book used %d(%d)." */ - sprintf(msg, CP[213], B.bookcount, B.booksize); - ShowMessage(msg); + sprintf(msg, "Book used %lu(%lu).", B.bookcount, B.booksize); + dsp->ShowMessage(msg); } /* Set everything back to start the game. */ @@ -887,8 +885,7 @@ GetOpenings(void) /* Now get ready to play .*/ if (!B.bookcount) { - /* 212: "Can't find book." */ - ShowMessage(CP[212]); + dsp->ShowMessage("Can't find book."); Book = 0; } } @@ -896,7 +893,7 @@ GetOpenings(void) /* - * OpeningBook(hint, side) + * OpeningBook(hint) * * Go through each of the opening lines of play and check for a match with * the current game listing. If a match occurs, generate a random @@ -908,7 +905,7 @@ GetOpenings(void) */ int -OpeningBook(unsigned short *hint, short side) +OpeningBook(unsigned short *hint) { unsigned short r, m; int possibles = TrPnt[2] - TrPnt[1];