diff --git a/src/intf.c b/src/intf.c index 86d6fb9..2d9e589 100644 --- a/src/intf.c +++ b/src/intf.c @@ -78,6 +78,9 @@ txwin_t *firstwin = NULL; // First (bottom-most) txwin structure void init_screen (void) { + int i; + + initscr(); if ((COLS < MIN_COLS) || (LINES < MIN_LINES)) { @@ -110,11 +113,14 @@ void init_screen (void) bkgd(ATTR_ROOT_WINDOW); } - attrset(ATTR_ROOT_WINDOW); clear(); - center(stdscr, 0, ATTR_GAME_TITLE, true, PACKAGE_NAME); + for (i = 0; i < COLS; i++) { + mvwaddch(stdscr, 0, i, ATTR_GAME_TITLE | ' '); + } + center(stdscr, 0, ATTR_GAME_TITLE, PACKAGE_NAME); + attrset(ATTR_ROOT_WINDOW); refresh(); } @@ -294,22 +300,16 @@ int txrefresh (void) Arguments: win - Window to use y - Line on which to centre the string attr - Window attributes to use for string - clrline - True to print spaces on both sides of line format - printf()-like format string ... - printf()-like arguments Returns: int - Return code from wprintw() This function prints a string (formated with wprintw(format, ...)) in - the centre of line y in the window win and using window attributes in - attr. If clrline is TRUE, spaces are printed before and after the line - to make sure the current attributes are set; in this case, the cursor - is also moved to the start of the next line (or the start of the - current line if already on the last line of the window). Please note - that wrefresh() is NOT called. - + the centre of line y in the window win, using the window attributes in + attr. Please note that wrefresh() is NOT called. */ -int center (WINDOW *win, int y, int attr, bool clrline, const char *format, ...) +int center (WINDOW *win, int y, int attr, const char *format, ...) { va_list args; @@ -339,21 +339,7 @@ int center (WINDOW *win, int y, int attr, bool clrline, const char *format, ...) getmaxyx(win, maxy, maxx); fill = (maxx - len) / 2; - if (clrline) { - wmove(win, y, 0); - - if (fill > 0) { - wprintw(win, "%*c", fill, ' '); - } - ret = wprintw(win, "%s", buf); - if (maxx - len - fill > 0) { - wprintw(win, "%*c", maxx - len - fill, ' '); - } - - wmove(win, (y + 1 >= maxy ? y : y + 1), 0); - } else { - ret = mvwprintw(win, y, fill > 0 ? fill : 0, "%s", buf); - } + ret = mvwprintw(win, y, fill > 0 ? fill : 0, "%s", buf); wattrset(win, oldattr); @@ -1215,8 +1201,7 @@ void wait_for_key (WINDOW *win, int y) wtimeout(win, -1); curs_set(CURS_OFF); - center(win, y, ATTR_WAITFORKEY_STR, false, - "[ Press to continue ] "); + center(win, y, ATTR_WAITFORKEY_STR, "[ Press to continue ] "); wrefresh(win); key = wgetch(win); diff --git a/src/intf.h b/src/intf.h index e36751c..175acd4 100644 --- a/src/intf.h +++ b/src/intf.h @@ -151,9 +151,8 @@ extern int txrefresh (void); // Output routines -extern int center (WINDOW *win, int y, int attr, bool clrline, - const char *format, ...) - __attribute__((format (printf, 5, 6))); +extern int center (WINDOW *win, int y, int attr, const char *format, ...) + __attribute__((format (printf, 4, 5))); extern int attrpr (WINDOW *win, int attr, const char *format, ...) __attribute__((format (printf, 3, 4)));