]> git.cameronkatri.com Git - bsdgames-darwin.git/blobdiff - battlestar/battlestar.c
buffnum is shared between subs.c and fancy.c
[bsdgames-darwin.git] / battlestar / battlestar.c
index 6eb0bc06daaa4f61beb5a613cd44473854a0f2e2..47465799e2e1db50d95df96156718a6fd78c795a 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: battlestar.c,v 1.4 1997/01/07 11:56:32 tls Exp $       */
+/*     $NetBSD: battlestar.c,v 1.16 2008/07/20 01:03:21 lukem Exp $    */
 
 /*
  * Copyright (c) 1983, 1993
  * 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 copyright[] =
-"@(#) Copyright (c) 1983, 1993\n\
-       The Regents of the University of California.  All rights reserved.\n";
-#endif /* not lint */
+__COPYRIGHT("@(#) Copyright (c) 1983, 1993\
+ The Regents of the University of California.  All rights reserved.");
+#endif                         /* not lint */
 
 #ifndef lint
 #if 0
 static char sccsid[] = "@(#)battlestar.c       8.2 (Berkeley) 4/28/95";
 #else
-static char rcsid[] = "$NetBSD: battlestar.c,v 1.4 1997/01/07 11:56:32 tls Exp $";
+__RCSID("$NetBSD: battlestar.c,v 1.16 2008/07/20 01:03:21 lukem Exp $");
 #endif
-#endif /* not lint */
+#endif                         /* not lint */
 
 /*
  * Battlestar - a stellar-tropical adventure game
@@ -56,24 +52,33 @@ static char rcsid[] = "$NetBSD: battlestar.c,v 1.4 1997/01/07 11:56:32 tls Exp $
 
 #include "extern.h"
 
-main(argc,argv)
-int  argc;
-char **argv;
+int
+main(int argc, char **argv)
 {
-       char mainbuf[LINELENGTH];
-       char *next;
+       char    mainbuf[LINELENGTH];
+       char   *next;
 
-       initialize(argc < 2 || strcmp(argv[1], "-r"));
+       /* Open the score file then revoke setgid privileges */
+       open_score_file();
+       setgid(getgid());
+
+       if (argc < 2)
+               initialize(NULL);
+       else if (strcmp(argv[1], "-r") == 0)
+               initialize((argc > 2) ? argv[2] : DEFAULT_SAVE_FILE);
+       else
+               initialize(argv[1]);
 start:
        news();
-       beenthere[position]++;
+       if (beenthere[position] <= ROOMDESC)
+               beenthere[position]++;
        if (notes[LAUNCHED])
-               crash();                /* decrements fuel & crash */
+               crash();        /* decrements fuel & crash */
        if (matchlight) {
                puts("Your match splutters out.");
                matchlight = 0;
        }
-       if (!notes[CANTSEE] || testbit(inven,LAMPON) ||
+       if (!notes[CANTSEE] || testbit(inven, LAMPON) ||
            testbit(location[position].objects, LAMPON)) {
                writedes();
                printobjs();
@@ -82,16 +87,16 @@ start:
        whichway(location[position]);
 run:
        next = getcom(mainbuf, sizeof mainbuf, ">-: ",
-               "Please type in something.");
-       for (wordcount = 0; next && wordcount < 20; wordcount++)
+           "Please type in something.");
+       for (wordcount = 0; next && wordcount < NWORD - 1; wordcount++)
                next = getword(next, words[wordcount], -1);
        parse();
        switch (cypher()) {
-               case -1:
-                       goto run;
-               case 0:
-                       goto start;
-               default:
-                       exit();
+       case -1:
+               goto run;
+       case 0:
+               goto start;
+       default:
+               errx(1, "bad return from cypher(): please submit a bug report");
        }
 }