-/* $OpenBSD: hdr.h,v 1.17 2017/05/19 08:22:53 tb Exp $ */
+/* $OpenBSD: hdr.h,v 1.18 2021/01/27 01:59:39 deraadt Exp $ */
/* $NetBSD: hdr.h,v 1.2 1995/03/21 12:05:02 cgd Exp $ */
/*-
#include <signal.h>
-int datfd; /* message file descriptor */
-volatile sig_atomic_t delhit;
-int yea;
+extern int datfd; /* message file descriptor */
+extern volatile sig_atomic_t delhit;
+extern int yea;
extern char data_file[]; /* Virtual data file */
#define TAB 011
#define FLUSHLINE do { int c; while ((c = getchar()) != EOF && c != '\n'); } while (0)
#define FLUSHLF while (next()!=LF)
-int loc, newloc, oldloc, oldlc2, wzdark, gaveup, kq, k, k2;
-int verb, obj, spk;
+extern int loc, newloc, oldloc, oldlc2, wzdark, gaveup, kq, k, k2;
+extern int verb, obj, spk;
extern int blklin;
-time_t savet;
-int mxscor, latncy;
+extern time_t savet;
+extern int mxscor, latncy;
#define SHORT 50 /* How short is a demo game? */
#define MAXSTR 20 /* max length of user's words */
-char wd1[MAXSTR]; /* the complete words */
-char wd2[MAXSTR];
+extern char wd1[MAXSTR]; /* the complete words */
+extern char wd2[MAXSTR];
#define HTSIZE 512 /* max number of vocab words */
struct hashtab { /* hash table for vocabulary */
int val; /* word type &index (ktab) */
char *atab; /* pointer to actual string */
-} voc[HTSIZE];
+};
+extern struct hashtab voc[HTSIZE];
struct text {
char *seekadr; /* Msg start in virtual disk */
};
#define RTXSIZ 205
-struct text rtext[RTXSIZ]; /* random text messages */
+extern struct text rtext[RTXSIZ]; /* random text messages */
#define MAGSIZ 35
-struct text mtext[MAGSIZ]; /* magic messages */
+extern struct text mtext[MAGSIZ]; /* magic messages */
-int clsses;
+extern int clsses;
#define CLSMAX 12
-struct text ctext[CLSMAX]; /* classes of adventurer */
-int cval[CLSMAX];
+extern struct text ctext[CLSMAX]; /* classes of adventurer */
+extern int cval[CLSMAX];
-struct text ptext[101]; /* object descriptions */
+extern struct text ptext[101]; /* object descriptions */
#define LOCSIZ 141 /* number of locations */
-struct text ltext[LOCSIZ]; /* long loc description */
-struct text stext[LOCSIZ]; /* short loc descriptions */
+extern struct text ltext[LOCSIZ]; /* long loc description */
+extern struct text stext[LOCSIZ]; /* short loc descriptions */
-struct travlist /* direcs & conditions of travel*/
-{ struct travlist *next; /* ptr to next list entry */
+struct travlist { /* direcs & conditions of travel*/
+ struct travlist *next; /* ptr to next list entry */
int conditions; /* m in writeup (newloc / 1000) */
int tloc; /* n in writeup (newloc % 1000) */
int tverb; /* the verb that takes you there*/
-} *travel[LOCSIZ],*tkk; /* travel is closer to keys(...)*/
+};
+extern struct travlist *travel[LOCSIZ],*tkk; /* travel is closer to keys(...)*/
-int atloc[LOCSIZ];
+extern int atloc[LOCSIZ];
-int plac[101]; /* initial object placement */
-int fixd[101], fixed[101]; /* location fixed? */
+extern int plac[101]; /* initial object placement */
+extern int fixd[101], fixed[101]; /* location fixed? */
-int actspk[35]; /* rtext msg for verb <n> */
+extern int actspk[35]; /* rtext msg for verb <n> */
-int cond[LOCSIZ]; /* various condition bits */
+extern int cond[LOCSIZ]; /* various condition bits */
extern int setbit[16]; /* bit defn masks 1,2,4,... */
-int hntmax;
-int hints[20][5]; /* info on hints */
-int hinted[20], hintlc[20];
+extern int hntmax;
+extern int hints[20][5]; /* info on hints */
+extern int hinted[20], hintlc[20];
-int place[101], prop[101], linkx[201];
-int abb[LOCSIZ];
+extern int place[101], prop[101], linkx[201];
+extern int abb[LOCSIZ];
-int maxtrs, tally, tally2; /* treasure values */
+extern int maxtrs, tally, tally2; /* treasure values */
#define FALSE 0
#define TRUE 1
-int keys, lamp, grate, cage, rod, rod2, steps, /* mnemonics */
+extern int
+ keys, lamp, grate, cage, rod, rod2, steps, /* mnemonics */
bird, door, pillow, snake, fissur, tablet, clam, oyster,
magzin, dwarf, knife, food, bottle, water, oil, plant, plant2,
axe, mirror, dragon, chasm, troll, troll2, bear, messag,
null, entrnc, dprssn, enter, stream, pour, say, lock, throw,
find, invent;
-int chloc, chloc2, dseen[7], dloc[7], /* dwarf stuff */
+extern int
+ chloc, chloc2, dseen[7], dloc[7], /* dwarf stuff */
odloc[7], dflag, daltlc;
-int tk[21], stick, dtotal, attack;
-int turns, lmwarn, iwest, knfloc, detail, /* various flags & counters */
+extern int
+ tk[21], stick, dtotal, attack;
+extern int
+ turns, lmwarn, iwest, knfloc, detail, /* various flags & counters */
abbnum, maxdie, numdie, holdng, dkill, foobar, bonus, clock1,
clock2, saved, closng, panic, closed, scorng;
-int demo, limit;
+extern int
+ demo, limit;
/* We need to get a little tricky to avoid strings */
#define DECR(a,b,c,d,e) decr(*#a-'+',*#b-'-',*#c-'#',*#d-'&',*#e-'%')
-/* $OpenBSD: main.c,v 1.25 2017/01/21 08:22:57 krw Exp $ */
+/* $OpenBSD: main.c,v 1.26 2021/01/27 01:59:39 deraadt Exp $ */
/* $NetBSD: main.c,v 1.5 1996/05/21 21:53:09 mrg Exp $ */
/*-
#include "extern.h"
#include "hdr.h"
+int datfd; /* message file descriptor */
+volatile sig_atomic_t delhit;
+int yea;
+
+int loc, newloc, oldloc, oldlc2, wzdark, gaveup, kq, k, k2;
+int verb, obj, spk;
+time_t savet;
+int mxscor, latncy;
+
+char wd1[MAXSTR]; /* the complete words */
+char wd2[MAXSTR];
+
+struct hashtab voc[HTSIZE];
+
+struct text rtext[RTXSIZ]; /* random text messages */
+
+struct text mtext[MAGSIZ]; /* magic messages */
+
+int clsses;
+struct text ctext[CLSMAX]; /* classes of adventurer */
+int cval[CLSMAX];
+
+struct text ptext[101]; /* object descriptions */
+
+struct text ltext[LOCSIZ]; /* long loc description */
+struct text stext[LOCSIZ]; /* short loc descriptions */
+
+struct travlist *travel[LOCSIZ],*tkk; /* travel is closer to keys(...)*/
+
+int atloc[LOCSIZ];
+
+int plac[101]; /* initial object placement */
+int fixd[101], fixed[101]; /* location fixed? */
+
+int actspk[35]; /* rtext msg for verb <n> */
+
+int cond[LOCSIZ]; /* various condition bits */
+
+int hntmax;
+int hints[20][5]; /* info on hints */
+int hinted[20], hintlc[20];
+
+int place[101], prop[101], linkx[201];
+int abb[LOCSIZ];
+
+int maxtrs, tally, tally2; /* treasure values */
+
+int keys, lamp, grate, cage, rod, rod2, steps, /* mnemonics */
+ bird, door, pillow, snake, fissur, tablet, clam, oyster,
+ magzin, dwarf, knife, food, bottle, water, oil, plant, plant2,
+ axe, mirror, dragon, chasm, troll, troll2, bear, messag,
+ vend, batter, nugget, coins, chest, eggs, tridnt, vase,
+ emrald, pyram, pearl, rug, chain, spices, back, look, cave,
+ null, entrnc, dprssn, enter, stream, pour, say, lock, throw,
+ find, invent;
+
+int chloc, chloc2, dseen[7], dloc[7], /* dwarf stuff */
+ odloc[7], dflag, daltlc;
+
+int tk[21], stick, dtotal, attack;
+int turns, lmwarn, iwest, knfloc, detail, /* various flags & counters */
+ abbnum, maxdie, numdie, holdng, dkill, foobar, bonus, clock1,
+ clock2, saved, closng, panic, closed, scorng;
+
+int demo, limit;
+
int
main(int argc, char *argv[])
{