]> git.cameronkatri.com Git - bsdgames-darwin.git/commitdiff
Move all curses bits to pl_7.c.
authordholland <dholland@NetBSD.org>
Sun, 15 Mar 2009 00:35:42 +0000 (00:35 +0000)
committerdholland <dholland@NetBSD.org>
Sun, 15 Mar 2009 00:35:42 +0000 (00:35 +0000)
sail/display.h
sail/pl_5.c
sail/pl_7.c

index 034b477ed03024063c89cc7888a7d8150c37cd46..989956097be8a1871dd98e318c51fa8a5485954c 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: display.h,v 1.4 2009/03/14 19:35:13 dholland Exp $     */
+/*     $NetBSD: display.h,v 1.5 2009/03/15 00:35:42 dholland Exp $     */
 
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
-#ifdef SIGTSTP
-#define SCREENTEST()   (initscr() != NULL && \
-                        signal(SIGTSTP, SIG_DFL) != SIG_ERR && \
-                        STAT_R < COLS && SCROLL_Y > 0)
-#else
-#define SCREENTEST()   (initscr() != NULL && STAT_R < COLS && SCROLL_Y > 0)
-#endif
-
-extern WINDOW *view_w;
-extern WINDOW *slot_w;
-extern WINDOW *scroll_w;
-extern WINDOW *stat_w;
-extern WINDOW *turn_w;
-
+void display_show_obp(int which, bool show);
+void display_show_dbp(int which, bool show);
+void display_refresh_slot_w(void);
index 09dd902fafb4ef8470e51e1f94d2b23e937dd95c..2e72116a44e0da2a27adfb4bebc7ee339c93e424 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: pl_5.c,v 1.23 2009/03/14 22:52:52 dholland Exp $       */
+/*     $NetBSD: pl_5.c,v 1.24 2009/03/15 00:35:42 dholland Exp $       */
 
 /*
  * Copyright (c) 1983, 1993
 #if 0
 static char sccsid[] = "@(#)pl_5.c     8.1 (Berkeley) 5/31/93";
 #else
-__RCSID("$NetBSD: pl_5.c,v 1.23 2009/03/14 22:52:52 dholland Exp $");
+__RCSID("$NetBSD: pl_5.c,v 1.24 2009/03/15 00:35:42 dholland Exp $");
 #endif
 #endif /* not lint */
 
 #include <ctype.h>
-#include <curses.h>
 #include <signal.h>
 #include <stdio.h>
 #include <string.h>
@@ -237,27 +236,17 @@ parties(struct ship *to, int *crew, int isdefense, int buf)
                                send_obp(ms, j, turn, to->file->index, men);
                        }
                        if (isdefense) {
-                               wmove(slot_w, 2, 0);
                                for (k=0; k < NBP; k++)
-                                       if (temp[k] && !crew[k])
-                                               waddch(slot_w, k + '1');
-                                       else
-                                               wmove(slot_w, 2, 1 + k);
-                               mvwaddstr(slot_w, 3, 0, "DBP");
+                                       display_show_dbp(k,
+                                                        temp[k] && !crew[k]);
                                makemsg(ms, "repelling boarders");
                        } else {
-                               wmove(slot_w, 0, 0);
                                for (k=0; k < NBP; k++)
-                                       if (temp[k] && !crew[k])
-                                               waddch(slot_w, k + '1');
-                                       else
-                                               wmove(slot_w, 0, 1 + k);
-                               mvwaddstr(slot_w, 1, 0, "OBP");
+                                       display_show_obp(k,
+                                                        temp[k] && !crew[k]);
                                makesignal(ms, "boarding the $$", to);
                        }
-                       blockalarm();
-                       wrefresh(slot_w);
-                       unblockalarm();
+                       display_refresh_slot_w();
                } else
                        Msg("Sending no crew sections.");
        }
index cc2134e41281ec83d11b350c7679e563ff126f24..4be1df7ca1a3b423e5f7d2228d19610f95d01270 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: pl_7.c,v 1.32 2009/03/14 22:52:53 dholland Exp $       */
+/*     $NetBSD: pl_7.c,v 1.33 2009/03/15 00:35:42 dholland Exp $       */
 
 /*
  * Copyright (c) 1983, 1993
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)pl_7.c     8.1 (Berkeley) 5/31/93";
 #else
-__RCSID("$NetBSD: pl_7.c,v 1.32 2009/03/14 22:52:53 dholland Exp $");
+__RCSID("$NetBSD: pl_7.c,v 1.33 2009/03/15 00:35:42 dholland Exp $");
 #endif
 #endif /* not lint */
 
@@ -63,11 +63,11 @@ static const char *sc_prompt;
 static const char *sc_buf;
 static int sc_line;
 
-WINDOW *view_w;
-WINDOW *slot_w;
-WINDOW *scroll_w;
-WINDOW *stat_w;
-WINDOW *turn_w;
+static WINDOW *view_w;
+static WINDOW *slot_w;
+static WINDOW *scroll_w;
+static WINDOW *stat_w;
+static WINDOW *turn_w;
 
 int done_curses;
 int loaded, fired, changed, repaired;
@@ -82,22 +82,40 @@ struct shipspecs *mc;               /* ms->specs */
 void
 initscreen(void)
 {
-       if (!SCREENTEST()) {
+       if (signal(SIGTSTP, SIG_DFL) == SIG_ERR) {
+               err(1, "signal(SIGTSTP)");
+       }
+
+       if (initscr() == NULL) {
                errx(1, "Can't sail on this terminal.");
        }
-       /* initscr() already done in SCREENTEST() */
+       if (STAT_R >= COLS || SCROLL_Y <= 0) {
+               errx(1, "Window/terminal not large enough.");
+       }
+
        view_w = newwin(VIEW_Y, VIEW_X, VIEW_T, VIEW_L);
        slot_w = newwin(SLOT_Y, SLOT_X, SLOT_T, SLOT_L);
        scroll_w = newwin(SCROLL_Y, SCROLL_X, SCROLL_T, SCROLL_L);
        stat_w = newwin(STAT_Y, STAT_X, STAT_T, STAT_L);
        turn_w = newwin(TURN_Y, TURN_X, TURN_T, TURN_L);
-       done_curses++;
+
+       if (view_w == NULL ||
+           slot_w == NULL ||
+           scroll_w == NULL ||
+           stat_w == NULL ||
+           turn_w == NULL) {
+               endwin();
+               errx(1, "Curses initialization failed.");
+       }
+
        leaveok(view_w, 1);
        leaveok(slot_w, 1);
        leaveok(stat_w, 1);
        leaveok(turn_w, 1);
        noecho();
        cbreak();
+
+       done_curses++;
 }
 
 void
@@ -477,6 +495,31 @@ draw_board(void)
        refresh();
 }
 
+/* Called after show_[od]bp. Shouldn't really exist... XXX */
+void
+display_refresh_slot_w(void)
+{
+       blockalarm();
+       wrefresh(slot_w);
+       unblockalarm();
+}
+
+void
+display_show_obp(int which, bool show)
+{
+       wmove(slot_w, 0, which);
+       waddch(slot_w, show ? '1' + which : ' ');
+       mvwaddstr(slot_w, 1, 0, "OBP");
+}
+
+void
+display_show_dbp(int which, bool show)
+{
+       wmove(slot_w, 2, which);
+       waddch(slot_w, show ? '1' + which : ' ');
+       mvwaddstr(slot_w, 3, 0, "DBP");
+}
+
 void
 centerview(void)
 {