From f13df882b6f06978cd9c8c05b29ab3ecd1269fe0 Mon Sep 17 00:00:00 2001 From: Myk Taylor Date: Mon, 20 Mar 2023 15:41:34 -0700 Subject: [PATCH] properly filter when setting gems --- plugins/stockpiles/StockpileSerializer.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/plugins/stockpiles/StockpileSerializer.cpp b/plugins/stockpiles/StockpileSerializer.cpp index 1ce6b65b1..04b046a3e 100644 --- a/plugins/stockpiles/StockpileSerializer.cpp +++ b/plugins/stockpiles/StockpileSerializer.cpp @@ -1866,9 +1866,13 @@ void StockpileSerializer::read_gems(DeserializeMode mode, const std::string& fil if (all) { for (size_t idx = 0; idx < builtin_size; ++idx) { MaterialInfo mi; - mi.decode(0, idx); - set_filter_elem(filter, val, mi.toString(), idx, pgems.rough_other_mats.at(idx)); - set_filter_elem(filter, val, mi.toString(), idx, pgems.cut_other_mats.at(idx)); + mi.decode(idx, -1); + if (gem_other_mat_is_allowed(mi)) + set_filter_elem(filter, val, mi.getToken(), idx, pgems.rough_other_mats.at(idx)); + if (!mi.isValid()) + mi.decode(0, idx); + if (gem_other_mat_is_allowed(mi)) + set_filter_elem(filter, val, mi.getToken(), idx, pgems.cut_other_mats.at(idx)); } return; } else {