X-Git-Url: https://jxself.org/git/?p=open-adventure.git;a=blobdiff_plain;f=main.c;h=c837fe69bf0a3f9a58f14c1e6515e83bb06f11b2;hp=a42fe3e235682752dd6db009298dadb94635c2d2;hb=5337e00725f17e08836fb2a2f59ab178ece47000;hpb=609159ad6d62af90cdbf97cbb09fffabde87a026 diff --git a/main.c b/main.c index a42fe3e..c837fe6 100644 --- a/main.c +++ b/main.c @@ -133,27 +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; - 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", &sv) == 1) { - game.limit -= sv; - 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). */ @@ -670,7 +649,7 @@ static void playermove( int motion) /* We arrive here on conditional failure. * Skip to next non-matching destination */ - long te_tmp = travel_entry; + int te_tmp = travel_entry; do { if (travel[te_tmp].stop) BUG(CONDITIONAL_TRAVEL_ENTRY_WITH_NO_ALTERATION); // LCOV_EXCL_LINE @@ -1135,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; @@ -1151,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 }