X-Git-Url: http://git.shiar.net/netris.git/blobdiff_plain/5902d7f327fcf57d2b1a47f1b4a3aa98f4ab08a8..e7c197505ec760eb3754f3b6d1fbbc33c66a9316:/curses.c diff --git a/curses.c b/curses.c index e7f18c4..f9f23db 100644 --- a/curses.c +++ b/curses.c @@ -15,8 +15,6 @@ * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - * $Id: curses.c,v 1.33 1999/05/16 06:56:25 mhw Exp $ */ #include "netris.h" @@ -38,9 +36,10 @@ #endif static MyEventType KeyGenFunc(EventGenRec *gen, MyEvent *event); -static EventGenRec keyGen = -// { NULL, 0, FT_read, STDIN_FILENO, KeyGenFunc, EM_key }; - { NULL, 0, FT_read, STDIN_FILENO, KeyGenFunc, EM_key }; +static EventGenRec keyGen = { +// NULL, 0, FT_read, STDIN_FILENO, KeyGenFunc, EM_key + NULL, 0, FT_read, STDIN_FILENO, KeyGenFunc, EM_key +}; static int boardYPos[MAX_SCREENS], boardXPos[MAX_SCREENS]; static int boardSize[MAX_SCREENS]; @@ -51,12 +50,12 @@ WINDOW *msgwin; static int haveColor; int PlayerDisp[MAX_SCREENS]; -#define MSG_HEIGHT 64 //max history +#define MSG_HEIGHT 64 //max history char *message[MSG_HEIGHT]; char messages[MSG_HEIGHT][MSG_WIDTH]; -static char *term_vi; /* String to make cursor invisible */ -static char *term_ve; /* String to make cursor visible */ +static char *term_vi; /* String to make cursor invisible */ +static char *term_ve; /* String to make cursor visible */ void InitScreens(void) { @@ -127,14 +126,14 @@ void InitScreens(void) for (i = 0; i=messageWidth-3 ? s[x - messageWidth + 3] : ' '); + x >= messageWidth-3 ? s[x - messageWidth + 3] : ' '); else //any character mvwaddch(msgwin, messageHeight - 1, x % (messageWidth-1), c); mvwaddch(msgwin, messageHeight - 1, (x+1) % (messageWidth-1), '_'); } //typing mode wrefresh(msgwin); -} //Messagetype +} void PlotBlock1(int y, int x, unsigned char type) { //display block on screen @@ -472,7 +471,7 @@ void PlotBlock1(int y, int x, unsigned char type) if (Sets.standout) standend(); #endif } //display one brick -} //PlotBlock1 +} void PlotBlock1S(int y, int x, unsigned char type) { //display block small move(y, x); @@ -496,21 +495,21 @@ void PlotBlock1S(int y, int x, unsigned char type) if (Sets.standout) standend(); #endif } //display one brick -} //PlotBlock1S +} void PlotBlock(int scr, int y, int x, unsigned char type) { - if (y >= 0 && y < Players[scr].boardVisible && - x >= 0 && x < Players[scr].boardWidth) { + if (y >= 0 && y < Players[scr].boardVisible + && x >= 0 && x < Players[scr].boardWidth) { if (boardSize[scr] > 1) PlotBlock1(boardYPos[scr] - y, boardXPos[scr] + 2*x, type); else PlotBlock1S(boardYPos[scr] - y, boardXPos[scr] + x, type); } //on screen -} //PlotBlock +} void PlotBlockXY(int y, int x, unsigned char type) { //Draw block at specified position on screen (not on field) PlotBlock1(20 - y, 2 * x, type); -} //PlotBlock +} void ShowScore(int scr, struct _Score score) { //show score stuff @@ -537,7 +536,7 @@ void ShowScore(int scr, struct _Score score) for (i = 7; i <= 10; i++) mvaddstr(i, statusXPos, " "); } //too early to display stats, remove old.. -} //ShowScore +} void FieldMessage(int playa, char *message) { //put a message over playa's field @@ -563,7 +562,7 @@ void FieldMessage(int playa, char *message) for (x = 0; x <= Players[playa].boardWidth; x++) PlotBlock(playa, y, x, GetBlock(playa, y, x)); } //restore field -} //FieldMessage +} void ShowPause(int playa) { //put paused over player's field @@ -584,26 +583,26 @@ void ShowPause(int playa) boardSize[playa] > 1 ? "G A M E O V E R" : "GAME OVER"); else FieldMessage(playa, boardSize[playa] > 1 ? "E M P T Y" : "EMPTY"); -} //ShowPause +} void ShowTime(void) { //display timer mvprintw(statusYPos, statusXPos, "timer %7.0f ", CurTimeval() / 1e6); -} //ShowTime +} void ScheduleFullRedraw(void) { touchwin(stdscr); -} //ScheduleFullRedraw +} void CatchWinCh(int sig) { //handle window resize - endwin(); //exit curses - refresh(); //and reinit display (with different sizes) + endwin(); //exit curses + refresh(); //and reinit display (with different sizes) InitFields(); //manually redraw everything - refresh(); //refresh -} //CatchWinCh + refresh(); //refresh +} static MyEventType KeyGenFunc(EventGenRec *gen, MyEvent *event) { //read keypresses @@ -611,9 +610,5 @@ static MyEventType KeyGenFunc(EventGenRec *gen, MyEvent *event) return E_key; else return E_none; -} //KeyGenFunc +} -/* - * vi: ts=4 ai - * vim: noai si - */