]> git.cameronkatri.com Git - bsdgames-darwin.git/blobdiff - battlestar/battlestar.c
Simplify, little KNF
[bsdgames-darwin.git] / battlestar / battlestar.c
index 6260e6cfd488797468ebc7ceb3f8fb1cfde5851f..47465799e2e1db50d95df96156718a6fd78c795a 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: battlestar.c,v 1.5 1997/10/10 11:39:12 lukem 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.
  *
 
 #include <sys/cdefs.h>
 #ifndef lint
-__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
-__RCSID("$NetBSD: battlestar.c,v 1.5 1997/10/10 11:39:12 lukem 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,27 +52,33 @@ __RCSID("$NetBSD: battlestar.c,v 1.5 1997/10/10 11:39:12 lukem Exp $");
 
 #include "extern.h"
 
-int    main __P((int, char *[]));
-
 int
-main(argc,argv)
-       int  argc;
-       char **argv;
+main(int argc, char **argv)
 {
-       char mainbuf[LINELENGTH];
-       char *next;
+       char    mainbuf[LINELENGTH];
+       char   *next;
+
+       /* Open the score file then revoke setgid privileges */
+       open_score_file();
+       setgid(getgid());
 
-       initialize(argc < 2 || strcmp(argv[1], "-r"));
+       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();
@@ -85,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(0);
+       case -1:
+               goto run;
+       case 0:
+               goto start;
+       default:
+               errx(1, "bad return from cypher(): please submit a bug report");
        }
 }