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: }
Defined functions
Defined variables
list
defined in line
52; used 1 times
sccsid
defined in line
8;
never used