From: Laurent Mazet Date: Sat, 29 Jun 2024 10:49:09 +0000 (+0200) Subject: clean end of game message X-Git-Tag: v1.0~3 X-Git-Url: https://secure.softndesign.org/git/?a=commitdiff_plain;h=153ea4dc76036e233954259f2fe12941f2ccd67b;p=solitaire.git clean end of game message --- diff --git a/display.c b/display.c index f6a99e1..34b1cc1 100644 --- a/display.c +++ b/display.c @@ -444,4 +444,12 @@ char *savewindow (int length, int xoffset, int yoffset) return name; } +void msgwindow (char *msg, int xoffset, int yoffset, int length) +{ + set_color (white); + _dobound ((length > 0) ? length : (int)strlen (msg), 1, xoffset, yoffset); + mvaddstr (yoffset, xoffset + ((length > 0) ? (length - (int)strlen (msg)) / 2 : 0), msg); + set_color (black); +} + /* vim: set ts=4 sw=4 et: */ diff --git a/display.h b/display.h index 4ec85b5..4423829 100644 --- a/display.h +++ b/display.h @@ -14,6 +14,8 @@ void cursorwindow (board_t *board, int x, int y, int mode); char *savewindow (int length, int xoffset, int yoffset); +void msgwindow (char *msg, int xoffset, int yoffset, int length); + #endif /* __DISPLAY_H__ */ /* vim: set ts=4 sw=4 et: */ diff --git a/solitaire.c b/solitaire.c index 02b5256..8a0b0d1 100644 --- a/solitaire.c +++ b/solitaire.c @@ -29,7 +29,7 @@ int yoffset = 1; int savelen = 12; char *help = - " Get pet\n" + " Get/Release pet\n" " Move up cursor\n" " Move left cursor\n" " Move down cursor\n" @@ -151,13 +151,18 @@ int main (int argc, char *argv[]) int xhelp = xboard + xoffset + 1 + board->xsize; int xcursor = 0; int ycursor = 0; - int yhelp = yboard; + int yhelp = yboard - 1; int xsave = max (xboard + (board->xsize - savelen) / 2, 1); int ysave = yboard + (board->ysize - 1) / 2; char *savename = NULL; /* init windows */ - helpwindow (help, xhelp, yhelp); + int lhelp = helpwindow (help, xhelp, yhelp); + + /* window positions */ + int xmsg = xboard; + int ymsg = max (yboard + xoffset + 1 + board->ysize, yhelp + lhelp + yoffset + 1); + int lmsg = xhelp - xmsg + strmaxlen (help, '\n'); /* event loop */ int mode = 0; @@ -168,6 +173,8 @@ int main (int argc, char *argv[]) boardwindow (board); if (!endofgame (board)) { cursorwindow (board, xcursor, ycursor, mode); + } else { + msgwindow ("End of game", xmsg, ymsg, lmsg); } int ch = getch (); diff --git a/todo.txt b/todo.txt index 755c8cc..35432bc 100644 --- a/todo.txt +++ b/todo.txt @@ -1,7 +1,7 @@ = sauvegarde = restoration - trace de la fenetre de sauvegarde -- info de fin de partie += info de fin de partie - marche arriere = board 1x2 = board 2x2