- printw(" ppm:%5.1f", score.drops * 60 / timer);
- move(statusYPos - 18, statusXPos);
- if (score.lines > 0)
- printw("yield: %3d%%", 100 * score.adds / score.lines);
- else addstr(" ");
- printw(" apm:%5.1f", score.adds * 60 / timer);
- }
-}
-
-ExtFunc void ShowPause(int pausedByMe, int pausedByThem)
-{
- move(statusYPos - 3, statusXPos);
- if (pausedByThem)
- addstr("Game paused by opponent");
- else
- addstr(" ");
- move(statusYPos - 2, statusXPos);
- if (pausedByMe)
- addstr("Game paused by you");
+ mvprintw(9, statusXPos, MSG_PPM, score.pieces * 60 / timer);
+ if (score.lines > 0) {
+ mvprintw(7, statusXPos, MSG_YIELD, 100 * score.adds / score.lines);
+ mvprintw(10, statusXPos, MSG_APM, score.adds * 60 / timer);
+ }
+ } //display [ap]pm
+ else {
+ int i;
+ 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
+ if (!PlayerDisp[playa]) return;
+ if (message) {
+ char s[MAX_BOARD_WIDTH+1];
+ memset(s, ' ', MAX_BOARD_WIDTH);
+ memcpy(&s[(boardSize[playa] * Players[playa].boardWidth / 2) - (strlen(message) / 2)],
+ message, strlen(message));
+ s[boardSize[playa] * Players[playa].boardWidth] = 0;
+#ifdef HAVE_NCURSES
+ attrset(A_REVERSE);
+#else
+ standout();
+#endif
+ mvprintw(boardYPos[playa] - Players[playa].boardVisible / 2,
+ boardXPos[playa], "%s", s);
+ standend();
+ } //display
+ else {
+ int x, y;
+ y = Players[playa].boardVisible / 2;
+ 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
+ if (Players[playa].alive > 0)
+ if (Players[playa].flags & SCF_paused)
+ if (Game.started > 1)
+ FieldMessage(playa, boardSize[playa] > 1 ? "P A U S E D" : "PAUSED");
+ else
+ FieldMessage(playa,
+ boardSize[playa] > 1 ? "N O T R E A D Y" : "NOT READY");
+ else
+ if (Game.started > 1)
+ FieldMessage(playa, NULL);
+ else
+ FieldMessage(playa, boardSize[playa] > 1 ? "R E A D Y" : "READY");
+ else if (!Players[playa].alive)
+ FieldMessage(playa,
+ boardSize[playa] > 1 ? "G A M E O V E R" : "GAME OVER");