Remove unnecessary clearing of command verb.
[open-adventure.git] / main.c
diff --git a/main.c b/main.c
index faa353b514be4001c04d0506170d0e660fbc47ef..8a5545adbb3d42ff230ccfcdba83bf801d14a3f5 100644 (file)
--- a/main.c
+++ b/main.c
@@ -133,28 +133,6 @@ int main(int argc, char *argv[])
     terminate(quitgame);
 }
 
     terminate(quitgame);
 }
 
-static bool fallback_handler(struct command_t command)
-/* fallback handler for commands not handled by FORTRANish parser */
-{
-    long sv;
-    turn_t turnlimit;
-    char buf[DIM(command.raw1) + DIM(command.raw2) + 1];
-    sprintf(buf, "%s %s", command.raw1, command.raw2);
-
-    if (sscanf(buf, "seed %ld", &sv) == 1) {
-        set_seed(sv);
-        printf("Seed set to %ld\n", sv);
-        // autogenerated, so don't charge user time for it.
-        --game.turns;
-        return true;
-    } else if (sscanf(buf, "waste %ld", &turnlimit) == 1) {
-        game.limit -= turnlimit;
-        printf("Game limit is now %ld\n", game.limit);
-        return true;
-    }
-    return false;
-}
-
 /*  Check if this loc is eligible for any hints.  If been here long
  *  enough, display.  Ignore "HINTS" < 4 (special stuff, see database
  *  notes). */
 /*  Check if this loc is eligible for any hints.  If been here long
  *  enough, display.  Ignore "HINTS" < 4 (special stuff, see database
  *  notes). */
@@ -992,8 +970,6 @@ static bool do_command()
 {
     static struct command_t command;
 
 {
     static struct command_t command;
 
-    command.verb = 0;
-
     /*  Can't leave cave once it's closing (except by main office). */
     if (OUTSID(game.newloc) && game.newloc != 0 && game.closng) {
         rspeak(EXIT_CLOSED);
     /*  Can't leave cave once it's closing (except by main office). */
     if (OUTSID(game.newloc) && game.newloc != 0 && game.closng) {
         rspeak(EXIT_CLOSED);
@@ -1136,8 +1112,6 @@ Lookup:
                 rspeak(GO_UNNEEDED);
         }
         if (command.id1 == WORD_NOT_FOUND) {
                 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;
             /* Gee, I don't understand. */
             sspeak(DONT_KNOW, command.raw1);
             goto Lclearobj;
@@ -1152,17 +1126,18 @@ Lookup:
             command.obj = command.id1;
             break;
         case ACTION:
             command.obj = command.id1;
             break;
         case ACTION:
-            command.part = intransitive;
+            if(command.type2 == NUMERIC) 
+                command.part = transitive;
+            else
+                command.part = intransitive;
             command.verb = command.id1;
             break;
             command.verb = command.id1;
             break;
-        case SPECIAL:
-            speak(specials[command.id1].message);
-            goto Lclearobj;
+        case NUMERIC: // LCOV_EXCL_LINE
         default: // LCOV_EXCL_LINE
             BUG(VOCABULARY_TYPE_N_OVER_1000_NOT_BETWEEN_0_AND_3); // LCOV_EXCL_LINE
         }
 
         default: // LCOV_EXCL_LINE
             BUG(VOCABULARY_TYPE_N_OVER_1000_NOT_BETWEEN_0_AND_3); // LCOV_EXCL_LINE
         }
 
-        switch (action(&command)) {
+        switch (action(command)) {
         case GO_TERMINATE:
             return true;
         case GO_MOVE:
         case GO_TERMINATE:
             return true;
         case GO_MOVE: