Cease relying on C storage starting zeroed.

This commit is contained in:
Eric S. Raymond 2024-06-27 19:50:56 -04:00
parent 63e8579f74
commit 124e7768b4

15
init.c
View file

@ -76,13 +76,18 @@ int initialise(void) {
/* Treasure props are initially STATE_NOTFOUND, and are set to /* Treasure props are initially STATE_NOTFOUND, and are set to
* STATE_FOUND the first time they are described. game.tally * STATE_FOUND the first time they are described. game.tally
* keeps track of how many are not yet found, so we know when to * keeps track of how many are not yet found, so we know when to
* close the cave. */ * close the cave.
for (int treasure = 1; treasure <= NOBJECTS; treasure++) { * (ESR) Non-trreasures are set to STATE_FOUND explicity so we
if (objects[treasure].is_treasure) { * 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; ++game.tally;
if (objects[treasure].inventory != 0) { if (objects[object].inventory != NULL) {
PROP_SET_NOT_FOUND(treasure); PROP_SET_NOT_FOUND(object);
} }
} else {
PROP_SET_FOUND(object);
} }
} }
game.conds = setbit(COND_HBASE); game.conds = setbit(COND_HBASE);