- if (V1 == ENTER && command.wd2 > 0) {
- command.wd1 = command.wd2;
- command.wd1x = command.wd2x;
- wordclear(&command.wd2);
- } else {
- /* FIXME: Magic numbers */
- if (!((V1 != 1000 + WATER && V1 != 1000 + OIL) ||
- (V2 != 1000 + PLANT && V2 != 1000 + DOOR))) {
- if (AT(V2 - 1000))
- command.wd2 = token_to_packed("POUR");
+
+ if (command.type1 == OBJECT) {
+ if (command.id1 == GRATE) {
+ command.type1 = MOTION;
+ if (game.loc == LOC_START ||
+ game.loc == LOC_VALLEY ||
+ game.loc == LOC_SLIT) {
+ command.id1 = DEPRESSION;
+ }
+ if (game.loc == LOC_COBBLE ||
+ game.loc == LOC_DEBRIS ||
+ game.loc == LOC_AWKWARD ||
+ game.loc == LOC_BIRD ||
+ game.loc == LOC_PITTOP) {
+ command.id1 = ENTRANCE;
+ }
+ }
+ if (!((command.id1 != WATER && command.id1 != OIL) || (command.id2 != PLANT && command.id2 != DOOR))) {
+ if (AT(command.id2)) {
+ command.id2 = POUR;
+ command.type2 = ACTION;
+ strncpy(command.raw2, "POUR", LINESIZE - 1);
+ }
+ }
+ if (command.id1 == CAGE && command.id2 == BIRD && HERE(CAGE) && HERE(BIRD)) {
+ command.id1 = CARRY;
+ command.type1 = ACTION;
+ strncpy(command.raw2, "CATCH", LINESIZE - 1);