X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=gnushogi%2Fcursesdsp.c;h=98cec52182a623525eff2e17e2545400337c27bb;hb=1950330c6bfee3abf748a81d85afad03b7c768a4;hp=127f6b41e426b6acd376da10e94a5fcb508556ff;hpb=ff70bcfb13c2a38180a93d689baccd6828dfda90;p=gnushogi.git diff --git a/gnushogi/cursesdsp.c b/gnushogi/cursesdsp.c index 127f6b4..98cec52 100644 --- a/gnushogi/cursesdsp.c +++ b/gnushogi/cursesdsp.c @@ -64,6 +64,7 @@ int mycnt1, mycnt2; +#define MARGIN (5) #define TAB (58) #define VIR_C(s) ((flag.reverse) ? (NO_COLS - 1 - column(s)) : column(s)) @@ -466,11 +467,11 @@ Curses_EditBoard(void) Book = BOOKFAIL; Curses_ClearScreen(); Curses_UpdateDisplay(0, 0, 1, 0); - gotoXY(TAB, 3); + gotoXY(TAB, 11); printw(". Exit to main\n"); - gotoXY(TAB, 4); + gotoXY(TAB, 12); printw("# Clear board\n"); - gotoXY(TAB, 5); + gotoXY(TAB, 13); printw("c Change sides\n"); gotoXY(TAB, 7); printw("Enter piece & location: "); @@ -478,12 +479,13 @@ Curses_EditBoard(void) while(1) { - gotoXY(TAB, 6); + gotoXY(TAB, 4); printw("Editing: %s", ColorStr[a]); - gotoXY(TAB + 24, 7); + gotoXY(TAB + 2, 8); ClearEoln(); FLUSH_SCANW("%s", s); found = 0; + ClearMessage(); if (s[0] == '.') break; @@ -519,24 +521,26 @@ Curses_EditBoard(void) break; } } - + if (!found) + AlwaysShowMessage("Invalid piece type '%c'", s[0]); continue; } c = COL_NUM(s[1]); r = ROW_NUM(s[2]); - if ((c < 0) || (c >= NO_COLS) || (r < 0) || (r >= NO_ROWS)) + if ((c < 0) || (c >= NO_COLS) || (r < 0) || (r >= NO_ROWS)) { + AlwaysShowMessage("Out-of-board '%c%c'", s[1], s[2]); continue; + } sq = locn(r, c); - color[sq] = a; - board[sq] = no_piece; for (i = NO_PIECES; i > no_piece; i--) { if ((s[0] == pxx[i]) || (s[0] == qxx[i])) { + color[sq] = a; if (s[3] == '+') board[sq] = promoted[i]; else @@ -547,9 +551,8 @@ Curses_EditBoard(void) } } - - if (found == 0) - color[sq] = neutral; + if (!found) + AlwaysShowMessage("Invalid piece type '%c'", s[0]); DrawPiece(sq); } @@ -723,9 +726,9 @@ Curses_UpdateClocks(void) s = 0; if (player == black) - gotoXY(20, (flag.reverse) ? 2 : 23); + gotoXY(20, (flag.reverse) ? 2 : (5 + 2*NO_ROWS)); else - gotoXY(20, (flag.reverse) ? 23 : 2); + gotoXY(20, (flag.reverse) ? (5 + 2*NO_ROWS) : 2); /* printw("%d:%02d %ld ", m, s, dt); */ printw("%d:%02d ", m, s); @@ -770,7 +773,7 @@ DrawPiece(short sq) y = pxx[(int)piece]; } - gotoXY(8 + 5 * VIR_C(sq), 4 + 2 * ((NO_ROWS - 1) - VIR_R(sq))); + gotoXY(MARGIN + 3 + 5 * VIR_C(sq), 4 + 2 * ((NO_ROWS - 1) - VIR_R(sq))); printw("%c%c%c%c", l, p, y, r); } @@ -835,42 +838,41 @@ Curses_UpdateDisplay(short f, short t, short redraw, short isspec) ShowPlayers(); i = 2; - gotoXY(3, ++i); + gotoXY(MARGIN, ++i); - printw(" +"); + printw(" +"); for (j=0; j