From 124e7768b45712a7c2dbd979bda88e2e54fd0ed6 Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" Date: Thu, 27 Jun 2024 19:50:56 -0400 Subject: [PATCH] Cease relying on C storage starting zeroed. --- init.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/init.c b/init.c index e413fff..2fffc14 100644 --- a/init.c +++ b/init.c @@ -76,13 +76,18 @@ int initialise(void) { /* Treasure props are initially STATE_NOTFOUND, and are set to * STATE_FOUND the first time they are described. game.tally * keeps track of how many are not yet found, so we know when to - * close the cave. */ - for (int treasure = 1; treasure <= NOBJECTS; treasure++) { - if (objects[treasure].is_treasure) { + * close the cave. + * (ESR) Non-trreasures are set to STATE_FOUND explicity so we + * don't rely on the value of uninitialized storage. This is to + * make translation to future languages easier. */ + for (int object = 1; object <= NOBJECTS; object++) { + if (objects[object].is_treasure) { ++game.tally; - if (objects[treasure].inventory != 0) { - PROP_SET_NOT_FOUND(treasure); + if (objects[object].inventory != NULL) { + PROP_SET_NOT_FOUND(object); } + } else { + PROP_SET_FOUND(object); } } game.conds = setbit(COND_HBASE); -- 2.31.1