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