From 0db93762cf495b589658e8d07ee9aa6ca608aef6 Mon Sep 17 00:00:00 2001 From: Myk Taylor Date: Wed, 29 Mar 2023 15:09:18 -0700 Subject: [PATCH] bounds check the choice data old forts that persisted data before this attribute existed will have an invalid value --- plugins/buildingplan/defaultitemfilters.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/buildingplan/defaultitemfilters.cpp b/plugins/buildingplan/defaultitemfilters.cpp index 35147579c..069459841 100644 --- a/plugins/buildingplan/defaultitemfilters.cpp +++ b/plugins/buildingplan/defaultitemfilters.cpp @@ -57,6 +57,9 @@ DefaultItemFilters::DefaultItemFilters(color_ostream &out, BuildingTypeKey key, DefaultItemFilters::DefaultItemFilters(color_ostream &out, PersistentDataItem &filter_config, const std::vector &jitems) : key(getKey(filter_config)), filter_config(filter_config) { choose_items = get_config_val(filter_config, FILTER_CONFIG_CHOOSE_ITEMS); + if (choose_items < ItemSelectionChoice::ITEM_SELECTION_CHOICE_FILTER || + choose_items > ItemSelectionChoice::ITEM_SELECTION_CHOICE_AUTOMATERIAL) + choose_items = ItemSelectionChoice::ITEM_SELECTION_CHOICE_FILTER; auto &serialized = filter_config.val(); DEBUG(status,out).print("deserializing default item filters for key %d,%d,%d: %s\n", std::get<0>(key), std::get<1>(key), std::get<2>(key), serialized.c_str());