X-Git-Url: https://jxself.org/git/?p=open-adventure.git;a=blobdiff_plain;f=saveresume.c;h=e4d9959aeaa59e460f99bbc11fc30fcbedfd2426;hp=8a33c3e992fa8e217825c17f3a5cf9fa54e32fec;hb=aeaa0400cb39846bce3e7abe4566a6c9566e39a4;hpb=98b21323a65a6a80170dfabcfe08ac991f6814e8 diff --git a/saveresume.c b/saveresume.c index 8a33c3e..e4d9959 100644 --- a/saveresume.c +++ b/saveresume.c @@ -186,7 +186,7 @@ bool is_valid(struct game_t valgame) /* Check that properties of objects aren't beyond expected */ for (int obj = 0; obj <= NOBJECTS; obj++) { - if (game.prop[obj] < STATE_NOTFOUND || game.prop[obj] > 1) { + if (valgame.prop[obj] < STATE_NOTFOUND || valgame.prop[obj] > 1) { switch (obj) { case RUG: case DRAGON: @@ -199,18 +199,24 @@ bool is_valid(struct game_t valgame) case EGGS: case VASE: case CHAIN: - if (game.prop[obj] == 2) // There are multiple different states, but it's convenient to clump them together + if (valgame.prop[obj] == 2) // There are multiple different states, but it's convenient to clump them together continue; case BEAR: - if (game.prop[BEAR] == CONTENTED_BEAR || game.prop[BEAR] == BEAR_DEAD) + if (valgame.prop[BEAR] == CONTENTED_BEAR || game.prop[BEAR] == BEAR_DEAD) continue; default: - printf("%i", obj); return false; } } } + /* Check that we have objects at locations */ + for (loc_t loc = LOC_NOWHERE; loc <= NLOCATIONS; loc++) { + if (valgame.atloc[loc] < NO_OBJECT || valgame.atloc[loc] > NLOCATIONS) { + return false; + } + } + return true; }