extern long token_to_packed(const char token[]);
extern void tokenize(char*, struct command_t *);
extern void vspeak(const char*, bool, va_list);
-extern bool wordeq(token_t, token_t);
extern bool wordempty(token_t);
extern void wordclear(token_t *);
extern void speak(const char*, ...);
else if (j > 1 && game.newloc == tk[j - 1])
continue;
else if (j >= DIM(tk) - 1)
- /* This can't actually happen. */
+ /* This can't actually happen. */
continue; // LCOV_EXCL_LINE
else if (game.newloc == game.dloc[i])
continue;
command.id1 = command.id2;
command.id2 = WORD_EMPTY;
} else {
- if (!((command.id1 != WATER && command.id1 != OIL) || (command.id2 != PLANT && command.id2 != DOOR))) {
+ if (!((command.id1 != WATER && command.id1 != OIL) || (command.id2 != PLANT && command.id2 != DOOR))) {
if (AT(command.id2))
command.wd2 = token_to_packed("POUR");
}
rspeak(GO_UNNEEDED);
}
packed_to_token(command.wd1, word1);
- long defn;
- enum wordtype type;
- get_vocab_metadata(word1, &defn, &type);
+ long defn;
+ enum wordtype type;
+ get_vocab_metadata(word1, &defn, &type);
if (defn == WORD_NOT_FOUND) {
if (fallback_handler(command))
continue;
goto Lclearobj;
}
switch (type) {
- case NO_WORD_TYPE: // FIXME: treating NO_WORD_TYPE as a motion word is confusing
+ case NO_WORD_TYPE: // FIXME: treating NO_WORD_TYPE as a motion word is confusing
case MOTION:
playermove(defn);
return true;
/* Hide the fact that wods are corrently packed longs */
-bool wordeq(token_t a, token_t b)
-{
- return a == b;
-}
-
bool wordempty(token_t a)
{
return a == 0;
long previous_arg = 0;
for (int i = 0; i < msglen; i++) {
if (msg[i] != '%') {
- /* Ugh. Least obtrusive way to deal with artifacts "on the floor"
- * being dropped outside of both cave and building. */
- if (strncmp(msg + i, "floor", 5) == 0 && strchr(" .", msg[i+5]) && !INSIDE(game.loc)) {
- strcpy(renderp, "ground");
- renderp += 6;
- i += 4;
- size -= 5;
- } else {
- *renderp++ = msg[i];
- size--;
- }
+ /* Ugh. Least obtrusive way to deal with artifacts "on the floor"
+ * being dropped outside of both cave and building. */
+ if (strncmp(msg + i, "floor", 5) == 0 && strchr(" .", msg[i + 5]) && !INSIDE(game.loc)) {
+ strcpy(renderp, "ground");
+ renderp += 6;
+ i += 4;
+ size -= 5;
+ } else {
+ *renderp++ = msg[i];
+ size--;
+ }
} else {
long arg = va_arg(ap, long);
if (arg == -1)
void get_vocab_metadata(const char* word, long* id, enum wordtype* type)
{
- /* Check for an empty string */
- if (strncmp(word, "", sizeof("")) == 0)
- {
- *id = WORD_EMPTY;
- *type = NO_WORD_TYPE;
- return;
+ /* Check for an empty string */
+ if (strncmp(word, "", sizeof("")) == 0) {
+ *id = WORD_EMPTY;
+ *type = NO_WORD_TYPE;
+ return;
}
- long ref_num;
+ long ref_num;
- ref_num = get_motion_vocab_id(word);
- if (ref_num != WORD_NOT_FOUND)
- {
- *id = ref_num;
- *type = MOTION;
- return;
+ ref_num = get_motion_vocab_id(word);
+ if (ref_num != WORD_NOT_FOUND) {
+ *id = ref_num;
+ *type = MOTION;
+ return;
}
- ref_num = get_object_vocab_id(word);
- if (ref_num != WORD_NOT_FOUND)
- {
- *id = ref_num;
- *type = OBJECT;
- return;
+ ref_num = get_object_vocab_id(word);
+ if (ref_num != WORD_NOT_FOUND) {
+ *id = ref_num;
+ *type = OBJECT;
+ return;
}
- ref_num = get_action_vocab_id(word);
- if (ref_num != WORD_NOT_FOUND)
- {
- *id = ref_num;
- *type = ACTION;
- return;
+ ref_num = get_action_vocab_id(word);
+ if (ref_num != WORD_NOT_FOUND) {
+ *id = ref_num;
+ *type = ACTION;
+ return;
}
- ref_num = get_special_vocab_id(word);
- if (ref_num != WORD_NOT_FOUND)
- {
- *id = ref_num;
- *type = SPECIAL;
- return;
+ ref_num = get_special_vocab_id(word);
+ if (ref_num != WORD_NOT_FOUND) {
+ *id = ref_num;
+ *type = SPECIAL;
+ return;
}
- // Check for the reservoir magic word.
- if (strcasecmp(word, game.zzword) == 0)
- {
- *id = PART;
- *type = ACTION;
- return;
+ // Check for the reservoir magic word.
+ if (strcasecmp(word, game.zzword) == 0) {
+ *id = PART;
+ *type = ACTION;
+ return;
}
- *id = WORD_NOT_FOUND;
- *type = NO_WORD_TYPE;
- return;
+ *id = WORD_NOT_FOUND;
+ *type = NO_WORD_TYPE;
+ return;
}
void juggle(obj_t object)