6 typedef struct lcg_state
8 unsigned long a, c, m, x;
11 extern long ABB[], ATLOC[], BLKLIN, DFLAG, DLOC[], FIXED[], HOLDNG,
12 LINK[], LNLENG, LNPOSN,
14 extern char rawbuf[LINESIZE], INLINE[LINESIZE+1], MAP1[], MAP2[];
17 extern lcg_state lcgstate;
19 /* b is not needed for POSIX but harmless */
20 #define READ_MODE "rb"
21 #define WRITE_MODE "wb"
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)
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)
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);
94 extern void score(long);
95 extern long ABBNUM, AMBER, ATTACK, AXE, BACK, BATTER, BEAR,
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,