xref: /openbsd/games/battlestar/battlestar.c (revision df930be7)
1*df930be7Sderaadt /*	$NetBSD: battlestar.c,v 1.3 1995/03/21 15:06:47 cgd Exp $	*/
2*df930be7Sderaadt 
3*df930be7Sderaadt /*
4*df930be7Sderaadt  * Copyright (c) 1983, 1993
5*df930be7Sderaadt  *	The Regents of the University of California.  All rights reserved.
6*df930be7Sderaadt  *
7*df930be7Sderaadt  * Redistribution and use in source and binary forms, with or without
8*df930be7Sderaadt  * modification, are permitted provided that the following conditions
9*df930be7Sderaadt  * are met:
10*df930be7Sderaadt  * 1. Redistributions of source code must retain the above copyright
11*df930be7Sderaadt  *    notice, this list of conditions and the following disclaimer.
12*df930be7Sderaadt  * 2. Redistributions in binary form must reproduce the above copyright
13*df930be7Sderaadt  *    notice, this list of conditions and the following disclaimer in the
14*df930be7Sderaadt  *    documentation and/or other materials provided with the distribution.
15*df930be7Sderaadt  * 3. All advertising materials mentioning features or use of this software
16*df930be7Sderaadt  *    must display the following acknowledgement:
17*df930be7Sderaadt  *	This product includes software developed by the University of
18*df930be7Sderaadt  *	California, Berkeley and its contributors.
19*df930be7Sderaadt  * 4. Neither the name of the University nor the names of its contributors
20*df930be7Sderaadt  *    may be used to endorse or promote products derived from this software
21*df930be7Sderaadt  *    without specific prior written permission.
22*df930be7Sderaadt  *
23*df930be7Sderaadt  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
24*df930be7Sderaadt  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25*df930be7Sderaadt  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26*df930be7Sderaadt  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
27*df930be7Sderaadt  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28*df930be7Sderaadt  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29*df930be7Sderaadt  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30*df930be7Sderaadt  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31*df930be7Sderaadt  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32*df930be7Sderaadt  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33*df930be7Sderaadt  * SUCH DAMAGE.
34*df930be7Sderaadt  */
35*df930be7Sderaadt 
36*df930be7Sderaadt #ifndef lint
37*df930be7Sderaadt static char copyright[] =
38*df930be7Sderaadt "@(#) Copyright (c) 1983, 1993\n\
39*df930be7Sderaadt 	The Regents of the University of California.  All rights reserved.\n";
40*df930be7Sderaadt #endif /* not lint */
41*df930be7Sderaadt 
42*df930be7Sderaadt #ifndef lint
43*df930be7Sderaadt #if 0
44*df930be7Sderaadt static char sccsid[] = "@(#)battlestar.c	8.1 (Berkeley) 5/31/93";
45*df930be7Sderaadt #else
46*df930be7Sderaadt static char rcsid[] = "$NetBSD: battlestar.c,v 1.3 1995/03/21 15:06:47 cgd Exp $";
47*df930be7Sderaadt #endif
48*df930be7Sderaadt #endif /* not lint */
49*df930be7Sderaadt 
50*df930be7Sderaadt /*
51*df930be7Sderaadt  * Battlestar - a stellar-tropical adventure game
52*df930be7Sderaadt  *
53*df930be7Sderaadt  * Originally written by His Lordship, Admiral David W. Horatio Riggle,
54*df930be7Sderaadt  * on the Cory PDP-11/70, University of California, Berkeley.
55*df930be7Sderaadt  */
56*df930be7Sderaadt 
57*df930be7Sderaadt #include "externs.h"
58*df930be7Sderaadt 
59*df930be7Sderaadt main(argc,argv)
60*df930be7Sderaadt int  argc;
61*df930be7Sderaadt char **argv;
62*df930be7Sderaadt {
63*df930be7Sderaadt 	char mainbuf[LINELENGTH];
64*df930be7Sderaadt 	char *next;
65*df930be7Sderaadt 
66*df930be7Sderaadt 	initialize(argc < 2 || strcmp(argv[1], "-r"));
67*df930be7Sderaadt start:
68*df930be7Sderaadt 	news();
69*df930be7Sderaadt 	beenthere[position]++;
70*df930be7Sderaadt 	if (notes[LAUNCHED])
71*df930be7Sderaadt 		crash();		/* decrements fuel & crash */
72*df930be7Sderaadt 	if (matchlight) {
73*df930be7Sderaadt 		puts("Your match splutters out.");
74*df930be7Sderaadt 		matchlight = 0;
75*df930be7Sderaadt 	}
76*df930be7Sderaadt 	if (!notes[CANTSEE] || testbit(inven,LAMPON) ||
77*df930be7Sderaadt 	    testbit(location[position].objects, LAMPON)) {
78*df930be7Sderaadt 		writedes();
79*df930be7Sderaadt 		printobjs();
80*df930be7Sderaadt 	} else
81*df930be7Sderaadt 		puts("It's too dark to see anything in here!");
82*df930be7Sderaadt 	whichway(location[position]);
83*df930be7Sderaadt run:
84*df930be7Sderaadt 	next = getcom(mainbuf, sizeof mainbuf, ">-: ",
85*df930be7Sderaadt 		"Please type in something.");
86*df930be7Sderaadt 	for (wordcount = 0; next && wordcount < 20; wordcount++)
87*df930be7Sderaadt 		next = getword(next, words[wordcount], -1);
88*df930be7Sderaadt 	parse();
89*df930be7Sderaadt 	switch (cypher()) {
90*df930be7Sderaadt 		case -1:
91*df930be7Sderaadt 			goto run;
92*df930be7Sderaadt 		case 0:
93*df930be7Sderaadt 			goto start;
94*df930be7Sderaadt 		default:
95*df930be7Sderaadt 			exit();
96*df930be7Sderaadt 	}
97*df930be7Sderaadt }
98