X-Git-Url: http://git.shiar.net/netris.git/blobdiff_plain/02d0eeb0e0a5f43971cf687eac35dcedc59a0247..f783dce9db681aa389ff4c533b34d17934550bc4:/curses.c diff --git a/curses.c b/curses.c index e0a77ab..bd0949a 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 @@ -50,8 +50,8 @@ static int haveColor; int PlayerDisp[MAX_SCREENS]; #define MSG_HEIGHT 64 //max history -char *message[MSG_HEIGHT]; -char messages[MSG_HEIGHT][MSG_WIDTH]; +static char *message[MSG_HEIGHT]; +static char messages[MSG_HEIGHT][MSG_WIDTH]; static char *term_vi; /* String to make cursor invisible */ static char *term_ve; /* String to make cursor visible */ @@ -134,7 +134,7 @@ void CleanupScreens(void) OutputTermStr(term_ve, 1); } -void GetTermcapInfo(void) +static void GetTermcapInfo(void) { char *term, *buf, *data; int bufSize = 8192; @@ -191,7 +191,7 @@ void GetTermcapInfo(void) term_vi = term_ve = NULL; } -void OutputTermStr(char *str, int flush) +static void OutputTermStr(char *str, int flush) { if (str) { fputs(str, stdout); @@ -199,10 +199,10 @@ void OutputTermStr(char *str, int flush) } } -void DrawTitle(void) +static void DrawTitle(void) { int rows, cols; - char s[255]; + char *s; #ifdef HAVE_NCURSES attrset(A_REVERSE); @@ -210,13 +210,15 @@ void DrawTitle(void) standout(); #endif getmaxyx(stdscr, rows, cols); - sprintf(s, " NETRIS %s", version_string); - memset(&s[strlen(s)], ' ', 254 - strlen(s)); - if (cols > 56 + strlen(version_string)) - memcpy(&s[cols - 48], - "(C)1994-1996,1999 Mark H. Weaver, (C)2002 Shiar \0", 49); - else memcpy(&s[cols], "\0", 1); + s = malloc(cols + 1); + sprintf(s, " " MSG_TITLE " %s", version_string); + 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 } @@ -290,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; @@ -335,11 +337,7 @@ void InitFields(void) DrawField(scr); } -void CleanupScreen(int scr) -{ -} - -void DisplayMessage(char *p) +static void DisplayMessage(char *p) { char s[MSG_WIDTH]; char *psearch; @@ -399,7 +397,7 @@ void Messagetype(char c, int x, char *s) wrefresh(msgwin); } -void PlotBlock1(int y, int x, unsigned char type) +static void PlotBlock1(int y, int x, unsigned char type) { //display block on screen move(y, x); if (type == BT_none) addstr(" "); @@ -468,7 +466,7 @@ void PlotBlock1(int y, int x, unsigned char type) #endif } //display one brick } -void PlotBlock1S(int y, int x, unsigned char type) +static void PlotBlock1S(int y, int x, unsigned char type) { //display block small move(y, x); if (type == BT_none) addch(' '); @@ -592,7 +590,7 @@ void ScheduleFullRedraw(void) touchwin(stdscr); } -void CatchWinCh(int sig) +static void CatchWinCh(int sig) { //handle window resize endwin(); //exit curses refresh(); //and reinit display (with different sizes)