Eliminate objectionable use of global.
authorEric S. Raymond <esr@thyrsus.com>
Fri, 9 Jun 2017 14:17:13 +0000 (10:17 -0400)
committerEric S. Raymond <esr@thyrsus.com>
Fri, 9 Jun 2017 14:17:13 +0000 (10:17 -0400)
actions.c
main.c

index ea8f1d1184351be1f9d72182f0df6fbc647fd2e4..c9bf2396981601d25999920d2dd64877a4afa282 100644 (file)
--- a/actions.c
+++ b/actions.c
@@ -1079,40 +1079,55 @@ L4090:  switch (verb-1) {
  *  they are never actually dropped at any location, but might be here inside
  *  the bottle or urn or as a feature of the location. */
 
-L5000: obj=K;
-    if (!HERE(K)) goto L5100;
-L5010: if (WD2 > 0) return(2800);
-    if (verb != 0) goto L4090;
+L5000:
+    if (!HERE(obj))
+       goto L5100;
+L5010:
+    if (WD2 > 0)
+       return(2800);
+    if (verb != 0)
+       goto L4090;
     SETPRM(1,WD1,WD1X);
     RSPEAK(255);
     return(2600);
 
 L5100:
-    if (K != GRATE) goto L5110;
-    if (game.loc == 1 || game.loc == 4 || game.loc == 7)K=DPRSSN;
-    if (game.loc > 9 && game.loc < 15)K=ENTRNC;
-    if (K != GRATE) return(8);
-L5110:
-    if (K == DWARF && ATDWRF(game.loc) > 0) goto L5010;
-    if ((LIQ(0) == K && HERE(BOTTLE)) || K == LIQLOC(game.loc)) goto L5010;
-    if (obj != OIL || !HERE(URN) || game.prop[URN] == 0) goto L5120;
+    if (obj == GRATE) {
+       if (game.loc == 1 || game.loc == 4 || game.loc == 7)
+           obj=DPRSSN;
+       if (game.loc > 9 && game.loc < 15)
+           obj=ENTRNC;
+       if (obj != GRATE)
+           return(8);
+    }
+
+    if (obj == DWARF && ATDWRF(game.loc) > 0)
+       goto L5010;
+    if ((LIQ(0) == obj && HERE(BOTTLE)) || obj == LIQLOC(game.loc))
+       goto L5010;
+    if (obj != OIL || !HERE(URN) || game.prop[URN] == 0)
+       goto L5120;
     obj=URN;
     goto L5010;
 L5120:
-    if (obj != PLANT || !AT(PLANT2) || game.prop[PLANT2] == 0) goto L5130;
+    if (obj != PLANT || !AT(PLANT2) || game.prop[PLANT2] == 0)
+       goto L5130;
     obj=PLANT2;
     goto L5010;
 L5130:
-    if (obj != KNIFE || game.knfloc != game.loc) goto L5140;
+    if (obj != KNIFE || game.knfloc != game.loc)
+       goto L5140;
     game.knfloc= -1;
     SPK=116;
     return(2011);
 L5140:
-    if (obj != ROD || !HERE(ROD2)) goto L5190;
+    if (obj != ROD || !HERE(ROD2))
+       goto L5190;
     obj=ROD2;
     goto L5010;
 L5190:
-    if ((verb == FIND || verb == INVENT) && WD2 <= 0) goto L5010;
+    if ((verb == FIND || verb == INVENT) && WD2 <= 0)
+       goto L5010;
     SETPRM(1,WD1,WD1X);
     RSPEAK(256);
     return(2012);
diff --git a/main.c b/main.c
index 944a14d45157d06e7a69911dcc2458f001aed2d0..0dbba5f9c40a7d8547d8d268d1b02e6fd320d092 100644 (file)
--- a/main.c
+++ b/main.c
@@ -648,7 +648,7 @@ L3000:      SETPRM(1,WD1,WD1X);
 
 L4000: I=4000; VERB=K; goto Laction;
 L4090: I=4090; goto Laction;
-L5000: I=5000;
+L5000: I=5000; obj = K;
 Laction:
         switch (action(cmdin, I, VERB, obj)) {
           case 2: return true;