Fix value, add check for linked locations

This commit is contained in:
NHOrus 2017-08-24 13:02:51 +03:00
parent 98b21323a6
commit aeaa0400cb

View file

@ -186,7 +186,7 @@ bool is_valid(struct game_t valgame)
/* Check that properties of objects aren't beyond expected */ /* Check that properties of objects aren't beyond expected */
for (int obj = 0; obj <= NOBJECTS; obj++) { 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) { switch (obj) {
case RUG: case RUG:
case DRAGON: case DRAGON:
@ -199,18 +199,24 @@ bool is_valid(struct game_t valgame)
case EGGS: case EGGS:
case VASE: case VASE:
case CHAIN: 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; continue;
case BEAR: 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; continue;
default: default:
printf("%i", obj);
return false; 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; return true;
} }