118723Sedward /* 2*60750Sbostic * Copyright (c) 1983, 1993 3*60750Sbostic * The Regents of the University of California. All rights reserved. 434234Sbostic * 542569Sbostic * %sccs.include.redist.c% 618723Sedward */ 718723Sedward 817386Sedward #ifndef lint 9*60750Sbostic static char sccsid[] = "@(#)init.c 8.1 (Berkeley) 05/31/93"; 1034234Sbostic #endif /* not lint */ 1117386Sedward 1237011Sbostic #include <sys/types.h> 1317386Sedward #include "externs.h" 1417386Sedward #include <pwd.h> 1517386Sedward 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"); 2517386Sedward srand(getpid()); 2617386Sedward getutmp(uname); 2717386Sedward wiz = wizard(uname); 2817386Sedward wordinit(); 2917386Sedward if (startup) { 3017386Sedward location = dayfile; 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 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 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 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