X-Git-Url: https://git.cameronkatri.com/bsdgames-darwin.git/blobdiff_plain/3c786f26623b42ba83712ad2fafba474244b421f..7890a8c64a29e8f0ee5b9b2ef41a118f9ac499bd:/battlestar/battlestar.c diff --git a/battlestar/battlestar.c b/battlestar/battlestar.c index 6eb0bc06..47465799 100644 --- a/battlestar/battlestar.c +++ b/battlestar/battlestar.c @@ -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 @@ -12,11 +12,7 @@ * 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. * @@ -33,19 +29,19 @@ * SUCH DAMAGE. */ +#include #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"); } }