From: Mischa POSLAWSKY Date: Sat, 10 Mar 2007 20:10:23 +0000 (+0100) Subject: cleanup overlay message centering X-Git-Url: http://git.shiar.net/netris.git/commitdiff_plain/bf847a2163e3d2c60e4aa730b3508620c98b89f1 cleanup overlay message centering Both code (intermediate vars for clarity, allocate the exact/right amount of memory) as well as the algorithm (justify left for odd fits). --- diff --git a/curses.c b/curses.c index 57bfee7..4d350fd 100644 --- a/curses.c +++ b/curses.c @@ -536,11 +536,13 @@ void window_msg(int player, char *message) { //put a message over player's field if (!window[player].shown) return; if (message) { - char s[MAX_BOARD_WIDTH+1]; - memset(s, ' ', MAX_BOARD_WIDTH); - memcpy(&s[(window[player].size * Players[player].boardWidth / 2) - (strlen(message) / 2)], - message, strlen(message)); - s[window[player].size * Players[player].boardWidth] = 0; + const int fieldsize = Players[player].boardWidth * window[player].size; + const int centered = (fieldsize - strlen(message)) / 2; + char s[fieldsize + 1]; + + memset(s, ' ', fieldsize); + memcpy(&s[centered], message, strlen(message)); + s[fieldsize] = 0; #ifdef HAVE_NCURSES attrset(A_REVERSE); #else