- if (V1 == ENTER && command.wd2 > 0) {
- command.wd1 = command.wd2;
- command.wd1x = command.wd2x;
- wordclear(&command.wd2);
- } else {
- /* FIXME: Magic numbers related to vocabulary */
- if (!((V1 != PROMOTE_WORD(WATER) && V1 != PROMOTE_WORD(OIL)) ||
- (V2 != PROMOTE_WORD(PLANT) && V2 != PROMOTE_WORD(DOOR)))) {
- if (AT(DEMOTE_WORD(V2)))
- command.wd2 = token_to_packed("POUR");
+
+ if (command.word[0].type == OBJECT) {
+ if (command.word[0].id == GRATE) {
+ command.word[0].type = MOTION;
+ if (game.loc == LOC_START ||
+ game.loc == LOC_VALLEY ||
+ game.loc == LOC_SLIT) {
+ command.word[0].id = DEPRESSION;
+ }
+ if (game.loc == LOC_COBBLE ||
+ game.loc == LOC_DEBRIS ||
+ game.loc == LOC_AWKWARD ||
+ game.loc == LOC_BIRD ||
+ game.loc == LOC_PITTOP) {
+ command.word[0].id = ENTRANCE;
+ }
+ }
+ if ((command.word[0].id == WATER || command.word[0].id == OIL) && (command.word[1].id == PLANT || command.word[1].id == DOOR)) {
+ if (AT(command.word[1].id)) {
+ command.word[1] = command.word[0];
+ command.word[0].id = POUR;
+ command.word[0].type = ACTION;
+ strncpy(command.word[0].raw, "pour", LINESIZE - 1);
+ }
+ }
+ if (command.word[0].id == CAGE && command.word[1].id == BIRD && HERE(CAGE) && HERE(BIRD)) {
+ command.word[0].id = CARRY;
+ command.word[0].type = ACTION;