More nontrivial macro abstraction of state checks.
authorEric S. Raymond <esr@thyrsus.com>
Sun, 9 Apr 2023 00:20:36 +0000 (20:20 -0400)
committerEric S. Raymond <esr@thyrsus.com>
Sun, 9 Apr 2023 00:32:04 +0000 (20:32 -0400)
game.prop < 0 becomes an alternation of macros.

main.c

diff --git a/main.c b/main.c
index 4b6165e4e5acf81fc1f27bb41a0aad0b7f897cbf..196a4ed571c9524ba6b36610f281131ebcdd1e65 100644 (file)
--- a/main.c
+++ b/main.c
@@ -1098,10 +1098,10 @@ static bool do_command(void)
                  *  game.prop < 0 and stash them.  This way objects won't be
                  *  described until they've been picked up and put down
                  *  separate from their respective piles. */
-                if (game.objects[OYSTER].prop < 0 && TOTING(OYSTER))
+                if ((PROP_IS_NOTFOUND(OYSTER) || PROP_IS_STASHED(OYSTER)) && TOTING(OYSTER))
                     pspeak(OYSTER, look, true, 1);
                 for (size_t i = 1; i <= NOBJECTS; i++) {
-                    if (TOTING(i) && game.objects[i].prop < 0)
+                    if (TOTING(i) && (PROP_IS_NOTFOUND(i) || PROP_IS_STASHED(i)))
                         game.objects[i].prop = PROP_STASHED(i);
                 }
             }