/* populate command with parsed vocabulary metadata */
get_vocab_metadata(cmd->word[0].raw, &(cmd->word[0].id), &(cmd->word[0].type));
get_vocab_metadata(cmd->word[1].raw, &(cmd->word[1].id), &(cmd->word[1].type));
+ cmd->state = TOKENIZED;
}
bool get_command_input(command_t *command)
tokenize(inputbuf, command);
+#ifdef GDEBUG
+ /* Needs to stay synced with enum word_type_t */
+ const char *types[] = {"NO_WORD_TYPE", "MOTION", "OBJECT", "ACTION", "NUMERIC"};
+ /* needs to stay synced with enum speechpart */
+ const char *roles[] = {"unknown", "intransitive", "transitive"};
+ printf("Command: role = %s type1 = %s, id1 = %ld, type2 = %s, id2 = %ld\n",
+ roles[command->part],
+ types[command->word[0].type],
+ command->word[0].id,
+ types[command->word[1].type],
+ command->word[1].id);
+#endif
+
+ command->state = GIVEN;
return true;
}
+void clear_command(command_t *cmd)
+/* Resets the state of the command to empty */
+{
+ cmd->verb = ACT_NULL;
+ cmd->part = unknown;
+ game.oldobj = cmd->obj;
+ cmd->obj = NO_OBJECT;
+ cmd->state = EMPTY;
+}
+
+
void juggle(obj_t object)
/* Juggle an object by picking it up and putting it down again, the purpose
* being to get the object to the front of the chain of things at its loc. */