#define PROMPT "> "
/*
- * DESTROY(N) = Get rid of an item by putting it in LOC_NOWHERE
- * MOD(N,M) = Arithmetic modulus
- * TOTING(OBJ) = true if the OBJ is being carried
- * AT(OBJ) = true if on either side of two-placed object
- * HERE(OBJ) = true if the OBJ is at "LOC" (or is being carried)
- * CNDBIT(L,N) = true if COND(L) has bit n set (bit 0 is units bit)
- * LIQUID() = object number of liquid in bottle
- * LIQLOC(LOC) = object number of liquid (if any) at LOC
- * FORCED(LOC) = true if LOC moves without asking for input (COND=2)
- * DARK(LOC) = true if location "LOC" is dark
- * PCT(N) = true N% of the time (N integer from 0 to 100)
- * GSTONE(OBJ) = true if OBJ is a gemstone
- * FOREST(LOC) = true if LOC is part of the forest
- * OUTSIDE(LOC) = true if location not in the cave
- * INSIDE(LOC) = true if location is in the cave or the building at the
- * beginning of the game
- * INDEEP(LOC) = true if location is in the Hall of Mists or deeper
- * BUG(X) = report bug and exit
+ * DESTROY(N) = Get rid of an item by putting it in LOC_NOWHERE
+ * MOD(N,M) = Arithmetic modulus
+ * TOTING(OBJ) = true if the OBJ is being carried
+ * AT(OBJ) = true if on either side of two-placed object
+ * HERE(OBJ) = true if the OBJ is at "LOC" (or is being carried)
+ * CNDBIT(L,N) = true if COND(L) has bit n set (bit 0 is units bit)
+ * LIQUID() = object number of liquid in bottle
+ * LIQLOC(LOC) = object number of liquid (if any) at LOC
+ * FORCED(LOC) = true if LOC moves without asking for input (COND=2)
+ * IS_DARK_HERE() = true if location "LOC" is dark
+ * PCT(N) = true N% of the time (N integer from 0 to 100)
+ * GSTONE(OBJ) = true if OBJ is a gemstone
+ * FOREST(LOC) = true if LOC is part of the forest
+ * OUTSIDE(LOC) = true if location not in the cave
+ * INSIDE(LOC) = true if location is in the cave or the building at the
+ * beginning of the game
+ * INDEEP(LOC) = true if location is in the Hall of Mists or deeper
+ * BUG(X) = report bug and exit
*/
#define DESTROY(N) move(N, LOC_NOWHERE)
#define MOD(N, M) ((N) % (M))
(CNDBIT((LOC), COND_FLUID) ? CNDBIT((LOC), COND_OILY) ? OIL : WATER \
: NO_OBJECT)
#define FORCED(LOC) CNDBIT(LOC, COND_FORCED)
-#define DARK(DUMMY) \
+#define IS_DARK_HERE() \
(!CNDBIT(game.loc, COND_LIT) && \
(game.objects[LAMP].prop == LAMP_DARK || !HERE(LAMP)))
#define PCT(N) (randrange(100) < (N))
msg = locations[game.loc].description.big;
}
- if (!FORCED(game.loc) && DARK(game.loc)) {
+ if (!FORCED(game.loc) && IS_DARK_HERE()) {
msg = arbitrary_messages[PITCH_DARK];
}
* Similarly for chain; game.prop is initially CHAINING_BEAR (locked to
* bear). These hacks are because game.prop=0 is needed to
* get full score. */
- if (!DARK(game.loc)) {
+ if (!IS_DARK_HERE()) {
++game.locs[game.loc].abbrev;
for (int i = game.locs[game.loc].atloc; i != 0;
i = game.link[i]) {
/* The easiest way to get killed is to fall into a pit in
* pitch darkness. */
- if (!FORCED(game.loc) && DARK(game.loc) && game.wzdark &&
+ if (!FORCED(game.loc) && IS_DARK_HERE() && game.wzdark &&
PCT(PIT_KILL_PROB)) {
rspeak(PIT_FALL);
game.oldlc2 = game.loc;
}
/* Check to see if the room is dark. */
- game.wzdark = DARK(game.loc);
+ game.wzdark = IS_DARK_HERE();
/* If the knife is not here it permanently disappears.
* Possibly this should fire if the knife is here but