Fix to Gitlab issue #32. Now SEED and WASTE are in adventure.yaml
[open-adventure.git] / main.c
diff --git a/main.c b/main.c
index faa353b514be4001c04d0506170d0e660fbc47ef..c837fe69bf0a3f9a58f14c1e6515e83bb06f11b2 100644 (file)
--- a/main.c
+++ b/main.c
@@ -133,28 +133,6 @@ int main(int argc, char *argv[])
     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). */
@@ -1136,8 +1114,6 @@ Lookup:
                 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;
@@ -1152,12 +1128,16 @@ Lookup:
             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;
         case SPECIAL:
             speak(specials[command.id1].message);
             goto Lclearobj;
+        case NUMERIC:
         default: // LCOV_EXCL_LINE
             BUG(VOCABULARY_TYPE_N_OVER_1000_NOT_BETWEEN_0_AND_3); // LCOV_EXCL_LINE
         }