From: Eric S. Raymond Date: Thu, 27 Jun 2024 23:50:56 +0000 (-0400) Subject: Cease relying on C storage starting zeroed. X-Git-Tag: 1.20~21 X-Git-Url: https://jxself.org/git/?a=commitdiff_plain;h=124e7768b45712a7c2dbd979bda88e2e54fd0ed6;p=open-adventure.git Cease relying on C storage starting zeroed. --- 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);