X-Git-Url: https://jxself.org/git/?p=open-adventure.git;a=blobdiff_plain;f=main.c;h=8a5545adbb3d42ff230ccfcdba83bf801d14a3f5;hp=faa353b514be4001c04d0506170d0e660fbc47ef;hb=878efdddfbb1cd134c4ceed6cbc80e64aa43d2a5;hpb=a3c159660bb03f220b7de52ba0ac4977098f389e diff --git a/main.c b/main.c index faa353b..8a5545a 100644 --- 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). */ @@ -992,8 +970,6 @@ static bool do_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); @@ -1136,8 +1112,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,17 +1126,18 @@ 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: // 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: