]> git.cameronkatri.com Git - bsdgames-darwin.git/blobdiff - battlestar/battlestar.c
Make spacing nicer and add explicit NULL initializers.
[bsdgames-darwin.git] / battlestar / battlestar.c
index 7f4cfe9245f524eb5c562d716545affa93331fec..6d0ab8ec75edddb1d87514f5e44e761d9835c33b 100644 (file)
@@ -1,6 +1,8 @@
+/*     $NetBSD: battlestar.c,v 1.11 2000/09/08 17:22:01 jsm 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
  * SUCH DAMAGE.
  */
 
+#include <sys/cdefs.h>
 #ifndef lint
-char copyright[] =
-"@(#) Copyright (c) 1983 Regents of the University of California.\n\
- All rights reserved.\n";
-#endif /* not lint */
+__COPYRIGHT("@(#) Copyright (c) 1983, 1993\n\
+       The Regents of the University of California.  All rights reserved.\n");
+#endif                         /* not lint */
 
 #ifndef lint
-/*static char sccsid[] = "from: @(#)battlestar.c       5.3 (Berkeley) 6/1/90";*/
-static char rcsid[] = "$Id: battlestar.c,v 1.2 1993/08/01 18:56:14 mycroft Exp $";
-#endif /* not lint */
+#if 0
+static char sccsid[] = "@(#)battlestar.c       8.2 (Berkeley) 4/28/95";
+#else
+__RCSID("$NetBSD: battlestar.c,v 1.11 2000/09/08 17:22:01 jsm Exp $");
+#endif
+#endif                         /* not lint */
 
 /*
  * Battlestar - a stellar-tropical adventure game
@@ -49,26 +54,39 @@ static char rcsid[] = "$Id: battlestar.c,v 1.2 1993/08/01 18:56:14 mycroft Exp $
  * on the Cory PDP-11/70, University of California, Berkeley.
  */
 
-#include "externs.h"
+#include "extern.h"
+
+int main __P((int, char *[]));
 
-main(argc,argv)
-int  argc;
-char **argv;
+int
+main(argc, argv)
+       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();
@@ -77,16 +95,16 @@ start:
        whichway(location[position]);
 run:
        next = getcom(mainbuf, sizeof mainbuf, ">-: ",
-               "Please type in something.");
+           "Please type in something.");
        for (wordcount = 0; next && wordcount < 20; 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");
        }
 }