Abolish as many undifferentiated long variables as possible.
[open-adventure.git] / advent.h
index b058797396038e34e20dfc525e79b711860b8a17..80f9eaaea590670ff8066331f0503aa844023475 100644 (file)
--- a/advent.h
+++ b/advent.h
@@ -109,25 +109,26 @@ enum phase_codes {
     GO_DWARFWAKE,
 };
 
-typedef long token_t;  // word token - someday this will be char[TOKLEN+1] */
+typedef long token_t;  // token index */
 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 clock2;                 // # turns from first warning till blinding flash
+    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)
@@ -137,44 +138,43 @@ struct game_t {
      * 3+      Dwarves are mad (increases their accuracy) */
     long dflag;
 
-    long dkill;
-    long dtotal;
-    long foobar;                 // current progress in saying "FEE FIE FOE FOO".
+    long dkill;                  // dwarves killed
+    long dtotal;                 // total dwarves (including pirate)
+    long foobar;                 // progress in saying "FEE FIE FOE FOO".
     long holdng;                 // number of objects being carried
-    long igo;                    // How many times he's said "go" instead of the direction
-    long iwest;                  // How many times he's said "west" instead of "w"
-    long knfloc;                 // 0 if no knife here, loc if knife , -1 after caveat
+    long igo;                    // # uses of "go" instead of a direction
+    long iwest;                  // # times he's said "west" instead of "w"
+    long knfloc;                 // knife location; 0 if none, -1 after caveat
     long limit;                  // lifetime of lamp (not set here)
     bool lmwarn;                 // has player been warned about lamp going dim?
-    long loc;
-    long newloc;
+    loc_t loc;                   // where player is now
+    loc_t newloc;                // where player is going
     bool novice;                 // asked for instructions at start-up?
     long numdie;                 // number of times killed so far
-    long oldloc;
-    long oldlc2;
-    long oldobj;
+    loc_t oldloc;                // where player was
+    loc_t oldlc2;                // where player was two moves ago 
+    obj_t oldobj;                // last object player handled
     bool panic;                  // has player found out he's trapped?
     long saved;                  // point penalty for saves
-    long tally;
-    long thresh;
-    long trndex;
-    long trnluz;                 // # points lost so far due to turns used
-    long turns;                  // counts commands given (ignores yes/no)
+    long tally;                  // count of treasures gained
+    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 */
 };
 
 /*
@@ -204,7 +204,7 @@ 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,7 +212,7 @@ 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);