Eliminare a confusing dummy argument in a macro.
authorEric S. Raymond <esr@thyrsus.com>
Mon, 23 Sep 2024 18:17:52 +0000 (14:17 -0400)
committerEric S. Raymond <esr@thyrsus.com>
Mon, 23 Sep 2024 18:22:25 +0000 (14:22 -0400)
actions.c
advent.h
main.c

index 96dabb355e05ff6bcdda8fb6f38c760c1e9bf2f6..469e92ff102d4775657823241e2ea529085ccc22 100644 (file)
--- a/actions.c
+++ b/actions.c
@@ -676,7 +676,7 @@ static phase_codes_t extinguish(verb_t verb, obj_t obj) {
                break;
        case LAMP:
                state_change(LAMP, LAMP_DARK);
-               rspeak(DARK(game.loc) ? PITCH_DARK : NO_MESSAGE);
+               rspeak(IS_DARK_HERE() ? PITCH_DARK : NO_MESSAGE);
                break;
        case DRAGON:
        case VOLCANO:
@@ -1155,12 +1155,12 @@ static phase_codes_t read(command_t command)
                        }
                }
                if (command.obj > NOBJECTS || command.obj == NO_OBJECT ||
-                   DARK(game.loc)) {
+                   IS_DARK_HERE()) {
                        return GO_UNKNOWN;
                }
        }
 
-       if (DARK(game.loc)) {
+       if (IS_DARK_HERE()) {
                sspeak(NO_SEE, command.word[0].raw);
        } else if (command.obj == OYSTER) {
                if (!TOTING(OYSTER) || !game.closed) {
index 4a6d4d3092b36ac5e0dadcf4f60a692915d1506f..3ae901285255878635c7090691d6270ca01a7f3a 100644 (file)
--- a/advent.h
+++ b/advent.h
 #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))
diff --git a/main.c b/main.c
index 3ecf65a0a424f7130a08fb950db5777faaff495f..835fc1b3bbc435ac6e10bfa674e0a438974ba25e 100644 (file)
--- a/main.c
+++ b/main.c
@@ -534,7 +534,7 @@ static void describe_location(void) {
                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];
        }
 
@@ -1047,7 +1047,7 @@ static void listobjects(void) {
         *  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]) {
@@ -1229,7 +1229,7 @@ static bool do_move(void) {
 
        /* 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;
@@ -1283,7 +1283,7 @@ static bool do_command(void) {
                        }
 
                        /* 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