Just one label left in actions.c.
authorEric S. Raymond <esr@thyrsus.com>
Sat, 10 Jun 2017 17:31:48 +0000 (13:31 -0400)
committerEric S. Raymond <esr@thyrsus.com>
Sat, 10 Jun 2017 17:31:48 +0000 (13:31 -0400)
actions.c

index 3ef9289474b0671ddb4331dbf34cc7d686c8f6ce..276c0cb6e414e8f4609b002ca59d184a8a3be547 100644 (file)
--- a/actions.c
+++ b/actions.c
@@ -994,19 +994,9 @@ int action(FILE *input, enum speechpart part, long verb, long obj)
             *  they are never actually dropped at any location, but might
             *  be here inside the bottle or urn or as a feature of the
             *  location. */
-           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 (obj == GRATE) {
+           if (HERE(obj))
+               /* FALL THROUGH */;
+           else if (obj == GRATE) {
                if (game.loc == 1 || game.loc == 4 || game.loc == 7)
                    obj=DPRSSN;
                if (game.loc > 9 && game.loc < 15)
@@ -1014,35 +1004,43 @@ int action(FILE *input, enum speechpart part, long verb, long obj)
                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) {
+           else if (obj == DWARF && ATDWRF(game.loc) > 0)
+               /* FALL THROUGH */;
+           else if ((LIQ(0) == obj && HERE(BOTTLE)) || obj == LIQLOC(game.loc))
+               /* FALL THROUGH */;
+           else if (obj == OIL && HERE(URN) && game.prop[URN] != 0) {
                obj=URN;
-               goto L5010;
+               /* FALL THROUGH */;
            }
-           if (obj == PLANT && AT(PLANT2) && game.prop[PLANT2] != 0) {
+           else if (obj == PLANT && AT(PLANT2) && game.prop[PLANT2] != 0) {
                obj=PLANT2;
-               goto L5010;
+               /* FALL THROUGH */;
            }
-           if (obj == KNIFE && game.knfloc == game.loc) {
+           else if (obj == KNIFE && game.knfloc == game.loc) {
                game.knfloc= -1;
                SPK=116;
                return(2011);
            }
-           if (obj == ROD && HERE(ROD2)) {
+           else if (obj == ROD && HERE(ROD2)) {
                obj=ROD2;
-               goto L5010;
+               /* FALL THROUGH */;
+           }
+           else if ((verb == FIND || verb == INVENT) && WD2 <= 0)
+               /* FALL THROUGH */;
+           else {
+               SETPRM(1,WD1,WD1X);
+               RSPEAK(256);
+               return(2012);
            }
-           if ((verb == FIND || verb == INVENT) && WD2 <= 0)
-               goto L5010;
 
+           if (WD2 > 0)
+               return(2800);
+           if (verb != 0)
+               goto L4090;
            SETPRM(1,WD1,WD1X);
-           RSPEAK(256);
-           return(2012);
-       default:
+           RSPEAK(255);
+           return(2600);
+    default:
            BUG(99);
     }
 }