Fix value, add check for linked locations
This commit is contained in:
parent
98b21323a6
commit
aeaa0400cb
1 changed files with 10 additions and 4 deletions
14
saveresume.c
14
saveresume.c
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue