xref: /csrg-svn/games/battlestar/init.c (revision 69130)
118723Sedward /*
260750Sbostic  * Copyright (c) 1983, 1993
360750Sbostic  *	The Regents of the University of California.  All rights reserved.
434234Sbostic  *
542569Sbostic  * %sccs.include.redist.c%
618723Sedward  */
718723Sedward 
817386Sedward #ifndef lint
9*69130Sbostic static char sccsid[] = "@(#)init.c	8.4 (Berkeley) 04/30/95";
1034234Sbostic #endif /* not lint */
1117386Sedward 
1237011Sbostic #include <sys/types.h>
1369066Sbostic #include "extern.h"
1417386Sedward #include <pwd.h>
1517386Sedward 
initialize(startup)1617386Sedward initialize(startup)
1717386Sedward 	char startup;
1817386Sedward {
1917386Sedward 	register struct objs *p;
2046729Sbostic 	void die();
2117386Sedward 
2217386Sedward 	puts("Version 4.2, fall 1984.");
2317386Sedward 	puts("First Adventure game written by His Lordship, the honorable");
2417386Sedward 	puts("Admiral D.W. Riggle\n");
2569129Sbostic 	location = dayfile;
2617386Sedward 	srand(getpid());
27*69130Sbostic 	getutmp(uname);
28*69130Sbostic 	wiz = wizard(uname);
2917386Sedward 	wordinit();
3017386Sedward 	if (startup) {
3117386Sedward 		direction = NORTH;
3217386Sedward 		time = 0;
3317386Sedward 		snooze = CYCLE * 1.5;
3417386Sedward 		position = 22;
3517386Sedward 		setbit(wear, PAJAMAS);
3617386Sedward 		fuel = TANKFULL;
3717386Sedward 		torps = TORPEDOES;
3817386Sedward 		for (p = dayobjs; p->room != 0; p++)
3917386Sedward 			setbit(location[p->room].objects, p->obj);
4017386Sedward 	} else
4117386Sedward 		restore();
4217386Sedward 	signal(SIGINT, die);
4317386Sedward }
4417386Sedward 
getutmp(uname)4517386Sedward getutmp(uname)
4617386Sedward 	char *uname;
4717386Sedward {
4817386Sedward 	struct passwd *ptr;
4917386Sedward 
5017386Sedward 	ptr = getpwuid(getuid());
5117386Sedward 	strcpy(uname, ptr ? ptr->pw_name : "");
5217386Sedward }
5317386Sedward 
5417440Sedward char *list[] = {	/* hereditary wizards */
5517386Sedward 	"riggle",
5617386Sedward 	"chris",
5717386Sedward 	"edward",
5817386Sedward 	"comay",
5917440Sedward 	"yee",
6017440Sedward 	"dmr",
6117440Sedward 	"ken",
6217386Sedward 	0
6317386Sedward };
6417386Sedward 
6517440Sedward char *badguys[] = {
6617440Sedward 	"wnj",
6717440Sedward 	"root",
6817440Sedward 	"ted",
6917440Sedward 	0
7017440Sedward };
7117386Sedward 
wizard(uname)7217386Sedward wizard(uname)
7317386Sedward 	char *uname;
7417386Sedward {
7517386Sedward 	char flag;
7617386Sedward 
7717386Sedward 	if (flag = checkout(uname))
7817386Sedward 		printf("You are the Great wizard %s.\n", uname);
7917386Sedward 	return flag;
8017386Sedward }
8117386Sedward 
checkout(uname)8217386Sedward checkout(uname)
8317386Sedward 	register char *uname;
8417386Sedward {
8517386Sedward 	register char **ptr;
8617386Sedward 
8717386Sedward 	for (ptr = list; *ptr; ptr++)
8817386Sedward 		if (strcmp(*ptr, uname) == 0)
8917386Sedward 			return 1;
9017386Sedward 	for (ptr = badguys; *ptr; ptr++)
9117386Sedward 		if (strcmp(*ptr, uname) == 0) {
9217386Sedward 			printf("You are the Poor anti-wizard %s.  Good Luck!\n",
9317386Sedward 				uname);
9417386Sedward 			CUMBER = 3;
9517440Sedward 			WEIGHT = 9;	/* that'll get him! */
9617386Sedward 			clock = 10;
9717386Sedward 			setbit(location[7].objects, WOODSMAN);	/* viper room */
9817386Sedward 			setbit(location[20].objects, WOODSMAN);	/* laser " */
9917386Sedward 			setbit(location[13].objects, DARK);	/* amulet " */
10017386Sedward 			setbit(location[8].objects, ELF);	/* closet */
10117386Sedward 			return 0;	/* anything else, Chris? */
10217386Sedward 		}
10317386Sedward 	return 0;
10417386Sedward }
105