xref: /csrg-svn/games/battlestar/init.c (revision 18723)
1*18723Sedward /*
2*18723Sedward  * Copyright (c) 1983 Regents of the University of California,
3*18723Sedward  * All rights reserved.  Redistribution permitted subject to
4*18723Sedward  * the terms of the Berkeley Software License Agreement.
5*18723Sedward  */
6*18723Sedward 
717386Sedward #ifndef lint
8*18723Sedward static char sccsid[] = "@(#)init.c	1.3 04/24/85";
917386Sedward #endif
1017386Sedward 
1117386Sedward #include "externs.h"
1217386Sedward #include <pwd.h>
1317386Sedward 
1417386Sedward initialize(startup)
1517386Sedward 	char startup;
1617386Sedward {
1717386Sedward 	register struct objs *p;
1817386Sedward 	int die();
1917386Sedward 
2017386Sedward 	puts("Version 4.2, fall 1984.");
2117386Sedward 	puts("First Adventure game written by His Lordship, the honorable");
2217386Sedward 	puts("Admiral D.W. Riggle\n");
2317386Sedward 	srand(getpid());
2417386Sedward 	getutmp(uname);
2517386Sedward 	wiz = wizard(uname);
2617386Sedward 	wordinit();
2717386Sedward 	if (startup) {
2817386Sedward 		location = dayfile;
2917386Sedward 		direction = NORTH;
3017386Sedward 		time = 0;
3117386Sedward 		snooze = CYCLE * 1.5;
3217386Sedward 		position = 22;
3317386Sedward 		setbit(wear, PAJAMAS);
3417386Sedward 		fuel = TANKFULL;
3517386Sedward 		torps = TORPEDOES;
3617386Sedward 		for (p = dayobjs; p->room != 0; p++)
3717386Sedward 			setbit(location[p->room].objects, p->obj);
3817386Sedward 	} else
3917386Sedward 		restore();
4017386Sedward 	signal(SIGINT, die);
4117386Sedward }
4217386Sedward 
4317386Sedward getutmp(uname)
4417386Sedward 	char *uname;
4517386Sedward {
4617386Sedward 	struct passwd *ptr;
4717386Sedward 
4817386Sedward 	ptr = getpwuid(getuid());
4917386Sedward 	strcpy(uname, ptr ? ptr->pw_name : "");
5017386Sedward }
5117386Sedward 
5217440Sedward char *list[] = {	/* hereditary wizards */
5317386Sedward 	"riggle",
5417386Sedward 	"chris",
5517386Sedward 	"edward",
5617386Sedward 	"comay",
5717440Sedward 	"yee",
5817440Sedward 	"dmr",
5917440Sedward 	"ken",
6017386Sedward 	0
6117386Sedward };
6217386Sedward 
6317440Sedward char *badguys[] = {
6417440Sedward 	"wnj",
6517440Sedward 	"root",
6617440Sedward 	"ted",
6717440Sedward 	0
6817440Sedward };
6917386Sedward 
7017386Sedward wizard(uname)
7117386Sedward 	char *uname;
7217386Sedward {
7317386Sedward 	char flag;
7417386Sedward 
7517386Sedward 	if (flag = checkout(uname))
7617386Sedward 		printf("You are the Great wizard %s.\n", uname);
7717386Sedward 	return flag;
7817386Sedward }
7917386Sedward 
8017386Sedward checkout(uname)
8117386Sedward 	register char *uname;
8217386Sedward {
8317386Sedward 	register char **ptr;
8417386Sedward 
8517386Sedward 	for (ptr = list; *ptr; ptr++)
8617386Sedward 		if (strcmp(*ptr, uname) == 0)
8717386Sedward 			return 1;
8817386Sedward 	for (ptr = badguys; *ptr; ptr++)
8917386Sedward 		if (strcmp(*ptr, uname) == 0) {
9017386Sedward 			printf("You are the Poor anti-wizard %s.  Good Luck!\n",
9117386Sedward 				uname);
9217386Sedward 			CUMBER = 3;
9317440Sedward 			WEIGHT = 9;	/* that'll get him! */
9417386Sedward 			clock = 10;
9517386Sedward 			setbit(location[7].objects, WOODSMAN);	/* viper room */
9617386Sedward 			setbit(location[20].objects, WOODSMAN);	/* laser " */
9717386Sedward 			setbit(location[13].objects, DARK);	/* amulet " */
9817386Sedward 			setbit(location[8].objects, ELF);	/* closet */
9917386Sedward 			return 0;	/* anything else, Chris? */
10017386Sedward 		}
10117386Sedward 	return 0;
10217386Sedward }
103