#include <getopt.h>
#include <signal.h>
#include <string.h>
+#include <ctype.h>
#include "advent.h"
#include "dungeon.h"
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,
} 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);
}
if (V1 == ENTER && command.wd2 > 0) {
command.wd1 = command.wd2;
- command.wd1x = command.wd2x;
wordclear(&command.wd2);
} else {
/* FIXME: Magic numbers related to vocabulary */
/* 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 */
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: