X-Git-Url: http://git.shiar.net/netris.git/blobdiff_plain/c464ec173a4931ee5bdea783324b159492abd866..eb820d60637feceb84f559675344cf24a2c2f1cd:/curses.c diff --git a/curses.c b/curses.c index bb3834e..5a90d21 100644 --- a/curses.c +++ b/curses.c @@ -29,7 +29,7 @@ #include "curses.h" #include "util.h" #include "board.h" -#include "msg.en.h" +#include "msg.h" #ifdef NCURSES_VERSION # define HAVE_NCURSES @@ -202,7 +202,7 @@ void OutputTermStr(char *str, int flush) void DrawTitle(void) { int rows, cols; - char s[255]; + char *s; #ifdef HAVE_NCURSES attrset(A_REVERSE); @@ -210,12 +210,15 @@ void DrawTitle(void) standout(); #endif getmaxyx(stdscr, rows, cols); + s = malloc(cols + 1); sprintf(s, " " MSG_TITLE " %s", version_string); - memset(&s[strlen(s)], ' ', 254 - strlen(s)); - if (cols > strlen(MSG_TITLE) + 2 + strlen(version_string) + 1 + strlen(MSG_TITLESUB)) + const int titlelen = strlen(s); + memset(&s[titlelen], ' ', cols - titlelen); // pad + if (cols > titlelen + 1 + strlen(MSG_TITLESUB)) memcpy(&s[cols - 1 - strlen(MSG_TITLESUB)], MSG_TITLESUB, sizeof(MSG_TITLESUB) - 1); memcpy(&s[cols], "\0", 1); mvaddstr(0, 0, s); + free(s); standend(); //normal text } @@ -289,8 +292,8 @@ void InitFields(void) messageYPos = 24; messageWidth = MIN(x - messageXPos - 2, MSG_WIDTH); messageHeight = MIN(y - messageYPos - 1, MSG_HEIGHT); - if (messageHeight <= 0) { - messageWidth = 27; + if (messageHeight < 3) { + messageWidth = MIN(x - statusXPos - 18, 27); messageHeight = y - 3; messageXPos = statusXPos + 16; messageYPos = 2; @@ -334,10 +337,6 @@ void InitFields(void) DrawField(scr); } -void CleanupScreen(int scr) -{ -} - void DisplayMessage(char *p) { char s[MSG_WIDTH];