struct game_t game;
-long ATLOC[LOCSIZ+1], FIXED[NOBJECTS+1],
- LINK[NOBJECTS*2 + 1], LNLENG, LNPOSN,
- PARMS[26], PLACE[NOBJECTS+1];
+long LNLENG, LNPOSN, PARMS[26];
char rawbuf[LINESIZE], INLINE[LINESIZE+1], MAP1[129], MAP2[129];
long AMBER, ATTACK, AXE, BACK, BATTER, BEAR, BIRD, BLOOD,
BOTTLE, CAGE, CAVE, CAVITY, CHAIN, CHASM, CHEST,
CLAM, COINS, DALTLC, DOOR, DPRSSN, DRAGON, DWARF, EGGS,
EMRALD, ENTER, ENTRNC, FIND, FISSUR, FOOD,
- GRATE, HINT, HINTED[21], HINTLC[21],
+ GRATE, HINT, HINTLC[21],
I, INVENT, IGO, J, JADE, K, K2, KEYS, KK,
KNIFE, KQ, L, LAMP, LL, LOC, LOCK, LOOK,
MAGZIN, MAXDIE, MAXTRS, MESSAG, MIRROR, MXSCOR,
/* The pirate's spotted him. He leaves him alone once we've found chest. K
* counts if a treasure is here. If not, and tally=1 for an unseen chest, let
- * the pirate be spotted. Note that PLACE(CHEST)=0 might mean that he's
+ * the pirate be spotted. Note that game.place(CHEST)=0 might mean that he's
* thrown it to the troll, but in that case he's seen the chest (PROP=0). */
if(LOC == game.chloc || PROP[CHEST] >= 0) goto L6030;
if(TOTING(J)) goto L6021;
L6020: if(HERE(J))K=1;
} /* end loop */
- if(game.tally == 1 && K == 0 && PLACE[CHEST] == 0 && HERE(LAMP) && PROP[LAMP]
+ if(game.tally == 1 && K == 0 && game.place[CHEST] == 0 && HERE(LAMP) && PROP[LAMP]
== 1) goto L6025;
if(game.odloc[6] != game.dloc[6] && PCT(20))RSPEAK(127);
goto L6030;
-L6021: if(PLACE[CHEST] != 0) goto L6022;
+L6021: if(game.place[CHEST] != 0) goto L6022;
/* Install chest only once, to insure it is the last treasure in the list. */
MOVE(CHEST,game.chloc);
MOVE(MESSAG,game.chloc2);
L6022: RSPEAK(128);
/* 6023 */ for (J=50; J<=MAXTRS; J++) {
if(J == PYRAM && (LOC == PLAC[PYRAM] || LOC == PLAC[EMRALD])) goto L6023;
- if(AT(J) && FIXED[J] == 0)CARRY(J,LOC);
+ if(AT(J) && game.fixed[J] == 0)CARRY(J,LOC);
if(TOTING(J))DROP(J,game.chloc);
L6023: /*etc*/ ;
} /* end loop */
if(DARK(0)) goto L2012;
game.abbrev[LOC]=game.abbrev[LOC]+1;
- I=ATLOC[LOC];
+ I=game.atloc[LOC];
L2004: if(I == 0) goto L2012;
OBJ=I;
if(OBJ > NOBJECTS)OBJ=OBJ-NOBJECTS;
* anyone who makes such a gross blunder isn't likely to find everything
* else anyway (so goes the rationalisation). */
L2006: KK=PROP[OBJ];
- if(OBJ == STEPS && LOC == FIXED[STEPS])KK=1;
+ if(OBJ == STEPS && LOC == game.fixed[STEPS])KK=1;
PSPEAK(OBJ,KK);
-L2008: I=LINK[I];
+L2008: I=game.link[I];
goto L2004;
L2009: K=54;
L2600: if(COND[LOC] < game.conds) goto L2603;
/* 2602 */ for (HINT=1; HINT<=HNTMAX; HINT++) {
- if(HINTED[HINT]) goto L2602;
+ if(game.hinted[HINT]) goto L2602;
if(!CNDBIT(LOC,HINT+10))HINTLC[HINT]= -1;
HINTLC[HINT]=HINTLC[HINT]+1;
if(HINTLC[HINT] >= HINTS[HINT][1]) goto L40000;
PROP[CHASM]=1;
PROP[TROLL]=2;
DROP(BEAR,game.newloc);
- FIXED[BEAR]= -1;
+ game.fixed[BEAR]= -1;
PROP[BEAR]=3;
game.oldlc2=game.newloc;
goto L99;
game.numdie=game.numdie+1;
if(!YES(cmdin,79+game.numdie*2,80+game.numdie*2,54)) score(0);
if(game.numdie == MAXDIE) score(0);
- PLACE[WATER]=0;
- PLACE[OIL]=0;
+ game.place[WATER]=0;
+ game.place[OIL]=0;
if(TOTING(LAMP))PROP[LAMP]=0;
/* 98 */ for (J=1; J<=NOBJECTS; J++) {
I=NOBJECTS + 1 - J;
if(!YES(cmdin,HINTS[HINT][3],0,54)) goto L2602;
SETPRM(1,HINTS[HINT][2],HINTS[HINT][2]);
RSPEAK(261);
- HINTED[HINT]=YES(cmdin,175,HINTS[HINT][4],54);
- if(HINTED[HINT] && game.limit > 30)game.limit=game.limit+30*HINTS[HINT][2];
+ game.hinted[HINT]=YES(cmdin,175,HINTS[HINT][4],54);
+ if(game.hinted[HINT] && game.limit > 30)game.limit=game.limit+30*HINTS[HINT][2];
L40020: HINTLC[HINT]=0;
L40030: goto L2602;
L40100: if(PROP[GRATE] == 0 && !HERE(KEYS)) goto L40010;
goto L40020;
-L40200: if(PLACE[BIRD] == LOC && TOTING(ROD) && game.oldobj == BIRD) goto L40010;
+L40200: if(game.place[BIRD] == LOC && TOTING(ROD) && game.oldobj == BIRD) goto L40010;
goto L40030;
L40300: if(HERE(SNAKE) && !HERE(BIRD)) goto L40010;
goto L40020;
-L40400: if(ATLOC[LOC] == 0 && ATLOC[game.oldloc] == 0 && ATLOC[game.oldlc2] == 0 && game.holdng >
+L40400: if(game.atloc[LOC] == 0 && game.atloc[game.oldloc] == 0 && game.atloc[game.oldlc2] == 0 && game.holdng >
1) goto L40010;
goto L40020;
L40700: if(game.dflag == 0) goto L40010;
goto L40020;
-L40800: if(ATLOC[LOC] == 0 && ATLOC[game.oldloc] == 0 && ATLOC[game.oldlc2] == 0) goto
+L40800: if(game.atloc[LOC] == 0 && game.atloc[game.oldloc] == 0 && game.atloc[game.oldlc2] == 0) goto
L40010;
goto L40030;
JUGGLE(CHASM);
if(PROP[BEAR] != 3)DSTROY(BEAR);
PROP[CHAIN]=0;
- FIXED[CHAIN]=0;
+ game.fixed[CHAIN]=0;
PROP[AXE]=0;
- FIXED[AXE]=0;
+ game.fixed[AXE]=0;
RSPEAK(129);
game.clock1= -1;
game.closng=true;
PROP[PILLOW]=PUT(PILLOW,116,0);
PROP[MIRROR]=PUT(MIRROR,115,0);
- FIXED[MIRROR]=116;
+ game.fixed[MIRROR]=116;
for (I=1; I<=NOBJECTS; I++) {
if(TOTING(I))
L12200: if(game.lmwarn || !HERE(LAMP)) goto L19999;
game.lmwarn=true;
SPK=187;
- if(PLACE[BATTER] == 0)SPK=183;
+ if(game.place[BATTER] == 0)SPK=183;
if(PROP[BATTER] == 1)SPK=189;
RSPEAK(SPK);
goto L19999;