+ if (strncasecmp(command.raw1, "go", sizeof("go")) == 0 && command.id2 != WORD_EMPTY) {
+ if (++game.igo == 10)
+ rspeak(GO_UNNEEDED);
+ }
+ if (command.id1 == WORD_NOT_FOUND) {
+ if (fallback_handler(command))
+ continue;
+ /* Gee, I don't understand. */
+ sspeak(DONT_KNOW, command.raw1);
+ goto Lclearobj;
+ }
+ switch (command.type1) {
+ case NO_WORD_TYPE: // FIXME: treating NO_WORD_TYPE as a motion word is confusing
+ case MOTION:
+ playermove(command.id1);
+ return true;
+ case OBJECT:
+ command.part = unknown;
+ command.obj = command.id1;
+ break;
+ case ACTION:
+ command.part = intransitive;
+ command.verb = command.id1;
+ break;
+ case SPECIAL:
+ speak(specials[command.id1].message);
+ goto Lclearobj;
+ default: // LCOV_EXCL_LINE
+ BUG(VOCABULARY_TYPE_N_OVER_1000_NOT_BETWEEN_0_AND_3); // LCOV_EXCL_LINE
+ }
+