Comment cleanup, semantic types, information hiding.
[open-adventure.git] / advent.h
index 089d70d6c8806935d1233295706df62f6a51e678..98d30925862a5d05a32966bccd1ebab0b80974be 100644 (file)
--- a/advent.h
+++ b/advent.h
@@ -114,20 +114,21 @@ typedef long vocab_t;  // index into a vocabulary array */
 typedef long verb_t;   // index into an actions array */
 typedef long obj_t;    // index into the object array */
 typedef long loc_t;    // index into the locations array */
+typedef long turn_t;   // turn counter or threshold */
 
 struct game_t {
     unsigned long lcg_a, lcg_c, lcg_m, lcg_x;
     long abbnum;                 // How often to print long descriptions
     score_t bonus;               // What kind of finishing bonus we are getting
-    long chloc;
-    long chloc2;
-    long clock1;                 // # turns from finding last treasure till closing
+    long chloc;                  // pirate chest location
+    long chloc2;                 // pirate chest alternate location
+    long clock1;                 // # turns from finding last treasure to close
     long clock2;                 // # turns from warning till blinding flash
     bool clshnt;                 // has player read the clue in the endgame?
     bool closed;                 // whether we're all the way closed
     bool closng;                 // whether it's closing time yet
     long conds;                  // min value for cond[loc] if loc has any hints
-    long detail;
+    long detail;                 // level of detail in descriptions
 
     /*  dflag controls the level of activation of dwarves:
      * 0       No dwarf stuff yet (wait until reaches Hall Of Mists)
@@ -156,25 +157,24 @@ struct game_t {
     bool panic;                  // has player found out he's trapped?
     long saved;                  // point penalty for saves
     long tally;                  // count of treasures gained
-    long thresh;
-    long trndex;
-    long trnluz;                 // # points lost so far due to turns used
-    long turns;                  // counts commands given (ignores yes/no)
+    long thresh;                 // current threshold for endgame scoring tier
+    turn_t trndex;               // FIXME: not used, remove on next format bump
+    turn_t trnluz;               // # points lost so far due to turns used
+    turn_t turns;                // counts commands given (ignores yes/no)
     bool wzdark;                 // whether the loc he's leaving was dark
     char zzword[TOKLEN + 1];     // randomly generated magic word from bird
     bool blooded;                // has player drunk of dragon's blood?
-    long abbrev[NLOCATIONS + 1];
-    long atloc[NLOCATIONS + 1];
+    long abbrev[NLOCATIONS + 1]; // has location been seen?
+    long atloc[NLOCATIONS + 1];  // head of object linked list per location
     long dseen[NDWARVES + 1];    // true if dwarf has seen him
     loc_t dloc[NDWARVES + 1];    // location of dwarves, initially hard-wired in
     loc_t odloc[NDWARVES + 1];   // prior loc of each dwarf, initially garbage
-    loc_t fixed[NOBJECTS + 1];
-    long link[NOBJECTS * 2 + 1];
-    loc_t place[NOBJECTS + 1];
+    loc_t fixed[NOBJECTS + 1];   // fixed location of object (if  not IS_FREE)
+    long link[NOBJECTS * 2 + 1]; // object-list links
+    loc_t place[NOBJECTS + 1];   // location of object
     long hinted[NHINTS];         // hinted[i] = true iff hint i has been used.
     long hintlc[NHINTS];         // hintlc[i] = how long at LOC with cond bit i
-
-    long prop[NOBJECTS + 1];
+    long prop[NOBJECTS + 1];     // object state array */
 };
 
 /*
@@ -202,9 +202,8 @@ extern struct game_t game;
 extern struct settings_t settings;
 
 extern bool get_command_input(struct command_t *);
-extern void wordclear(token_t *);
 extern void speak(const char*, ...);
-extern void sspeak(long msg, ...);
+extern void sspeak(int msg, ...);
 extern void pspeak(vocab_t, enum speaktype, int, bool, ...);
 extern void rspeak(vocab_t, ...);
 extern void echo_input(FILE*, const char*, const char*);
@@ -212,15 +211,13 @@ extern bool silent_yes(void);
 extern bool yes(const char*, const char*, const char*);
 extern void juggle(obj_t);
 extern void move(obj_t, loc_t);
-extern long put(obj_t, long, long);
+extern loc_t put(obj_t, long, long);
 extern void carry(obj_t, loc_t);
 extern void drop(obj_t, loc_t);
-extern long atdwrf(loc_t);
-extern long setbit(long);
+extern int atdwrf(loc_t);
+extern long setbit(int);
 extern bool tstbit(long, int);
-extern void make_zzword(char*);
 extern void set_seed(long);
-extern unsigned long get_next_lcg_value(void);
 extern long randrange(long);
 extern long score(enum termination);
 extern void terminate(enum termination) __attribute__((noreturn));
@@ -230,7 +227,7 @@ extern int resume(void);
 extern int restore(FILE *);
 extern long initialise(void);
 extern int action(struct command_t *command);
-extern void state_change(obj_t, long);
+extern void state_change(obj_t, int);
 
 
 void bug(enum bugtype, const char *) __attribute__((__noreturn__));