Give the FORCED property a real cond bit. Delete some unused code.
authorEric S. Raymond <esr@thyrsus.com>
Thu, 22 Jun 2017 21:49:06 +0000 (17:49 -0400)
committerEric S. Raymond <esr@thyrsus.com>
Thu, 22 Jun 2017 21:49:06 +0000 (17:49 -0400)
advent.h
common.h
dungeon.c
init.c

index f52ea8e3ea4b432c3636a1bf79452e0c8cb2d516..94fbd88877ca162c310e0cd9f37e5a405460c9bf 100644 (file)
--- a/advent.h
+++ b/advent.h
@@ -151,7 +151,7 @@ extern int restore(FILE *);
 #define LIQUID()       (LIQ2(game.prop[BOTTLE]<0 ? -1-game.prop[BOTTLE] : game.prop[BOTTLE]))
 #define LIQLOC(LOC)    (LIQ2((MOD(conditions[LOC]/2*2,8)-5)*MOD(conditions[LOC]/4,2)+1))
 #define CNDBIT(L,N)    (TSTBIT(conditions[L],N))
-#define FORCED(LOC)    (conditions[LOC] == 2)
+#define FORCED(LOC)    CNDBIT(LOC, COND_FORCED)
 #define DARK(DUMMY)    ((!TSTBIT(conditions[game.loc],COND_LIT)) && (game.prop[LAMP] == 0 || !HERE(LAMP)))
 #define PCT(N)         (randrange(100) < (N))
 #define GSTONE(OBJ)    ((OBJ) == EMERALD || (OBJ) == RUBY || (OBJ) == AMBER || (OBJ) == SAPPH)
index bdc8e0d88f8ef78709f6463c1db7faa81d864460..e98384b20a2f9af75efc197988d6d1c98c193134 100644 (file)
--- a/common.h
+++ b/common.h
@@ -16,7 +16,8 @@ extern const char ascii_to_advent[128];
 #define COND_NOBACK    4       /* Cannot use "back" to move away */
 #define COND_ABOVE     5
 #define COND_DEEP      6       /* Deep - e.g where dwarves are active */
-#define COND_FOREST    7       /* in the forest */
+#define COND_FOREST    7       /* In the forest */
+#define COND_FORCED    8       /* Only one way in or out of here */
 /* Bits past 10 indicate areas of interest to "hint" routines */
 #define COND_HBASE     10      /* Base for location hint bits */
 #define COND_HCAVE     11      /* Trying to get into cave */
index f34cf129cc2a183eff17e3938451520b813ab111..6ef35257cd768f69c7ab3a7e52c4dacd4a951b30 100644 (file)
--- a/dungeon.c
+++ b/dungeon.c
@@ -52,13 +52,6 @@ long PLAC[NOBJECTS + 1];
 long FIXD[NOBJECTS + 1];
 long ACTSPK[VRBSIZ + 1];
 
-static bool is_set(long var, long position)
-{
-    long mask = 1L << position;
-    bool result = (var & mask) == mask;
-    return (result);
-}
-
 static long GETTXT(long SKIP, long ONEWRD, long UPPER)
 {
     /*  Take characters from an input line and pack them into 30-bit words.
diff --git a/init.c b/init.c
index 5ae974f5dc10ae17e05c729f40c551528d4a64fd..1ed9df6c4561f3700f3abc2ad2c5e68b0ec4310d 100644 (file)
--- a/init.c
+++ b/init.c
@@ -185,7 +185,7 @@ void initialise(void)
         if (!(locations[i].description.big == 0 || KEY[i] == 0)) {
             int k = KEY[i];
             if (MOD(labs(TRAVEL[k]), 1000) == 1)
-               conditions[i] = 2;
+               conditions[i] |= (1 << COND_FORCED);
         }
         game.atloc[i] = 0;
     }