X-Git-Url: https://jxself.org/git/?p=open-adventure.git;a=blobdiff_plain;f=main.c;h=7cf987aa551faa2b085baab57ab6deeb0ec11df9;hp=4f46c0ac8a81dc3c9f6ffda2269b1f5a963efde9;hb=f52a78a1f8ce3f2bbf6728d6d1e4fc517afeddac;hpb=7740b163c86d1e16339c1f7952f9511f951dd5d3 diff --git a/main.c b/main.c index 4f46c0a..7cf987a 100644 --- a/main.c +++ b/main.c @@ -20,6 +20,7 @@ #include #include #include +#include #include "advent.h" #include "dungeon.h" @@ -1054,12 +1055,7 @@ L2600: strncpy(inputbuf, input, LINESIZE - 1); free(input); - long tokens[4]; - tokenize(inputbuf, tokens); - command.wd1 = tokens[0]; - command.wd1x = tokens[1]; - command.wd2 = tokens[2]; - command.wd2x = tokens[3]; + tokenize(inputbuf, &command); /* Every input, check "game.foobar" flag. If zero, nothing's * going on. If pos, make neg. If neg, he skipped a word, @@ -1089,8 +1085,8 @@ L2607: } else lampcheck(); - char word1[6]; - char word2[6]; + char word1[TOKLEN+1]; + char word2[TOKLEN+1]; packed_to_token(command.wd1, word1); packed_to_token(command.wd2, word2); V1 = get_vocab_id(word1); @@ -1106,7 +1102,6 @@ L2607: } if (V1 == ENTER && command.wd2 > 0) { command.wd1 = command.wd2; - command.wd1x = command.wd2x; wordclear(&command.wd2); } else { /* FIXME: Magic numbers related to vocabulary */ @@ -1135,7 +1130,7 @@ Lookup: /* Gee, I don't understand. */ if (fallback_handler(inputbuf)) continue; - rspeak(DONT_KNOW, command.wd1, command.wd1x); + sspeak(DONT_KNOW, command.raw1); goto L2600; } /* FIXME: magic numbers related to vocabulary */ @@ -1179,13 +1174,15 @@ Laction: case GO_WORD2: /* Get second word for analysis. */ command.wd1 = command.wd2; - command.wd1x = command.wd2x; + strcpy(command.raw1, command.raw2); wordclear(&command.wd2); + command.raw2[0] = '\0'; goto L2620; case GO_UNKNOWN: /* Random intransitive verbs come here. Clear obj just in case * (see attack()). */ - rspeak(DO_WHAT, command.wd1, command.wd1x); + command.raw1[0] = toupper(command.raw1[0]); + sspeak(DO_WHAT, command.raw1); command.obj = 0; goto L2600; case GO_DWARFWAKE: