]> git.cameronkatri.com Git - bsdgames-darwin.git/blobdiff - trek/snova.c
unstr: Check that the input filename fits in the buffer.
[bsdgames-darwin.git] / trek / snova.c
index 9442615300e5b2255e1500b7ff3078520c949eec..90baf75acb5b78cc3f14e4b155251e74b65fa096 100644 (file)
@@ -1,6 +1,8 @@
+/*     $NetBSD: snova.c,v 1.10 2018/02/08 09:05:16 dholland Exp $      */
+
 /*
- * Copyright (c) 1980 Regents of the University of California.
- * All rights reserved.
+ * Copyright (c) 1980, 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
  * 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.
  *
  * SUCH DAMAGE.
  */
 
+#include <sys/cdefs.h>
 #ifndef lint
-static char sccsid[] = "@(#)snova.c    5.4 (Berkeley) 6/1/90";
+#if 0
+static char sccsid[] = "@(#)snova.c    8.1 (Berkeley) 5/31/93";
+#else
+__RCSID("$NetBSD: snova.c,v 1.10 2018/02/08 09:05:16 dholland Exp $");
+#endif
 #endif /* not lint */
 
-# include      "trek.h"
+#include <stdio.h>
+#include <unistd.h>
+#include "trek.h"
 
 /*
 **  CAUSE SUPERNOVA TO OCCUR
@@ -58,37 +63,34 @@ static char sccsid[] = "@(#)snova.c 5.4 (Berkeley) 6/1/90";
 **     override mode.
 */
 
-snova(x, y)
-int    x, y;
+void
+snova(int x, int y)
 {
-       int                     qx, qy;
-       register int            ix, iy;
-       int                     f;
-       int                     dx, dy;
-       int                     n;
-       register struct quad    *q;
+       int             qx, qy;
+       int             ix, iy = 0;
+       int             f;
+       int             dx, dy;
+       int             n;
+       struct quad     *q;
 
        f = 0;
        ix = x;
-       if (ix < 0)
-       {
+       if (ix < 0) {
                /* choose a quadrant */
-               while (1)
-               {
+               while (1) {
                        qx = ranf(NQUADS);
                        qy = ranf(NQUADS);
                        q = &Quad[qx][qy];
                        if (q->stars > 0)
                                break;
                }
-               if (Ship.quadx == qx && Ship.quady == qy)
-               {
+               if (Ship.quadx == qx && Ship.quady == qy) {
                        /* select a particular star */
                        n = ranf(q->stars);
-                       for (ix = 0; ix < NSECTS; ix++)
-                       {
+                       for (ix = 0; ix < NSECTS; ix++) {
                                for (iy = 0; iy < NSECTS; iy++)
-                                       if (Sect[ix][iy] == STAR || Sect[ix][iy] == INHABIT)
+                                       if (Sect[ix][iy] == STAR ||
+                                           Sect[ix][iy] == INHABIT)
                                                if ((n -= 1) <= 0)
                                                        break;
                                if (n <= 0)
@@ -96,9 +98,7 @@ int   x, y;
                        }
                        f = 1;
                }
-       }
-       else
-       {
+       } else {
                /* current quadrant */
                iy = y;
                qx = Ship.quadx;
@@ -106,28 +106,25 @@ int       x, y;
                q = &Quad[qx][qy];
                f = 1;
        }
-       if (f)
-       {
+       if (f) {
                /* supernova is in same quadrant as Enterprise */
-               printf("\a\nRED ALERT: supernova occuring at %d,%d\n", ix, iy);
+               printf("\a\nRED ALERT: supernova occurring at %d,%d\n", ix, iy);
                dx = ix - Ship.sectx;
                dy = iy - Ship.secty;
-               if (dx * dx + dy * dy <= 2)
-               {
+               if (dx * dx + dy * dy <= 2) {
                        printf("***  Emergency override attem");
                        sleep(1);
                        printf("\n");
                        lose(L_SNOVA);
                }
                q->scanned = 1000;
-       }
-       else
-       {
-               if (!damaged(SSRADIO))
-               {
+       } else {
+               if (!damaged(SSRADIO)) {
                        q->scanned = 1000;
-                       printf("\nUhura: Captain, Starfleet Command reports a supernova\n");
-                       printf("  in quadrant %d,%d.  Caution is advised\n", qx, qy);
+                       printf("\nUhura: Captain, Starfleet Command reports "
+                              "a supernova\n");
+                       printf("  in quadrant %d,%d.  Caution is advised\n",
+                               qx, qy);
                }
        }
 
@@ -135,23 +132,22 @@ int       x, y;
        dx = q->klings;
        dy = q->stars;
        Now.klings -= dx;
-       if (x >= 0)
-       {
+       if (x >= 0) {
                /* Enterprise caused supernova */
                Game.kills += dy;
                if (q->bases)
-                       killb(qx, qy, -1);
+                       killb(qx, qy);
                Game.killk += dx;
-       }
-       else
+       } else {
                if (q->bases)
-                       killb(qx, qy, 0);
+                       killb(qx, qy);
+       }
        killd(qx, qy, (x >= 0));
        q->stars = -1;
        q->klings = 0;
-       if (Now.klings <= 0)
-       {
-               printf("Lucky devil, that supernova destroyed the last klingon\n");
+       if (Now.klings <= 0) {
+               printf("Lucky devil, that supernova destroyed the last "
+                      "klingon\n");
                win();
        }
        return;