Abstracted a chuck of do_command() into seperate function do_move(), moved that call...
[open-adventure.git] / advent.h
index 09f5ad99271d427f31f3b347ba5f6e9097799d80..87ee153dcb81136593236056fffc551732d155de 100644 (file)
--- a/advent.h
+++ b/advent.h
@@ -196,20 +196,24 @@ typedef struct {
     word_type_t type;
 } command_word_t;
 
+typedef enum {EMPTY, RAW, TOKENIZED, GIVEN, PREPROCESSED, PROCESSING, EXECUTED} command_state_t;
+
 typedef struct {
     enum speechpart part;
     command_word_t word[2];
     verb_t verb;
-    obj_t   obj;
+    obj_t obj;
+    command_state_t state;
 } command_t;
 
 extern struct game_t game;
 extern struct settings_t settings;
 
 extern bool get_command_input(command_t *);
+extern void clear_command(command_t *);
 extern void speak(const char*, ...);
 extern void sspeak(int msg, ...);
-extern void pspeak(vocab_t, enum speaktype, int, bool, ...);
+extern void pspeak(vocab_t, enum speaktype, bool, int, ...);
 extern void rspeak(vocab_t, ...);
 extern void echo_input(FILE*, const char*, const char*);
 extern bool silent_yes(void);