The problem wasn't actually with "eat" but with "grate". Processing
of any two-word command with an object of "grate", when given at certain
locations including the start, inappropriately jumped directly
to the movement code (ignoring the verb).
There was a similar bug in the ancestral 2.5, though it manifested slightly
differently.
if (game.loc == LOC_COBBLE || game.loc == LOC_DEBRIS || game.loc == LOC_AWKWARD ||
game.loc == LOC_BIRD || game.loc == LOC_PITTOP)
command->obj = ENTRNC;
- if (command->obj != GRATE)
- return GO_MOVE;
} else if (command->obj == DWARF && ATDWRF(game.loc) > 0)
/* FALL THROUGH */;
else if ((LIQUID() == command->obj && HERE(BOTTLE)) || command->obj == LIQLOC(game.loc))
> eat grate
-You're in debris room.
-
-A three foot black rod with a rusty star on an end lies nearby.
+Don't be ridiculous!
> w
> eat grate
-You're in front of building.
+Don't be ridiculous!
> in
I don't know where the cave is, but hereabouts no stream can run on
the surface for long. I would try the stream.
-You are standing at the end of a road before a small brick building.
-Around you is a forest. A small stream flows out of the building and
-down a gully.
+You're in front of building.
> enter stream
I am unsure how you are facing. Use compass points or nearby objects.
-You're in front of building.
+You are standing at the end of a road before a small brick building.
+Around you is a forest. A small stream flows out of the building and
+down a gully.
> eat