Cleanups and clarifications in do_command()
[open-adventure.git] / advent.h
index 289b8f6a12b7afa70ef36228b744db3396bddc62..3015d65d1f2b65b3768dc5c070b697c08dbb6559 100644 (file)
--- a/advent.h
+++ b/advent.h
@@ -6,13 +6,12 @@
 #include "dungeon.h"
 
 #define LINESIZE       1024
-#define TOKLEN        5          // # sigificant character sin a token */
+#define TOKLEN         5          // № sigificant characters in a token */
 #define NDWARVES       6          // number of dwarves
 #define PIRATE         NDWARVES   // must be NDWARVES-1 when zero-origin
 #define DALTLC         LOC_NUGGET // alternate dwarf location
-#define INVLIMIT       7          // inverntory limit (# of objects)
+#define INVLIMIT       7          // inverntory limit ( of objects)
 #define INTRANSITIVE   -1         // illegal object number
-#define SPECIALBASE    300        // base number of special rooms
 #define GAMELIMIT      330        // base limit of turns
 #define NOVICELIMIT    1000       // limit of turns for novice
 #define WARNTIME       30         // late game starts at game.limit-this
 #define LIQUID()     (game.prop[BOTTLE] == WATER_BOTTLE? WATER : game.prop[BOTTLE] == OIL_BOTTLE ? OIL : NO_OBJECT )
 #define LIQLOC(LOC)  (CNDBIT((LOC),COND_FLUID)? CNDBIT((LOC),COND_OILY) ? OIL : WATER : NO_OBJECT)
 #define FORCED(LOC)  CNDBIT(LOC, COND_FORCED)
-#define DARK(DUMMY)  ((!tstbit(conditions[game.loc],COND_LIT)) && (game.prop[LAMP] == LAMP_DARK || !HERE(LAMP)))
+#define DARK(DUMMY)  (!CNDBIT(game.loc,COND_LIT) && (game.prop[LAMP] == LAMP_DARK || !HERE(LAMP)))
 #define PCT(N)       (randrange(100) < (N))
 #define GSTONE(OBJ)  ((OBJ) == EMERALD || (OBJ) == RUBY || (OBJ) == AMBER || (OBJ) == SAPPH)
 #define FOREST(LOC)  CNDBIT(LOC, COND_FOREST)
-#define SPECIAL(LOC) ((LOC) > SPECIALBASE)
 #define OUTSID(LOC)  (CNDBIT(LOC, COND_ABOVE) || FOREST(LOC))
 #define INDEEP(LOC)  ((LOC) >= LOC_MISTHALL && !OUTSID(LOC))
 #define BUG(x)       bug(x, #x)
@@ -114,8 +112,9 @@ enum phase_codes {
     GO_DWARFWAKE,
 };
 
-typedef long token_t;  // word token - someday this will be char[TOKLEN+1]
+typedef long token_t;  // word token - someday this will be char[TOKLEN+1] */
 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 */
 
@@ -145,6 +144,7 @@ struct game_t {
     long dtotal;
     long foobar;                 // current 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 limit;                  // lifetime of lamp (not set here)
@@ -161,7 +161,7 @@ struct game_t {
     long tally;
     long thresh;
     long trndex;
-    long trnluz;                 // # points lost so far due to number of turns used
+    long trnluz;                 //  points lost so far due to number of turns used
     long turns;                  // how many commands he's given (ignores yes/no)
     bool wzdark;                 // whether the loc he's leaving was dark
     char zzword[TOKLEN + 1];     // randomly generated magic word from bird
@@ -191,7 +191,7 @@ struct settings_t {
 
 struct command_t {
     enum speechpart part;
-    vocab_t verb;
+    verb_t verb;
     obj_t   obj;
     token_t wd1;
     token_t wd2;