]> git.cameronkatri.com Git - bsdgames-darwin.git/blobdiff - battlestar/fly.c
Fix merge conflicts
[bsdgames-darwin.git] / battlestar / fly.c
index 663cf73926efcd01011429161a4e2b00f87b6c7d..6277def62f473c7a98aba753c53002ab389e3cb1 100644 (file)
@@ -1,6 +1,8 @@
+/*     $NetBSD: fly.c,v 1.16 2021/05/02 12:50:43 rillig Exp $  */
+
 /*
 /*
- * Copyright (c) 1983 Regents of the University of California.
- * All rights reserved.
+ * Copyright (c) 1983, 1993
+ *     The Regents of the University of California.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
+ * 3. Neither the name of the University nor the names of its contributors
  *    may be used to endorse or promote products derived from this software
  *    without specific prior written permission.
  *
  *    may be used to endorse or promote products derived from this software
  *    without specific prior written permission.
  *
  * SUCH DAMAGE.
  */
 
  * SUCH DAMAGE.
  */
 
+#include <sys/cdefs.h>
 #ifndef lint
 #ifndef lint
-/*static char sccsid[] = "from: @(#)fly.c      5.6 (Berkeley) 3/4/91";*/
-static char rcsid[] = "$Id: fly.c,v 1.2 1993/08/01 18:56:01 mycroft Exp $";
-#endif /* not lint */
+#if 0
+static char sccsid[] = "@(#)fly.c      8.2 (Berkeley) 4/28/95";
+#else
+__RCSID("$NetBSD: fly.c,v 1.16 2021/05/02 12:50:43 rillig Exp $");
+#endif
+#endif                         /* not lint */
 
 
-#include "externs.h"
+#include "extern.h"
 #undef UP
 #include <curses.h>
 #undef UP
 #include <curses.h>
+#include <assert.h>
 
 
-#define abs(a) ((a) < 0 ? -(a) : (a))
 #define MIDR  (LINES/2 - 1)
 #define MIDC  (COLS/2 - 1)
 
 #define MIDR  (LINES/2 - 1)
 #define MIDC  (COLS/2 - 1)
 
-int row, column;
-int dr = 0, dc = 0;
-char destroyed;
-int clock = 120;               /* time for all the flights in the game */
-char cross = 0;
-sig_t oldsig;
+static int     row, column;
+static int     dr = 0, dc = 0;
+static char    destroyed;
+int     ourclock = 120;                /* time for all the flights in the game */
+static char    cross = 0;
+static sig_t   oldsig;
+
+static void blast(void);
+static void endfly(void);
+static void moveenemy(int);
+static void notarget(void);
+static void screen(void);
+static void succumb(int);
+static void target(void);
 
 
-void
-succumb()
+static void
+succumb(int dummy __unused)
 {
        if (oldsig == SIG_DFL) {
                endfly();
 {
        if (oldsig == SIG_DFL) {
                endfly();
@@ -60,225 +70,229 @@ succumb()
        }
        if (oldsig != SIG_IGN) {
                endfly();
        }
        if (oldsig != SIG_IGN) {
                endfly();
-               (*oldsig)(SIGINT);
+               (*oldsig) (SIGINT);
        }
 }
 
        }
 }
 
-visual()
+int
+visual(void)
 {
 {
-       void moveenemy();
-
        destroyed = 0;
        destroyed = 0;
-       savetty();
-       if(initscr() == ERR){
+       if (initscr() == NULL) {
                puts("Whoops!  No more memory...");
                puts("Whoops!  No more memory...");
-               return(0);
+               return (0);
        }
        oldsig = signal(SIGINT, succumb);
        }
        oldsig = signal(SIGINT, succumb);
-       crmode();
+       cbreak();
        noecho();
        screen();
        noecho();
        screen();
-       row = rnd(LINES-3) + 1;
-       column = rnd(COLS-2) + 1;
-       moveenemy();
+       row = rnd(LINES - 3) + 1;
+       column = rnd(COLS - 2) + 1;
+       moveenemy(0);
        for (;;) {
        for (;;) {
-               switch(getchar()){
-
-                       case 'h':
-                       case 'r':
-                               dc = -1;
-                               fuel--;
-                               break;
-
-                       case 'H':
-                       case 'R':
-                               dc = -5;
-                               fuel -= 10;
-                               break;
-
-                       case 'l':
-                               dc = 1;
-                               fuel--;
-                               break;
-
-                       case 'L':
-                               dc = 5;
-                               fuel -= 10;
-                               break;
-
-                       case 'j':
-                       case 'u':
-                               dr = 1;
-                               fuel--;
-                               break;
-
-                       case 'J':
-                       case 'U':
-                               dr = 5;
-                               fuel -= 10;
-                               break;
-
-                       case 'k':
-                       case 'd':
-                               dr = -1;
-                               fuel--;
-                               break;
-
-                       case 'K':
-                       case 'D':
-                               dr = -5;
-                               fuel -= 10;
-                               break;
-
-                       case '+':
-                               if (cross){
-                                       cross = 0;
-                                       notarget();
-                               }
-                               else
-                                       cross = 1;
-                               break;
-
-                       case ' ':
-                       case 'f':
-                               if (torps){
-                                       torps -= 2;
-                                       blast();
-                                       if (row == MIDR && column - MIDC < 2 && MIDC - column < 2){
-                                               destroyed = 1;
-                                               alarm(0);
-                                       }
+               switch (getchar()) {
+
+               case 'h':
+               case 'r':
+                       dc = -1;
+                       fuel--;
+                       break;
+
+               case 'H':
+               case 'R':
+                       dc = -5;
+                       fuel -= 10;
+                       break;
+
+               case 'l':
+                       dc = 1;
+                       fuel--;
+                       break;
+
+               case 'L':
+                       dc = 5;
+                       fuel -= 10;
+                       break;
+
+               case 'j':
+               case 'u':
+                       dr = 1;
+                       fuel--;
+                       break;
+
+               case 'J':
+               case 'U':
+                       dr = 5;
+                       fuel -= 10;
+                       break;
+
+               case 'k':
+               case 'd':
+                       dr = -1;
+                       fuel--;
+                       break;
+
+               case 'K':
+               case 'D':
+                       dr = -5;
+                       fuel -= 10;
+                       break;
+
+               case '+':
+                       if (cross) {
+                               cross = 0;
+                               notarget();
+                       } else
+                               cross = 1;
+                       break;
+
+               case ' ':
+               case 'f':
+                       if (torps) {
+                               torps -= 2;
+                               blast();
+                               if (row == MIDR && column < MIDC + 2 &&
+                                   column > MIDC - 2) {
+                                       destroyed = 1;
+                                       alarm(0);
                                }
                                }
-                               else
-                                       mvaddstr(0,0,"*** Out of torpedoes. ***");
-                               break;
+                       } else
+                               mvaddstr(0, 0, "*** Out of torpedoes. ***");
+                       break;
 
 
-                       case 'q':
-                               endfly();
-                               return(0);
+               case 'q':
+                       endfly();
+                       return (0);
 
 
-                       default:
-                               mvaddstr(0,26,"Commands = r,R,l,L,u,U,d,D,f,+,q");
-                               continue;
+               default:
+                       mvaddstr(0, 26, "Commands = r,R,l,L,u,U,d,D,f,+,q");
+                       continue;
 
 
-                       case EOF:
-                               break;
+               case EOF:
+                       break;
                }
                }
-               if (destroyed){
+               if (destroyed) {
                        endfly();
                        endfly();
-                       return(1);
+                       return (1);
                }
                }
-               if (clock <= 0){
+               if (ourclock <= 0) {
                        endfly();
                        die();
                }
        }
 }
 
                        endfly();
                        die();
                }
        }
 }
 
-screen()
+static void
+screen(void)
 {
 {
-       register int r,c,n;
-       int i;
+       int     r, c, n;
+       int     i;
 
        clear();
        i = rnd(100);
 
        clear();
        i = rnd(100);
-       for (n=0; n < i; n++){
-               r = rnd(LINES-3) + 1;
+       for (n = 0; n < i; n++) {
+               r = rnd(LINES - 3) + 1;
                c = rnd(COLS);
                mvaddch(r, c, '.');
        }
                c = rnd(COLS);
                mvaddch(r, c, '.');
        }
-       mvaddstr(LINES-1-1,21,"TORPEDOES           FUEL           TIME");
+       mvaddstr(LINES - 1 - 1, 21, "TORPEDOES           FUEL           TIME");
        refresh();
 }
 
        refresh();
 }
 
-target()
+static void
+target(void)
 {
 {
-       register int n;
+       int     n;
 
 
-       move(MIDR,MIDC-10);
+       move(MIDR, MIDC - 10);
        addstr("-------   +   -------");
        addstr("-------   +   -------");
-       for (n = MIDR-4; n < MIDR-1; n++){
-               mvaddch(n,MIDC,'|');
-               mvaddch(n+6,MIDC,'|');
+       for (n = MIDR - 4; n < MIDR - 1; n++) {
+               mvaddch(n, MIDC, '|');
+               mvaddch(n + 6, MIDC, '|');
        }
 }
 
        }
 }
 
-notarget()
+static void
+notarget(void)
 {
 {
-       register int n;
+       int     n;
 
 
-       move(MIDR,MIDC-10);
+       move(MIDR, MIDC - 10);
        addstr("                     ");
        addstr("                     ");
-       for (n = MIDR-4; n < MIDR-1; n++){
-               mvaddch(n,MIDC,' ');
-               mvaddch(n+6,MIDC,' ');
+       for (n = MIDR - 4; n < MIDR - 1; n++) {
+               mvaddch(n, MIDC, ' ');
+               mvaddch(n + 6, MIDC, ' ');
        }
 }
 
        }
 }
 
-blast()
+static void
+blast(void)
 {
 {
-       register int n;
+       int     n;
 
        alarm(0);
 
        alarm(0);
-       move(LINES-1, 24);
+       move(LINES - 1, 24);
        printw("%3d", torps);
        printw("%3d", torps);
-       for(n = LINES-1-2; n >= MIDR + 1; n--){
-               mvaddch(n, MIDC+MIDR-n, '/');
-               mvaddch(n, MIDC-MIDR+n, '\\');
+       for (n = LINES - 1 - 2; n >= MIDR + 1; n--) {
+               mvaddch(n, MIDC + MIDR - n, '/');
+               mvaddch(n, MIDC - MIDR + n, '\\');
                refresh();
        }
                refresh();
        }
-       mvaddch(MIDR,MIDC,'*');
-       for(n = LINES-1-2; n >= MIDR + 1; n--){
-               mvaddch(n, MIDC+MIDR-n, ' ');
-               mvaddch(n, MIDC-MIDR+n, ' ');
+       mvaddch(MIDR, MIDC, '*');
+       for (n = LINES - 1 - 2; n >= MIDR + 1; n--) {
+               mvaddch(n, MIDC + MIDR - n, ' ');
+               mvaddch(n, MIDC - MIDR + n, ' ');
                refresh();
        }
        alarm(1);
 }
 
                refresh();
        }
        alarm(1);
 }
 
-void
-moveenemy()
+static void
+moveenemy(int dummy __unused)
 {
 {
-       double d;
-       int oldr, oldc;
+       double  d;
+       int     oldr, oldc;
 
        oldr = row;
        oldc = column;
 
        oldr = row;
        oldc = column;
-       if (fuel > 0){
-               if (row + dr <= LINES-3 && row + dr > 0)
+       if (fuel > 0) {
+               if (row + dr <= LINES - 3 && row + dr > 0)
                        row += dr;
                        row += dr;
-               if (column + dc < COLS-1 && column + dc > 0)
+               if (column + dc < COLS - 1 && column + dc > 0)
                        column += dc;
                        column += dc;
-       } else if (fuel < 0){
-               fuel = 0;
-               mvaddstr(0,60,"*** Out of fuel ***");
-       }
-       d = (double) ((row - MIDR)*(row - MIDR) + (column - MIDC)*(column - MIDC));
-       if (d < 16){
+       } else
+               if (fuel < 0) {
+                       fuel = 0;
+                       mvaddstr(0, 60, "*** Out of fuel ***");
+               }
+       d = (double) ((row - MIDR) * (row - MIDR) + (column - MIDC) *
+           (column - MIDC));
+       if (d < 16) {
                row += (rnd(9) - 4) % (4 - abs(row - MIDR));
                column += (rnd(9) - 4) % (4 - abs(column - MIDC));
        }
                row += (rnd(9) - 4) % (4 - abs(row - MIDR));
                column += (rnd(9) - 4) % (4 - abs(column - MIDC));
        }
-       clock--;
+       ourclock--;
        mvaddstr(oldr, oldc - 1, "   ");
        if (cross)
                target();
        mvaddstr(row, column - 1, "/-\\");
        mvaddstr(oldr, oldc - 1, "   ");
        if (cross)
                target();
        mvaddstr(row, column - 1, "/-\\");
-       move(LINES-1, 24);
+       move(LINES - 1, 24);
        printw("%3d", torps);
        printw("%3d", torps);
-       move(LINES-1, 42);
+       move(LINES - 1, 42);
        printw("%3d", fuel);
        printw("%3d", fuel);
-       move(LINES-1, 57);
-       printw("%3d", clock);
+       move(LINES - 1, 57);
+       printw("%3d", ourclock);
        refresh();
        signal(SIGALRM, moveenemy);
        alarm(1);
 }
 
        refresh();
        signal(SIGALRM, moveenemy);
        alarm(1);
 }
 
-endfly()
+static void
+endfly(void)
 {
        alarm(0);
        signal(SIGALRM, SIG_DFL);
 {
        alarm(0);
        signal(SIGALRM, SIG_DFL);
-       mvcur(0,COLS-1,LINES-1,0);
+       mvcur(0, COLS - 1, LINES - 1, 0);
        endwin();
        signal(SIGTSTP, SIG_DFL);
        signal(SIGINT, oldsig);
        endwin();
        signal(SIGTSTP, SIG_DFL);
        signal(SIGINT, oldsig);