Abolish global variable J.

This commit is contained in:
Eric S. Raymond 2017-06-09 11:13:03 -04:00
parent 2606284916
commit 4df8fac952
2 changed files with 43 additions and 44 deletions

View file

@ -185,5 +185,5 @@ extern long AMBER, ATTACK, AXE, BACK, BATTER, BEAR,
STEPS, STICK, STREAM, THROW, TRIDNT, TROLL, TROLL2, STEPS, STICK, STREAM, THROW, TRIDNT, TROLL, TROLL2,
URN, VASE, VEND, VOLCAN, WATER; URN, VASE, VEND, VOLCAN, WATER;
/* everything else */ /* everything else */
extern long I, J, K, L, SPK, VRSION, WD1, WD1X, WD2, WD2X; extern long I, K, L, SPK, VRSION, WD1, WD1X, WD2, WD2X;

61
main.c
View file

@ -21,7 +21,7 @@ long AMBER, AXE, BACK, BATTER, BEAR, BIRD, BLOOD,
BOTTLE, CAGE, CAVE, CAVITY, CHAIN, CHASM, CHEST, BOTTLE, CAGE, CAVE, CAVITY, CHAIN, CHASM, CHEST,
CLAM, COINS, DOOR, DPRSSN, DRAGON, DWARF, EGGS, CLAM, COINS, DOOR, DPRSSN, DRAGON, DWARF, EGGS,
EMRALD, ENTER, ENTRNC, FIND, FISSUR, FOOD, EMRALD, ENTER, ENTRNC, FIND, FISSUR, FOOD,
GRATE, HINT, I, INVENT, J, JADE, K, KEYS, GRATE, HINT, I, INVENT, JADE, K, KEYS,
KNIFE, L, LAMP, LOCK, LOOK, MAGZIN, KNIFE, L, LAMP, LOCK, LOOK, MAGZIN,
MESSAG, MIRROR, NUGGET, NUL, OGRE, OIL, OYSTER, MESSAG, MIRROR, NUGGET, NUL, OGRE, OIL, OYSTER,
PEARL, PILLOW, PLANT, PLANT2, PYRAM, RESER, ROD, ROD2, PEARL, PILLOW, PLANT, PLANT2, PYRAM, RESER, ROD, ROD2,
@ -267,9 +267,9 @@ static bool dwarfmove(void)
return true; return true;
game.dflag=2; game.dflag=2;
for (I=1; I<=2; I++) { for (I=1; I<=2; I++) {
J=1+randrange(NDWARVES-1); int j=1+randrange(NDWARVES-1);
if(PCT(50)) if(PCT(50))
game.dloc[J]=0; game.dloc[j]=0;
} }
for (I=1; I<=NDWARVES-1; I++) { for (I=1; I<=NDWARVES-1; I++) {
if(game.dloc[I] == game.loc) if(game.dloc[I] == game.loc)
@ -294,7 +294,7 @@ static bool dwarfmove(void)
if(game.dloc[I] == 0) if(game.dloc[I] == 0)
continue; continue;
/* Fill TK array with all the places this dwarf might go. */ /* Fill TK array with all the places this dwarf might go. */
J=1; int j=1;
kk=KEY[game.dloc[I]]; kk=KEY[game.dloc[I]];
if(kk != 0) if(kk != 0)
do { do {
@ -303,24 +303,24 @@ static bool dwarfmove(void)
bool avoided = (game.newloc > 300 || bool avoided = (game.newloc > 300 ||
!INDEEP(game.newloc) || !INDEEP(game.newloc) ||
game.newloc == game.odloc[I] || game.newloc == game.odloc[I] ||
(J > 1 && game.newloc == TK[J-1]) || (j > 1 && game.newloc == TK[j-1]) ||
J >= 20 || j >= 20 ||
game.newloc == game.dloc[I] || game.newloc == game.dloc[I] ||
FORCED(game.newloc) || FORCED(game.newloc) ||
(I == PIRATE && CNDBIT(game.newloc,3)) || (I == PIRATE && CNDBIT(game.newloc,3)) ||
labs(TRAVEL[kk])/1000000 == 100); labs(TRAVEL[kk])/1000000 == 100);
if (!avoided) { if (!avoided) {
TK[J++] = game.newloc; TK[j++] = game.newloc;
} }
++kk; ++kk;
} while } while
(TRAVEL[kk-1] >= 0); (TRAVEL[kk-1] >= 0);
TK[J]=game.odloc[I]; TK[j]=game.odloc[I];
if(J >= 2) if(j >= 2)
--J; --j;
J=1+randrange(J); j=1+randrange(j);
game.odloc[I]=game.dloc[I]; game.odloc[I]=game.dloc[I];
game.dloc[I]=TK[J]; game.dloc[I]=TK[j];
game.dseen[I]=(game.dseen[I] && INDEEP(game.loc)) || (game.dloc[I] == game.loc || game.odloc[I] == game.loc); game.dseen[I]=(game.dseen[I] && INDEEP(game.loc)) || (game.dloc[I] == game.loc || game.odloc[I] == game.loc);
if(!game.dseen[I]) continue; if(!game.dseen[I]) continue;
game.dloc[I]=game.loc; game.dloc[I]=game.loc;
@ -334,16 +334,16 @@ static bool dwarfmove(void)
if(game.loc == game.chloc || game.prop[CHEST] >= 0) if(game.loc == game.chloc || game.prop[CHEST] >= 0)
continue; continue;
K=0; K=0;
for (J=MINTRS; J<=MAXTRS; J++) { for (int j=MINTRS; j<=MAXTRS; j++) {
/* Pirate won't take pyramid from plover room or dark /* Pirate won't take pyramid from plover room or dark
* room (too easy!). */ * room (too easy!). */
if(J == PYRAM && (game.loc == PLAC[PYRAM] || game.loc == PLAC[EMRALD])) if(j == PYRAM && (game.loc == PLAC[PYRAM] || game.loc == PLAC[EMRALD]))
goto L6020; goto L6020;
if(TOTING(J)) { if(TOTING(j)) {
goto L6021; goto L6021;
} }
L6020: L6020:
if(HERE(J)) if(HERE(j))
K=1; K=1;
} }
/* Force chest placement before player finds last treasure */ /* Force chest placement before player finds last treasure */
@ -368,12 +368,12 @@ static bool dwarfmove(void)
MOVE(MESSAG,game.chloc2); MOVE(MESSAG,game.chloc2);
} }
RSPEAK(128); RSPEAK(128);
for (J=MINTRS; J<=MAXTRS; J++) { for (int j=MINTRS; j<=MAXTRS; j++) {
if (!(J == PYRAM && (game.loc == PLAC[PYRAM] || game.loc == PLAC[EMRALD]))) { if (!(j == PYRAM && (game.loc == PLAC[PYRAM] || game.loc == PLAC[EMRALD]))) {
if(AT(J) && game.fixed[J] == 0) if(AT(j) && game.fixed[j] == 0)
CARRY(J,game.loc); CARRY(j,game.loc);
if(TOTING(J)) if(TOTING(j))
DROP(J,game.chloc); DROP(j,game.chloc);
} }
} }
game.dloc[PIRATE]=game.chloc; game.dloc[PIRATE]=game.chloc;
@ -434,13 +434,13 @@ static void croak(FILE *cmdin)
game.place[OIL]=0; game.place[OIL]=0;
if(TOTING(LAMP)) if(TOTING(LAMP))
game.prop[LAMP]=0; game.prop[LAMP]=0;
for (J=1; J<=NOBJECTS; J++) { for (int j=1; j<=NOBJECTS; j++) {
I=NOBJECTS + 1 - J; int i=NOBJECTS + 1 - j;
if(TOTING(I)) { if(TOTING(i)) {
K=game.oldlc2; int k=game.oldlc2;
if(I == LAMP) if(i == LAMP)
K=1; k=1;
DROP(I,K); DROP(i,k);
} }
} }
game.loc=3; game.loc=3;
@ -815,8 +815,7 @@ L30310: game.newloc=PLAC[TROLL]+FIXD[TROLL]-game.loc;
L21: LL=MOD((labs(TRAVEL[KK])/1000),1000); L21: LL=MOD((labs(TRAVEL[KK])/1000),1000);
if(LL != K) { if(LL != K) {
if(LL <= 300) { if(LL <= 300) {
J=KEY[LL]; if(FORCED(LL) && MOD((labs(TRAVEL[KEY[LL]])/1000),1000) == K)
if(FORCED(LL) && MOD((labs(TRAVEL[J])/1000),1000) == K)
K2=KK; K2=KK;
} }
if(TRAVEL[KK] < 0) if(TRAVEL[KK] < 0)