Just one label left in actions.c.

This commit is contained in:
Eric S. Raymond 2017-06-10 13:31:48 -04:00
parent e6f183ba7f
commit f6da31f689

View file

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