Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/games/atc Move game logic out of the file with the curses code.



details:   https://anonhg.NetBSD.org/src/rev/37818b3198ac
branches:  trunk
changeset: 809214:37818b3198ac
user:      dholland <dholland%NetBSD.org@localhost>
date:      Thu Jun 25 05:33:02 2015 +0000

description:
Move game logic out of the file with the curses code.

diffstat:

 games/atc/extern.h   |  10 +++++-
 games/atc/graphics.c |  77 +++++++++++++++------------------------------------
 games/atc/main.c     |  32 ++++++++++++++++++++-
 games/atc/update.c   |  30 ++++++++++++++++++-
 4 files changed, 89 insertions(+), 60 deletions(-)

diffs (272 lines):

diff -r 3df5a61be1b2 -r 37818b3198ac games/atc/extern.h
--- a/games/atc/extern.h        Thu Jun 25 05:30:47 2015 +0000
+++ b/games/atc/extern.h        Thu Jun 25 05:33:02 2015 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: extern.h,v 1.18 2015/06/19 06:02:31 dholland Exp $     */
+/*     $NetBSD: extern.h,v 1.19 2015/06/25 05:33:02 dholland Exp $     */
 
 /*-
  * Copyright (c) 1990, 1993
@@ -64,6 +64,13 @@
 
 extern DISPLACEMENT    displacement[MAXDIR];
 
+/* in graphics.c */
+void shutdown_gr(void);
+void ioaskquit(void);
+void ionoquit(void);
+void losermsg(const PLANE *p, const char *msg);
+
+/* misc */
 void           addplane(void);
 void           append(LIST *, PLANE *);
 void           check_adir(int, int, int);
@@ -88,7 +95,6 @@
 int            number(int);
 void           open_score_file(void);
 void           planewin(void);
-void           quit(int);
 void           redraw(void);
 void           setup_screen(const C_SCREEN *);
 void           update(int);
diff -r 3df5a61be1b2 -r 37818b3198ac games/atc/graphics.c
--- a/games/atc/graphics.c      Thu Jun 25 05:30:47 2015 +0000
+++ b/games/atc/graphics.c      Thu Jun 25 05:33:02 2015 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: graphics.c,v 1.19 2015/06/19 06:02:31 dholland Exp $   */
+/*     $NetBSD: graphics.c,v 1.20 2015/06/25 05:33:02 dholland Exp $   */
 
 /*-
  * Copyright (c) 1990, 1993
@@ -46,7 +46,7 @@
 #if 0
 static char sccsid[] = "@(#)graphics.c 8.1 (Berkeley) 5/31/93";
 #else
-__RCSID("$NetBSD: graphics.c,v 1.19 2015/06/19 06:02:31 dholland Exp $");
+__RCSID("$NetBSD: graphics.c,v 1.20 2015/06/25 05:33:02 dholland Exp $");
 #endif
 #endif /* not lint */
 
@@ -136,6 +136,15 @@
 }
 
 void
+shutdown_gr(void)
+{
+       (void)clear();  /* move to top of screen */
+       (void)refresh();
+       (void)fflush(stdout);
+       (void)endwin();
+}
+
+void
 setup_screen(const C_SCREEN *scp)
 {
        int     i, j;
@@ -293,43 +302,25 @@
        (void)fflush(stdout);
 }
 
-/* ARGSUSED */
+static int ioquit_x, ioquit_y;
+
 void
-quit(int dummy __unused)
+ioaskquit(void)
 {
-       int                     c, y, x;
-#ifdef BSD
-       struct itimerval        itv;
-#endif
-
-       getyx(input, y, x);
+       getyx(input, ioquit_y, ioquit_x);
        (void)wmove(input, 2, 0);
        (void)waddstr(input, "Really quit? (y/n) ");
        (void)wclrtobot(input);
        (void)wrefresh(input);
        (void)fflush(stdout);
+}
 
-       c = getchar();
-       if (c == EOF || c == 'y') {
-               /* disable timer */
-#ifdef BSD
-               itv.it_value.tv_sec = 0;
-               itv.it_value.tv_usec = 0;
-               (void)setitimer(ITIMER_REAL, &itv, NULL);
-#endif
-#ifdef SYSV
-               alarm(0);
-#endif
-               (void)fflush(stdout);
-               (void)clear();
-               (void)refresh();
-               (void)endwin();
-               (void)log_score(0);
-               exit(0);
-       }
+void
+ionoquit(void)
+{
        (void)wmove(input, 2, 0);
        (void)wclrtobot(input);
-       (void)wmove(input, y, x);
+       (void)wmove(input, ioquit_y, ioquit_x);
        (void)wrefresh(input);
        (void)fflush(stdout);
 }
@@ -378,42 +369,20 @@
 }
 
 void
-loser(const PLANE *p, const char *s)
+losermsg(const PLANE *p, const char *msg)
 {
-       int                     c;
-#ifdef BSD
-       struct itimerval        itv;
-#endif
-
-       /* disable timer */
-#ifdef BSD
-       itv.it_value.tv_sec = 0;
-       itv.it_value.tv_usec = 0;
-       (void)setitimer(ITIMER_REAL, &itv, NULL);
-#endif
-#ifdef SYSV
-       alarm(0);
-#endif
-
        (void)wmove(input, 0, 0);
        (void)wclrtobot(input);
        /* p may be NULL if we ran out of memory */
        if (p == NULL)
                (void)wprintw(input, "%s\n\nHit space for top players list...",
-                   s);
+                   msg);
        else {
-               (void)wprintw(input, "Plane '%c' %s\n\n", name(p), s);
+               (void)wprintw(input, "Plane '%c' %s\n\n", name(p), msg);
                (void)wprintw(input, "Hit space for top players list...");
        }
        (void)wrefresh(input);
        (void)fflush(stdout);
-       while ((c = getchar()) != EOF && c != ' ')
-               ;
-       (void)clear();  /* move to top of screen */
-       (void)refresh();
-       (void)endwin();
-       (void)log_score(0);
-       exit(0);
 }
 
 void
diff -r 3df5a61be1b2 -r 37818b3198ac games/atc/main.c
--- a/games/atc/main.c  Thu Jun 25 05:30:47 2015 +0000
+++ b/games/atc/main.c  Thu Jun 25 05:33:02 2015 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: main.c,v 1.23 2015/06/19 06:02:31 dholland Exp $       */
+/*     $NetBSD: main.c,v 1.24 2015/06/25 05:33:02 dholland Exp $       */
 
 /*-
  * Copyright (c) 1990, 1993
@@ -51,7 +51,7 @@
 #if 0
 static char sccsid[] = "@(#)main.c     8.1 (Berkeley) 5/31/93";
 #else
-__RCSID("$NetBSD: main.c,v 1.23 2015/06/19 06:02:31 dholland Exp $");
+__RCSID("$NetBSD: main.c,v 1.24 2015/06/25 05:33:02 dholland Exp $");
 #endif
 #endif /* not lint */
 
@@ -75,6 +75,7 @@
 static const char *default_game(void);
 static const char *okay_game(const char *);
 static int list_games(void);
+static void quit(int);
 
 int
 main(int argc, char *argv[])
@@ -327,3 +328,30 @@
        }
        return (0);
 }
+
+/* ARGSUSED */
+static void
+quit(int dummy __unused)
+{
+       int c;
+#ifdef BSD
+       struct itimerval        itv;
+#endif
+       ioaskquit();
+       c = getAChar();
+       if (c == EOF || c == 'y') {
+               /* disable timer */
+#ifdef BSD
+               itv.it_value.tv_sec = 0;
+               itv.it_value.tv_usec = 0;
+               (void)setitimer(ITIMER_REAL, &itv, NULL);
+#endif
+#ifdef SYSV
+               alarm(0);
+#endif
+               shutdown_gr();
+               (void)log_score(0);
+               exit(0);
+       }
+       ionoquit();
+}
diff -r 3df5a61be1b2 -r 37818b3198ac games/atc/update.c
--- a/games/atc/update.c        Thu Jun 25 05:30:47 2015 +0000
+++ b/games/atc/update.c        Thu Jun 25 05:33:02 2015 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: update.c,v 1.26 2015/06/19 06:02:31 dholland Exp $     */
+/*     $NetBSD: update.c,v 1.27 2015/06/25 05:33:02 dholland Exp $     */
 
 /*-
  * Copyright (c) 1990, 1993
@@ -46,7 +46,7 @@
 #if 0
 static char sccsid[] = "@(#)update.c   8.1 (Berkeley) 5/31/93";
 #else
-__RCSID("$NetBSD: update.c,v 1.26 2015/06/19 06:02:31 dholland Exp $");
+__RCSID("$NetBSD: update.c,v 1.27 2015/06/25 05:33:02 dholland Exp $");
 #endif
 #endif /* not lint */
 
@@ -232,6 +232,32 @@
 #endif
 }
 
+void
+loser(const PLANE *p, const char *s)
+{
+       int                     c;
+#ifdef BSD
+       struct itimerval        itv;
+#endif
+
+       /* disable timer */
+#ifdef BSD
+       itv.it_value.tv_sec = 0;
+       itv.it_value.tv_usec = 0;
+       (void)setitimer(ITIMER_REAL, &itv, NULL);
+#endif
+#ifdef SYSV
+       alarm(0);
+#endif
+
+       losermsg(p, s);
+       while ((c = getAChar()) != EOF && c != ' ')
+               ;
+       shutdown_gr();
+       (void)log_score(0);
+       exit(0);
+}
+
 const char *
 command(const PLANE *pp)
 {



Home | Main Index | Thread Index | Old Index