X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=gnushogi%2Fcursesdsp.c;h=0deb2565f6e9d7a2370bfbf5c29cc90e09e0aaad;hb=3f589711eb3ecc7644378d6a0f2f29bc4b4c7db9;hp=d8d73914b904bd5425e0a7d604ee51b4563c1826;hpb=8ae7e7d1b257ef36d8a9fd1cd88807954ef10764;p=gnushogi.git diff --git a/gnushogi/cursesdsp.c b/gnushogi/cursesdsp.c index d8d7391..0deb256 100644 --- a/gnushogi/cursesdsp.c +++ b/gnushogi/cursesdsp.c @@ -14,24 +14,26 @@ * * This file is part of GNU SHOGI. * - * 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. + * 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 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 FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * GNU Shogi is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * 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. + * You should have received a copy of the GNU General Public License along + * with GNU Shogi; see the file COPYING. If not, see + * . + * ---------------------------------------------------------------------- */ #include #include +#include #include #include @@ -47,8 +49,8 @@ int mycnt1, mycnt2; #define TAB (58) -#define VIR_C(s) ((flag.reverse) ? (8 - column(s)) : column(s)) -#define VIR_R(s) ((flag.reverse) ? (8 - row(s)) : row(s)) +#define VIR_C(s) ((flag.reverse) ? (NO_COLS - 1 - column(s)) : column(s)) +#define VIR_R(s) ((flag.reverse) ? (NO_ROWS - 1 - row(s)) : row(s)) unsigned short MV[MAXDEPTH]; int MSCORE; @@ -57,7 +59,7 @@ char *DRAW; /* Forward declarations. */ /* FIXME: change this name, puh-leeze! */ -static void UpdateCatched(); +static void UpdateCatched(void); /**************************************** @@ -149,7 +151,38 @@ Curses_ShowMessage(char *s) void -ShowNodeCnt(long NodeCnt) +Curses_AlwaysShowMessage(const char *format, ...) +{ + static char buffer[60]; + va_list ap; + va_start(ap, format); + vsnprintf(buffer, sizeof(buffer), format, ap); + Curses_ShowMessage(buffer); + va_end(ap); +} + + +void +Curses_Printf(const char *format, ...) +{ + static char buffer[60]; + va_list ap; + va_start(ap, format); + vsnprintf(buffer, sizeof(buffer), format, ap); + printw("%s", buffer); + va_end(ap); +} + + +void +Curses_doRequestInputString(const char* fmt, char* buffer) +{ + FLUSH_SCANW(fmt, buffer); +} + + +void +Curses_ShowNodeCnt(long NodeCnt) { gotoXY(TAB, 22); /* printw(CP[90], NodeCnt, (et > 100) ? NodeCnt / (et / 100) : 0); */ @@ -164,7 +197,7 @@ Curses_ShowPatternCount(short side, short n) { if (flag.post) { - gotoXY(TAB + 10 + 3 * side, 20); + gotoXY(TAB + 10 + 3 * side, 20); /* CHECKME */ if (n >= 0) printw("%3d", n); @@ -177,9 +210,9 @@ Curses_ShowPatternCount(short side, short n) void ShowPlayers(void) { - gotoXY(5, ((flag.reverse) ? 23 : 2)); + gotoXY(5, ((flag.reverse) ? (5 + 2*NO_ROWS) : 2)); printw("%s", (computer == white) ? CP[218] : CP[74]); - gotoXY(5, ((flag.reverse) ? 2 : 23)); + gotoXY(5, ((flag.reverse) ? 2 : (5 + 2*NO_ROWS))); printw("%s", (computer == black) ? CP[218] : CP[74]); } @@ -500,8 +533,8 @@ Curses_EditBoard(void) } else { - c = '9' - s[1]; - r = 'i' - s[2]; + c = COL_NAME(s[1]); + r = ROW_NAME(s[2]); } if ((c >= 0) && (c < NO_COLS) && (r >= 0) && (r < NO_ROWS)) @@ -600,7 +633,7 @@ Curses_SearchStartStuff(short side) signal(SIGINT, Curses_TerminateSearch); signal(SIGQUIT, Curses_TerminateSearch); - for (i = 4; i < 14; i++) + for (i = 4; i < 14; i++) /* CHECKME */ { gotoXY(TAB, i); ClearEoln(); @@ -747,7 +780,7 @@ DrawPiece(short sq) y = pxx[(int)piece]; } - gotoXY(8 + 5 * VIR_C(sq), 4 + 2 * (8 - VIR_R(sq))); + gotoXY(8 + 5 * VIR_C(sq), 4 + 2 * ((NO_ROWS - 1) - VIR_R(sq))); printw("%c%c%c%c", l, p, y, r); } @@ -763,7 +796,7 @@ Curses_ShowPostnValue(short sq) { short score; - gotoXY(4 + 5 * VIR_C(sq), 5 + 2 * (7 - VIR_R(sq))); + gotoXY(4 + 5 * VIR_C(sq), 5 + 2 * (7 - VIR_R(sq))); /* CHECKME */ score = ScorePosition(color[sq]); if (color[sq] != neutral) @@ -809,6 +842,7 @@ void Curses_UpdateDisplay(short f, short t, short redraw, short isspec) { short i, sq, z; + int j; if (redraw) { @@ -818,31 +852,38 @@ Curses_UpdateDisplay(short f, short t, short redraw, short isspec) i = 2; gotoXY(3, ++i); - printw(" +----+----+----+----+----+----+----+----+----+"); + printw(" +"); + for (j=0; j