]> git.cameronkatri.com Git - bsdgames-darwin.git/blobdiff - battlestar/battlestar.c
cgram: provide usage on incorrect invocation
[bsdgames-darwin.git] / battlestar / battlestar.c
index ea373e8914324cef7349bc97f5b98c4b774805ca..47465799e2e1db50d95df96156718a6fd78c795a 100644 (file)
@@ -1,6 +1,8 @@
+/*     $NetBSD: battlestar.c,v 1.16 2008/07/20 01:03:21 lukem 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
  * 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
-char copyright[] =
-"@(#) Copyright (c) 1983 Regents of the University of California.\n\
- 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
-static char sccsid[] = "@(#)battlestar.c       5.3 (Berkeley) 6/1/90";
-#endif /* not lint */
+#if 0
+static char sccsid[] = "@(#)battlestar.c       8.2 (Berkeley) 4/28/95";
+#else
+__RCSID("$NetBSD: battlestar.c,v 1.16 2008/07/20 01:03:21 lukem Exp $");
+#endif
+#endif                         /* not lint */
 
 /*
  * Battlestar - a stellar-tropical adventure game
@@ -48,26 +50,35 @@ static char sccsid[] = "@(#)battlestar.c    5.3 (Berkeley) 6/1/90";
  * on the Cory PDP-11/70, University of California, Berkeley.
  */
 
-#include "externs.h"
+#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;
+
+       /* 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();
@@ -76,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");
        }
 }