1 /* $NetBSD: hdr.h,v 1.12 2009/08/12 04:28:27 dholland 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. Neither the name of the University nor the names of its contributors
21 * may be used to endorse or promote products derived from this software
22 * without specific prior written permission.
24 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
25 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
36 * @(#)hdr.h 8.1 (Berkeley) 5/31/93
39 /* ADVENTURE -- Jim Gillogly, Jul 1977
40 * This program is a re-write of ADVENT, written in FORTRAN mostly by
41 * Don Woods of SAIL. In most places it is as nearly identical to the
42 * original as possible given the language and word-size differences.
43 * A few places, such as the message arrays and travel arrays were changed
44 * to reflect the smaller core size and word size. The labels of the
45 * original are reflected in this version, so that the comments of the
46 * fortran are still applicable here.
48 * The data file distributed with the fortran source is assumed to be called
49 * "glorkz" in the directory where the program is first run.
51 * The original FORTRAN version can be found at
52 * <URL:ftp://ftp.gmd.de/if-archive/games/source/advent-original.tar.gz>.
55 /* hdr.h: included by c advent files */
59 extern volatile sig_atomic_t delhit
;
61 extern char data_file
[]; /* Virtual data file */
65 #define FLUSHLINE do { int flushline_ch; while ((flushline_ch = getchar()) != EOF && flushline_ch != '\n'); } while (0)
66 #define FLUSHLF while (next()!=LF)
68 extern int loc
, newloc
, oldloc
, oldloc2
, wasdark
, gaveup
, kq
, k
, k2
;
69 extern char *wd1
, *wd2
; /* the complete words */
70 extern int verb
, obj
, spk
;
72 extern int saveday
, savet
, maxscore
, latency
;
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 extern 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 */
86 char *seekadr
;/* Msg start in virtual disk */
87 int txtlen
; /* length of msg starting here */
91 extern struct text rtext
[RTXSIZE
]; /* random text messages */
94 extern struct text mtext
[MAGSIZE
]; /* magic messages */
98 extern struct text ctext
[CLSMAX
]; /* classes of adventurer */
99 extern int cval
[CLSMAX
];
101 extern struct text ptext
[101]; /* object descriptions */
103 #define LOCSIZE 141 /* number of locations */
104 extern struct text ltext
[LOCSIZE
]; /* long loc description */
105 extern struct text stext
[LOCSIZE
]; /* short loc descriptions */
107 extern struct travlist
{ /* direcs & conditions of travel */
108 struct travlist
*next
; /* ptr to next list entry */
109 int conditions
; /* m in writeup (newloc / 1000) */
110 int tloc
; /* n in writeup (newloc % 1000) */
111 int tverb
; /* the verb that takes you there */
112 } *travel
[LOCSIZE
], *tkk
; /* travel is closer to keys(...) */
114 extern int atloc
[LOCSIZE
];
116 extern int plac
[101]; /* initial object placement */
117 extern int fixd
[101], fixed
[101]; /* location fixed? */
119 extern int actspeak
[35]; /* rtext msg for verb <n> */
121 extern int cond
[LOCSIZE
]; /* various condition bits */
123 extern int setbit
[16]; /* bit defn masks 1,2,4,... */
126 extern int hints
[20][5]; /* info on hints */
127 extern int hinted
[20], hintlc
[20];
129 extern int place
[101], prop
[101], links
[201];
130 extern int abb
[LOCSIZE
];
132 extern int maxtrs
, tally
, tally2
; /* treasure values */
137 extern int keys
, lamp
, grate
, cage
, rod
, rod2
, steps
, /* mnemonics */
138 bird
, door
, pillow
, snake
, fissure
, tablet
, clam
, oyster
,
139 magazine
, dwarf
, knife
, food
, bottle
, water
, oil
, plant
, plant2
,
140 axe
, mirror
, dragon
, chasm
, troll
, troll2
, bear
, message
,
141 vend
, batter
, nugget
, coins
, chest
, eggs
, trident
, vase
,
142 emerald
, pyramid
, pearl
, rug
, chain
, spices
, back
, look
, cave
,
143 null
, entrance
, depression
, /*enter, stream, pour,*/ say
, lock
,
146 extern int chloc
, chloc2
, dseen
[7], dloc
[7], /* dwarf stuff */
147 odloc
[7], dflag
, daltloc
;
149 extern int tk
[21], stick
, dtotal
, attack
;
150 extern int turns
, lmwarn
, iwest
, knfloc
, detail
, /* various flags and
152 abbnum
, maxdie
, numdie
, holding
, dkill
, foobar
, bonus
, clock1
,
153 clock2
, saved
, isclosing
, panic
, closed
, scoring
;
155 extern int demo
, limit
;
157 #define DECR(a,b,c,d,e) decr(a+'+',b+'-',c+'#',d+'&',e+'%')