fix crash on invalid saved seed id

develop
Myk Taylor 2023-09-09 07:49:35 -07:00
parent c37d3e66b2
commit e4edc9be4e
No known key found for this signature in database
2 changed files with 5 additions and 0 deletions

@ -57,6 +57,7 @@ Template for new versions:
## Fixes
- `buildingplan`: make the construction dimensions readout visible again
- `seedwatch`: fix a crash when reading data saved by very very old versions of the plugin
## Misc Improvements
- `sort`: sort by need for training on squad assignment screen

@ -103,6 +103,10 @@ static bool validate_seed_config(color_ostream& out, PersistentDataItem c)
{
int seed_id = get_config_val(c, SEED_CONFIG_ID);
auto plant = binsearch_in_vector(world->raws.plants.all, &df::plant_raw::index, seed_id);
if (!plant) {
WARN(config, out).print("discarded invalid seed id: %d\n", seed_id);
return false;
}
bool valid = (!plant->flags.is_set(df::enums::plant_raw_flags::TREE));
if (!valid) {
DEBUG(config, out).print("invalid configuration for %s discarded\n", plant->id.c_str());