]>
git.cameronkatri.com Git - bsdgames-darwin.git/blob - adventure/hdr.h
1 /* $NetBSD: hdr.h,v 1.4 1997/10/11 01:53:26 lukem Exp $ */
4 * Copyright (c) 1991, 1993
5 * The Regents of the University of California. All rights reserved.
7 * The game adventure was originally written in Fortran by Will Crowther
8 * and Don Woods. It was later translated to C and enhanced by Jim
9 * Gillogly. This code is derived from software contributed to Berkeley
10 * by Jim Gillogly at The Rand Corporation.
12 * Redistribution and use in source and binary forms, with or without
13 * modification, are permitted provided that the following conditions
15 * 1. Redistributions of source code must retain the above copyright
16 * notice, this list of conditions and the following disclaimer.
17 * 2. Redistributions in binary form must reproduce the above copyright
18 * notice, this list of conditions and the following disclaimer in the
19 * documentation and/or other materials provided with the distribution.
20 * 3. All advertising materials mentioning features or use of this software
21 * must display the following acknowledgement:
22 * This product includes software developed by the University of
23 * California, Berkeley and its contributors.
24 * 4. Neither the name of the University nor the names of its contributors
25 * may be used to endorse or promote products derived from this software
26 * without specific prior written permission.
28 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
29 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
30 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
31 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
32 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
33 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
34 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
35 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
36 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
37 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
40 * @(#)hdr.h 8.1 (Berkeley) 5/31/93
43 /* ADVENTURE -- Jim Gillogly, Jul 1977
44 * This program is a re-write of ADVENT, written in FORTRAN mostly by
45 * Don Woods of SAIL. In most places it is as nearly identical to the
46 * original as possible given the language and word-size differences.
47 * A few places, such as the message arrays and travel arrays were changed
48 * to reflect the smaller core size and word size. The labels of the
49 * original are reflected in this version, so that the comments of the
50 * fortran are still applicable here.
52 * The data file distributed with the fortran source is assumed to be called
53 * "glorkz" in the directory where the program is first run.
56 /* hdr.h: included by c advent files */
58 int datfd
; /* message file descriptor */
61 extern char data_file
[]; /* Virtual data file */
65 #define FLUSHLINE while (getchar()!='\n')
66 #define FLUSHLF while (next()!=LF)
68 int loc
, newloc
, oldloc
, oldlc2
, wzdark
, gaveup
, kq
, k
, k2
;
69 char *wd1
, *wd2
; /* the complete words */
72 int saved
, savet
, mxscor
, latncy
;
74 #define SHORT 50 /* How short is a demo game? */
76 #define MAXSTR 20 /* max length of user's words */
78 #define HTSIZE 512 /* max number of vocab words */
79 struct hashtab
{ /* hash table for vocabulary */
80 int val
; /* word type &index (ktab) */
81 char *atab
; /* pointer to actual string */
83 #define SEED 1815622 /* "Encryption" seed */
88 int seekadr
; /* DATFILE must be < 2**16 */
91 char *seekadr
;/* Msg start in virtual disk */
92 int txtlen
; /* length of msg starting here */
96 struct text rtext
[RTXSIZ
]; /* random text messages */
99 struct text mtext
[MAGSIZ
]; /* magic messages */
103 struct text ctext
[CLSMAX
]; /* classes of adventurer */
106 struct text ptext
[101]; /* object descriptions */
108 #define LOCSIZ 141 /* number of locations */
109 struct text ltext
[LOCSIZ
]; /* long loc description */
110 struct text stext
[LOCSIZ
]; /* short loc descriptions */
112 struct travlist
{ /* direcs & conditions of travel */
113 struct travlist
*next
; /* ptr to next list entry */
114 int conditions
; /* m in writeup (newloc / 1000) */
115 int tloc
; /* n in writeup (newloc % 1000) */
116 int tverb
; /* the verb that takes you there */
117 } *travel
[LOCSIZ
], *tkk
; /* travel is closer to keys(...) */
121 int plac
[101]; /* initial object placement */
122 int fixd
[101], fixed
[101]; /* location fixed? */
124 int actspk
[35]; /* rtext msg for verb <n> */
126 int cond
[LOCSIZ
]; /* various condition bits */
128 extern int setbit
[16]; /* bit defn masks 1,2,4,... */
131 int hints
[20][5]; /* info on hints */
132 int hinted
[20], hintlc
[20];
134 int place
[101], prop
[101], links
[201];
137 int maxtrs
, tally
, tally2
; /* treasure values */
142 int keys
, lamp
, grate
, cage
, rod
, rod2
, steps
, /* mnemonics */
143 bird
, door
, pillow
, snake
, fissur
, tablet
, clam
, oyster
,
144 magzin
, dwarf
, knife
, food
, bottle
, water
, oil
, plant
, plant2
,
145 axe
, mirror
, dragon
, chasm
, troll
, troll2
, bear
, messag
,
146 vend
, batter
, nugget
, coins
, chest
, eggs
, tridnt
, vase
,
147 emrald
, pyram
, pearl
, rug
, chain
, spices
, back
, look
, cave
,
148 null
, entrnc
, dprssn
, enter
, stream
, pour
, say
, lock
, throw,
151 int chloc
, chloc2
, dseen
[7], dloc
[7], /* dwarf stuff */
152 odloc
[7], dflag
, daltlc
;
154 int tk
[21], stick
, dtotal
, attack
;
155 int turns
, lmwarn
, iwest
, knfloc
, detail
, /* various flags and
157 abbnum
, maxdie
, numdie
, holdng
, dkill
, foobar
, bonus
, clock1
,
158 clock2
, saved
, closng
, panic
, closed
, scorng
;
160 int demo
, newloc
, limit
;
162 #define DECR(a,b,c,d,e) decr(a+'+',b+'-',c+'#',d+'&',e+'%')