Add command_word_t, for command words.
[open-adventure.git] / advent.h
index 09ec71b7d16f9a82c1d9bf241687b4a58ab33950..d2357070a6e891d4511b32a1ffccaec9b843beee 100644 (file)
--- a/advent.h
+++ b/advent.h
@@ -87,7 +87,7 @@ enum termination {endgame, quitgame, scoregame};
 
 enum speechpart {unknown, intransitive, transitive};
 
-enum wordtype {NO_WORD_TYPE, MOTION, OBJECT, ACTION, SPECIAL, NUMERIC};
+typedef enum {NO_WORD_TYPE, MOTION, OBJECT, ACTION, NUMERIC} word_type_t;
 
 typedef enum scorebonus {none, splatter, defeat, victory} score_t;
 
@@ -101,11 +101,8 @@ enum phase_codes {
     GO_TOP,
     GO_CLEAROBJ,
     GO_CHECKHINT,
-    GO_DIRECTION,
     GO_WORD2,
-    GO_SPECIALS,
     GO_UNKNOWN,
-    GO_ACTION,
     GO_DWARFWAKE,
 };
 
@@ -186,13 +183,18 @@ struct settings_t {
     bool prompt;
 };
 
+typedef struct {
+  vocab_t id;
+  word_type_t type;
+} command_word_t;
+
 struct command_t {
     char raw1[LINESIZE], raw2[LINESIZE];
     enum speechpart part;
     vocab_t id1;
     vocab_t id2;
-    enum wordtype type1;
-    enum wordtype type2;
+    word_type_t type1;
+    word_type_t type2;
     verb_t verb;
     obj_t   obj;
 };
@@ -225,7 +227,7 @@ extern int suspend(void);
 extern int resume(void);
 extern int restore(FILE *);
 extern long initialise(void);
-extern int action(struct command_t *command);
+extern int action(struct command_t command);
 extern void state_change(obj_t, int);