return false;
}
+ /* Check that properties of objects aren't beyond expected */
+ for (int obj = 0; obj <= NOBJECTS; obj++) {
+ if (valgame.prop[obj] < STATE_NOTFOUND || valgame.prop[obj] > 1) {
+ switch (obj) {
+ case RUG:
+ case DRAGON:
+ case BIRD:
+ case BOTTLE:
+ case PLANT:
+ case PLANT2:
+ case TROLL:
+ case URN:
+ case EGGS:
+ case VASE:
+ case CHAIN:
+ if (valgame.prop[obj] == 2) // There are multiple different states, but it's convenient to clump them together
+ continue;
+ case BEAR:
+ if (valgame.prop[BEAR] == CONTENTED_BEAR || game.prop[BEAR] == BEAR_DEAD)
+ continue;
+ default:
+ 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;
}