declaration cleanup
[netris.git] / curses.c
index e0a77ab46a0519eb50bf1fff6521c647e60b0363..bd0949a2745f237f0d827417f887f272372ee021 100644 (file)
--- 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)