Header consolidation - main.h, misc.h, and share.h merge to advent.h.
[open-adventure.git] / advent.h
1 #include <stdio.h>
2 #include <stdbool.h>
3
4 #define LINESIZE        100
5
6 typedef struct lcg_state
7 {
8   unsigned long a, c, m, x;
9 } lcg_state;
10
11 extern long ABB[], ATLOC[], BLKLIN, DFLAG, DLOC[], FIXED[], HOLDNG,
12                 LINK[], LNLENG, LNPOSN,
13                 PARMS[], PLACE[];
14 extern char rawbuf[LINESIZE], INLINE[LINESIZE+1], MAP1[], MAP2[];
15 extern FILE *logfp;
16 extern bool oldstyle;
17 extern lcg_state lcgstate;
18
19 /* b is not needed for POSIX but harmless */
20 #define READ_MODE "rb"
21 #define WRITE_MODE "wb"
22
23 extern void fSPEAK(long);
24 #define SPEAK(N) fSPEAK(N)
25 extern void fPSPEAK(long,long);
26 #define PSPEAK(MSG,SKIP) fPSPEAK(MSG,SKIP)
27 extern void fRSPEAK(long);
28 #define RSPEAK(I) fRSPEAK(I)
29 extern void fSETPRM(long,long,long);
30 #define SETPRM(FIRST,P1,P2) fSETPRM(FIRST,P1,P2)
31 extern bool fGETIN(FILE *,long*,long*,long*,long*);
32 #define GETIN(input,WORD1,WORD1X,WORD2,WORD2X) fGETIN(input,&WORD1,&WORD1X,&WORD2,&WORD2X)
33 extern long fYES(FILE *,long,long,long);
34 #define YES(input,X,Y,Z) fYES(input,X,Y,Z)
35 extern long fGETNUM(FILE *);
36 #define GETNUM(K) fGETNUM(K)
37 extern long fGETTXT(long,long,long);
38 #define GETTXT(SKIP,ONEWRD,UPPER) fGETTXT(SKIP,ONEWRD,UPPER)
39 extern long fMAKEWD(long);
40 #define MAKEWD(LETTRS) fMAKEWD(LETTRS)
41 extern void fPUTTXT(long,long*,long);
42 #define PUTTXT(WORD,STATE,CASE) fPUTTXT(WORD,&STATE,CASE)
43 extern void fSHFTXT(long,long);
44 #define SHFTXT(FROM,DELTA) fSHFTXT(FROM,DELTA)
45 extern void fTYPE0();
46 #define TYPE0() fTYPE0()
47 extern void fSAVWDS(long*,long*,long*,long*,long*,long*,long*);
48 #define SAVWDS(W1,W2,W3,W4,W5,W6,W7) fSAVWDS(&W1,&W2,&W3,&W4,&W5,&W6,&W7)
49 extern void fSAVARR(long*,long);
50 #define SAVARR(ARR,N) fSAVARR(ARR,N)
51 extern void fSAVWRD(long,long*);
52 #define SAVWRD(OP,WORD) fSAVWRD(OP,&WORD)
53 extern long fVOCAB(long,long);
54 #define VOCAB(ID,INIT) fVOCAB(ID,INIT)
55 extern void fDSTROY(long);
56 #define DSTROY(OBJECT) fDSTROY(OBJECT)
57 extern void fJUGGLE(long);
58 #define JUGGLE(OBJECT) fJUGGLE(OBJECT)
59 extern void fMOVE(long,long);
60 #define MOVE(OBJECT,WHERE) fMOVE(OBJECT,WHERE)
61 extern long fPUT(long,long,long);
62 #define PUT(OBJECT,WHERE,PVAL) fPUT(OBJECT,WHERE,PVAL)
63 extern void fCARRY(long,long);
64 #define CARRY(OBJECT,WHERE) fCARRY(OBJECT,WHERE)
65 extern void fDROP(long,long);
66 #define DROP(OBJECT,WHERE) fDROP(OBJECT,WHERE)
67 extern long fATDWRF(long);
68 #define ATDWRF(WHERE) fATDWRF(WHERE)
69 extern long fSETBIT(long);
70 #define SETBIT(BIT) fSETBIT(BIT)
71 extern long fTSTBIT(long,long);
72 #define TSTBIT(MASK,BIT) fTSTBIT(MASK,BIT)
73 extern long fRNDVOC(long,long);
74 #define RNDVOC(CHAR,FORCE) fRNDVOC(CHAR,FORCE)
75 extern void fBUG(long);
76 #define BUG(NUM) fBUG(NUM)
77 extern void fMAPLIN(FILE *);
78 #define MAPLIN(FIL) fMAPLIN(FIL)
79 extern void fTYPE();
80 #define TYPE() fTYPE()
81 extern void fMPINIT();
82 #define MPINIT() fMPINIT()
83 extern void fSAVEIO(long,long,long*);
84 #define SAVEIO(OP,IN,ARR) fSAVEIO(OP,IN,ARR)
85 extern void DATIME(long*, long*);
86 extern long fIABS(long);
87 #define IABS(N) fIABS(N)
88 extern long fMOD(long,long);
89 #define MOD(N,M) fMOD(N,M)
90 extern void set_seed(long);
91 extern unsigned long get_next_lcg_value(void);
92 extern long randrange(long);
93
94 extern void score(long);
95 extern long ABBNUM, AMBER, ATTACK, AXE, BACK, BATTER, BEAR,
96    BIRD, BLOOD, BONUS,
97    BOTTLE, CAGE, CAVE, CAVITY, CHAIN, CHASM, CHEST, CHLOC, CHLOC2,
98    CLAM, CLOCK1, CLOCK2, CLOSED, CLOSNG, CLSHNT,
99    COINS, CONDS, DALTLC, DETAIL,
100    DKILL, DOOR, DPRSSN, DRAGON, DSEEN[], DTOTAL, DWARF, EGGS,
101    EMRALD, ENTER, ENTRNC, FIND, FISSUR, FOOBAR, FOOD,
102    GRATE, HINT, HINTED[], HINTLC[],
103    I, INVENT, IGO, IWEST, J, JADE, K, K2, KEYS, KK,
104    KNFLOC, KNIFE, KQ, L, LAMP, LIMIT, LL,
105   LMWARN, LOC, LOCK, LOOK,
106    MAGZIN, MAXDIE, MAXTRS, MESSAG, MIRROR, MXSCOR,
107    NEWLOC, NOVICE, NUGGET, NUL, NUMDIE, OBJ,
108    ODLOC[], OGRE, OIL, OLDLC2, OLDLOC, OLDOBJ, OYSTER,
109    PANIC, PEARL, PILLOW, PLANT, PLANT2, PROP[], PYRAM,
110    RESER, ROD, ROD2, RUBY, RUG, SAPPH, SAVED, SAY,
111    SCORE, SECT, SETUP, SIGN, SNAKE, SPK, STEPS, STICK,
112    STREAM, TALLY, THRESH, THROW, TK[], TRIDNT,
113    TRNDEX, TRNLUZ, TROLL, TROLL2,
114    TURNS, URN, V1, V2, VASE, VEND, VERB,
115    VOLCAN, VRSION, WATER, WD1, WD1X, WD2, WD2X,
116    WZDARK, ZZWORD;
117