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