struct game_t game;
long LNLENG, LNPOSN, PARMS[MAXPARMS+1];
-char rawbuf[LINESIZE], INLINE[LINESIZE+1], MAP1[129], MAP2[129];
+char rawbuf[LINESIZE], INLINE[LINESIZE+1];
long AMBER, AXE, BACK, BATTER, BEAR, BIRD, BLOOD,
BOTTLE, CAGE, CAVE, CAVITY, CHAIN, CHASM, CHEST,
RUBY, RUG, SAPPH, SAY, SIGN, SNAKE,
STEPS, STREAM, THROW, TRIDNT, TROLL, TROLL2,
URN, VASE, VEND, VOLCAN, WATER;
-long I, K, SPK, WD1, WD1X, WD2, WD2X;
+long K, SPK, WD1, WD1X, WD2, WD2X;
FILE *logfp;
bool oldstyle = false;
while ((ch = getopt(argc, argv, "l:o")) != EOF) {
switch (ch) {
- case 'l':
+case 'l':
logfp = fopen(optarg, "w");
if (logfp == NULL)
fprintf(stderr,
set_seed(seedval);
/* Initialize game variables */
- MAP2[1] = 0;
if (!game.setup)
initialise();
if(!INDEEP(game.loc) || (PCT(95) && (!CNDBIT(game.loc,4) || PCT(85))))
return true;
game.dflag=2;
- for (I=1; I<=2; I++) {
+ for (int i=1; i<=2; i++) {
int j=1+randrange(NDWARVES-1);
if(PCT(50))
game.dloc[j]=0;
}
- for (I=1; I<=NDWARVES-1; I++) {
- if(game.dloc[I] == game.loc)
- game.dloc[I]=DALTLC;
- game.odloc[I]=game.dloc[I];
+ for (int i=1; i<=NDWARVES-1; i++) {
+ if(game.dloc[i] == game.loc)
+ game.dloc[i]=DALTLC;
+ game.odloc[i]=game.dloc[i];
}
RSPEAK(3);
DROP(AXE,game.loc);
game.dtotal=0;
attack=0;
stick=0;
- for (I=1; I<=NDWARVES; I++) {
- if(game.dloc[I] == 0)
+ for (int i=1; i<=NDWARVES; i++) {
+ int k;
+ if(game.dloc[i] == 0)
continue;
/* Fill TK array with all the places this dwarf might go. */
int j=1;
- kk=KEY[game.dloc[I]];
+ kk=KEY[game.dloc[i]];
if(kk != 0)
do {
game.newloc=MOD(labs(TRAVEL[kk])/1000,1000);
/* Have we avoided a dwarf enciounter? */
bool avoided = (game.newloc > 300 ||
!INDEEP(game.newloc) ||
- game.newloc == game.odloc[I] ||
+ game.newloc == game.odloc[i] ||
(j > 1 && game.newloc == TK[j-1]) ||
j >= 20 ||
- game.newloc == game.dloc[I] ||
+ game.newloc == game.dloc[i] ||
FORCED(game.newloc) ||
- (I == PIRATE && CNDBIT(game.newloc,3)) ||
+ (i == PIRATE && CNDBIT(game.newloc,3)) ||
labs(TRAVEL[kk])/1000000 == 100);
if (!avoided) {
TK[j++] = game.newloc;
++kk;
} while
(TRAVEL[kk-1] >= 0);
- TK[j]=game.odloc[I];
+ TK[j]=game.odloc[i];
if(j >= 2)
--j;
j=1+randrange(j);
- game.odloc[I]=game.dloc[I];
- game.dloc[I]=TK[j];
- game.dseen[I]=(game.dseen[I] && INDEEP(game.loc)) || (game.dloc[I] == game.loc || game.odloc[I] == game.loc);
- if(!game.dseen[I]) continue;
- game.dloc[I]=game.loc;
- if(I == PIRATE) {
+ game.odloc[i]=game.dloc[i];
+ game.dloc[i]=TK[j];
+ game.dseen[i]=(game.dseen[i] && INDEEP(game.loc)) || (game.dloc[i] == game.loc || game.odloc[i] == game.loc);
+ if(!game.dseen[i]) continue;
+ game.dloc[i]=game.loc;
+ if(i == PIRATE) {
/* 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.
* (game.prop=0). */
if(game.loc == game.chloc || game.prop[CHEST] >= 0)
continue;
- K=0;
+ k=0;
for (int j=MINTRS; j<=MAXTRS; j++) {
- /* Pirate won't take pyramid from plover room or dark
- * room (too easy!). */
- if(j == PYRAM && (game.loc == PLAC[PYRAM] || game.loc == PLAC[EMRALD]))
- goto L6020;
+ /* Pirate won't take pyramid from plover room or dark
+ * room (too easy!). */
+ if(j == PYRAM && (game.loc == PLAC[PYRAM] || game.loc == PLAC[EMRALD])) {
+ if(HERE(j))
+ k=1;
+ continue;
+ }
if(TOTING(j)) {
- goto L6021;
+ if(game.place[CHEST] == 0) {
+ /* Install chest only once, to insure it is
+ * the last treasure in the list. */
+ MOVE(CHEST,game.chloc);
+ MOVE(MESSAG,game.chloc2);
+ }
+ RSPEAK(128);
+ for (int j=MINTRS; j<=MAXTRS; j++) {
+ if (!(j == PYRAM && (game.loc == PLAC[PYRAM] || game.loc == PLAC[EMRALD]))) {
+ if(AT(j) && game.fixed[j] == 0)
+ CARRY(j,game.loc);
+ if(TOTING(j))
+ DROP(j,game.chloc);
+ }
+ }
+ game.dloc[PIRATE]=game.chloc;
+ game.odloc[PIRATE]=game.chloc;
+ game.dseen[PIRATE]=false;
+ goto jumpout;
}
- L6020:
if(HERE(j))
- K=1;
+ k=1;
}
/* Force chest placement before player finds last treasure */
- if(game.tally == 1 && K == 0 && game.place[CHEST] == 0 && HERE(LAMP) && game.prop[LAMP] == 1) {
+ if(game.tally == 1 && k == 0 && game.place[CHEST] == 0 && HERE(LAMP) && game.prop[LAMP] == 1) {
RSPEAK(186);
MOVE(CHEST,game.chloc);
MOVE(MESSAG,game.chloc2);
if(game.odloc[PIRATE] != game.dloc[PIRATE] && PCT(20))
RSPEAK(127);
continue;
-
- L6021:
- if(game.place[CHEST] == 0) {
- /* Install chest only once, to insure it is the last treasure in
- * the list. */
- MOVE(CHEST,game.chloc);
- MOVE(MESSAG,game.chloc2);
- }
- RSPEAK(128);
- for (int j=MINTRS; j<=MAXTRS; j++) {
- if (!(j == PYRAM && (game.loc == PLAC[PYRAM] || game.loc == PLAC[EMRALD]))) {
- if(AT(j) && game.fixed[j] == 0)
- CARRY(j,game.loc);
- if(TOTING(j))
- DROP(j,game.chloc);
- }
- }
- game.dloc[PIRATE]=game.chloc;
- game.odloc[PIRATE]=game.chloc;
- game.dseen[PIRATE]=false;
- continue;
}
/* This threatening little dwarf is in the room with him! */
++game.dtotal;
- if(game.odloc[I] == game.dloc[I]) {
+ if(game.odloc[i] == game.dloc[i]) {
++attack;
if(game.knfloc >= 0)
game.knfloc=game.loc;
if(randrange(1000) < 95*(game.dflag-2))
++stick;
}
+ jumpout:;
}
/* Now we know what's happening. Let's tell the poor sucker about it.
if(DARK(0)) goto L2012;
game.abbrev[game.loc]=game.abbrev[game.loc]+1;
- I=game.atloc[game.loc];
-L2004: if(I == 0) goto L2012;
- obj=I;
+ i=game.atloc[game.loc];
+L2004: if(i == 0) goto L2012;
+ obj=i;
if(obj > NOBJECTS)obj=obj-NOBJECTS;
if(obj == STEPS && TOTING(NUGGET)) goto L2008;
if(game.prop[obj] >= 0) goto L2006;
L2006: KK=game.prop[obj];
if(obj == STEPS && game.loc == game.fixed[STEPS])KK=1;
PSPEAK(obj,KK);
-L2008: I=game.link[I];
+L2008: i=game.link[i];
goto L2004;
L2009: K=54;
if(game.clock1 < 0)game.clock2=game.clock2-1;
if(game.clock2 == 0) goto L11000;
if(game.prop[LAMP] == 1)game.limit=game.limit-1;
- if(game.limit <= 30 && HERE(BATTER) && game.prop[BATTER] == 0 && HERE(LAMP)) goto
- L12000;
+ if(game.limit <= 30 && HERE(BATTER) && game.prop[BATTER] == 0 && HERE(LAMP))
+ goto L12000;
if(game.limit == 0) goto L12400;
if(game.limit <= 30) goto L12200;
L19999: K=43;
RSPEAK(276);
}
L2630:
- I=VOCAB(WD1,-1);
- if(I == -1)
+ i=VOCAB(WD1,-1);
+ if(i == -1)
goto L3000;
- K=MOD(I,1000);
- KQ=I/1000+1;
+ K=MOD(i,1000);
+ KQ=i/1000+1;
switch (KQ-1) { case 0: goto L8; case 1: goto L5000; case 2: goto L4000;
case 3: goto L2010; }
BUG(22);
/* Verb and object analysis moved to separate module. */
-L4000: I=4000; VERB=K; goto Laction;
-L4090: I=4090; goto Laction;
-L5000: I=5000; obj = K;
+L4000: i=4000; VERB=K; goto Laction;
+L4090: i=4090; goto Laction;
+L5000: i=5000; obj = K;
Laction:
- switch (action(cmdin, I, VERB, obj)) {
+ switch (action(cmdin, i, VERB, obj)) {
case 2: return true;
case 8: goto L8;
case 2000: goto L2000;
L10000: game.prop[GRATE]=0;
game.prop[FISSUR]=0;
- for (I=1; I<=NDWARVES; I++) {
- game.dseen[I]=false;
- game.dloc[I]=0;
- } /* end loop */
+ for (i=1; i<=NDWARVES; i++) {
+ game.dseen[i]=false;
+ game.dloc[i]=0;
+ }
MOVE(TROLL,0);
MOVE(TROLL+NOBJECTS,0);
MOVE(TROLL2,PLAC[TROLL]);
RSPEAK(129);
game.clock1= -1;
game.closng=true;
- goto L19999;
+ goto L19999;
/* Once he's panicked, and clock2 has run out, we come here to set up the
* storage room. The room has two locs, hardwired as 115 (ne) and 116 (sw).
/* Leave the grate with normal (non-negative) property. Reuse sign. */
- I=PUT(GRATE,116,0);
- I=PUT(SIGN,116,0);
+ PUT(GRATE,116,0);
+ PUT(SIGN,116,0);
OBJTXT[SIGN]=OBJTXT[SIGN]+1;
game.prop[SNAKE]=PUT(SNAKE,116,1);
game.prop[BIRD]=PUT(BIRD,116,1);
game.prop[MIRROR]=PUT(MIRROR,115,0);
game.fixed[MIRROR]=116;
- for (I=1; I<=NOBJECTS; I++) {
- if(TOTING(I))
- DSTROY(I);
+ for (int i=1; i<=NOBJECTS; i++) {
+ if(TOTING(i))
+ DSTROY(i);
} /* end loop */
RSPEAK(132);