]>
git.cameronkatri.com Git - bsdgames-darwin.git/blob - adventure/hdr.h
1 /* $NetBSD: hdr.h,v 1.11 2005/07/01 00:03:36 jmc 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 int datfd
; /* message file descriptor */
60 extern volatile sig_atomic_t delhit
;
62 extern char data_file
[]; /* Virtual data file */
66 #define FLUSHLINE do { int flushline_ch; while ((flushline_ch = getchar()) != EOF && flushline_ch != '\n'); } while (0)
67 #define FLUSHLF while (next()!=LF)
69 extern int loc
, newloc
, oldloc
, oldlc2
, wzdark
, gaveup
, kq
, k
, k2
;
70 extern char *wd1
, *wd2
; /* the complete words */
71 extern int verb
, obj
, spk
;
73 extern int saveday
, savet
, mxscor
, latncy
;
75 #define SHORT 50 /* How short is a demo game? */
77 #define MAXSTR 20 /* max length of user's words */
79 #define HTSIZE 512 /* max number of vocab words */
80 extern struct hashtab
{ /* hash table for vocabulary */
81 int val
; /* word type &index (ktab) */
82 char *atab
; /* pointer to actual string */
84 #define SEED 1815622 /* "Encryption" seed */
87 char *seekadr
;/* Msg start in virtual disk */
88 int txtlen
; /* length of msg starting here */
92 extern struct text rtext
[RTXSIZ
]; /* random text messages */
95 extern struct text mtext
[MAGSIZ
]; /* magic messages */
99 extern struct text ctext
[CLSMAX
]; /* classes of adventurer */
100 extern int cval
[CLSMAX
];
102 extern struct text ptext
[101]; /* object descriptions */
104 #define LOCSIZ 141 /* number of locations */
105 extern struct text ltext
[LOCSIZ
]; /* long loc description */
106 extern struct text stext
[LOCSIZ
]; /* short loc descriptions */
108 extern struct travlist
{ /* direcs & conditions of travel */
109 struct travlist
*next
; /* ptr to next list entry */
110 int conditions
; /* m in writeup (newloc / 1000) */
111 int tloc
; /* n in writeup (newloc % 1000) */
112 int tverb
; /* the verb that takes you there */
113 } *travel
[LOCSIZ
], *tkk
; /* travel is closer to keys(...) */
115 extern int atloc
[LOCSIZ
];
117 extern int plac
[101]; /* initial object placement */
118 extern int fixd
[101], fixed
[101]; /* location fixed? */
120 extern int actspk
[35]; /* rtext msg for verb <n> */
122 extern int cond
[LOCSIZ
]; /* various condition bits */
124 extern int setbit
[16]; /* bit defn masks 1,2,4,... */
127 extern int hints
[20][5]; /* info on hints */
128 extern int hinted
[20], hintlc
[20];
130 extern int place
[101], prop
[101], links
[201];
131 extern int abb
[LOCSIZ
];
133 extern int maxtrs
, tally
, tally2
; /* treasure values */
138 extern int keys
, lamp
, grate
, cage
, rod
, rod2
, steps
, /* mnemonics */
139 bird
, door
, pillow
, snake
, fissur
, tablet
, clam
, oyster
,
140 magzin
, dwarf
, knife
, food
, bottle
, water
, oil
, plant
, plant2
,
141 axe
, mirror
, dragon
, chasm
, troll
, troll2
, bear
, messag
,
142 vend
, batter
, nugget
, coins
, chest
, eggs
, tridnt
, vase
,
143 emrald
, pyram
, pearl
, rug
, chain
, spices
, back
, look
, cave
,
144 null
, entrnc
, dprssn
, enter
, stream
, pour
, say
, lock
, throw,
147 extern int chloc
, chloc2
, dseen
[7], dloc
[7], /* dwarf stuff */
148 odloc
[7], dflag
, daltlc
;
150 extern int tk
[21], stick
, dtotal
, attack
;
151 extern int turns
, lmwarn
, iwest
, knfloc
, detail
, /* various flags and
153 abbnum
, maxdie
, numdie
, holdng
, dkill
, foobar
, bonus
, clock1
,
154 clock2
, saved
, closng
, panic
, closed
, scorng
;
156 extern int demo
, limit
;
158 #define DECR(a,b,c,d,e) decr(a+'+',b+'-',c+'#',d+'&',e+'%')