|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1983 Regents of the University of California, ! 3: * All rights reserved. Redistribution permitted subject to ! 4: * the terms of the Berkeley Software License Agreement. ! 5: */ ! 6: ! 7: #ifndef lint ! 8: static char sccsid[] = "@(#)init.c 1.3 4/24/85"; ! 9: #endif ! 10: ! 11: #include "externs.h" ! 12: #include <pwd.h> ! 13: ! 14: initialize(startup) ! 15: char startup; ! 16: { ! 17: register struct objs *p; ! 18: int die(); ! 19: ! 20: puts("Version 4.2, fall 1984."); ! 21: puts("First Adventure game written by His Lordship, the honorable"); ! 22: puts("Admiral D.W. Riggle\n"); ! 23: srand(getpid()); ! 24: getutmp(uname); ! 25: wiz = wizard(uname); ! 26: wordinit(); ! 27: if (startup) { ! 28: location = dayfile; ! 29: direction = NORTH; ! 30: time = 0; ! 31: snooze = CYCLE * 1.5; ! 32: position = 22; ! 33: setbit(wear, PAJAMAS); ! 34: fuel = TANKFULL; ! 35: torps = TORPEDOES; ! 36: for (p = dayobjs; p->room != 0; p++) ! 37: setbit(location[p->room].objects, p->obj); ! 38: } else ! 39: restore(); ! 40: signal(SIGINT, die); ! 41: } ! 42: ! 43: getutmp(uname) ! 44: char *uname; ! 45: { ! 46: struct passwd *ptr; ! 47: ! 48: ptr = getpwuid(getuid()); ! 49: strcpy(uname, ptr ? ptr->pw_name : ""); ! 50: } ! 51: ! 52: char *list[] = { /* hereditary wizards */ ! 53: "riggle", ! 54: "chris", ! 55: "edward", ! 56: "comay", ! 57: "yee", ! 58: "dmr", ! 59: "ken", ! 60: 0 ! 61: }; ! 62: ! 63: char *badguys[] = { ! 64: "wnj", ! 65: "root", ! 66: "ted", ! 67: 0 ! 68: }; ! 69: ! 70: wizard(uname) ! 71: char *uname; ! 72: { ! 73: char flag; ! 74: ! 75: if (flag = checkout(uname)) ! 76: printf("You are the Great wizard %s.\n", uname); ! 77: return flag; ! 78: } ! 79: ! 80: checkout(uname) ! 81: register char *uname; ! 82: { ! 83: register char **ptr; ! 84: ! 85: for (ptr = list; *ptr; ptr++) ! 86: if (strcmp(*ptr, uname) == 0) ! 87: return 1; ! 88: for (ptr = badguys; *ptr; ptr++) ! 89: if (strcmp(*ptr, uname) == 0) { ! 90: printf("You are the Poor anti-wizard %s. Good Luck!\n", ! 91: uname); ! 92: CUMBER = 3; ! 93: WEIGHT = 9; /* that'll get him! */ ! 94: clock = 10; ! 95: setbit(location[7].objects, WOODSMAN); /* viper room */ ! 96: setbit(location[20].objects, WOODSMAN); /* laser " */ ! 97: setbit(location[13].objects, DARK); /* amulet " */ ! 98: setbit(location[8].objects, ELF); /* closet */ ! 99: return 0; /* anything else, Chris? */ ! 100: } ! 101: return 0; ! 102: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.