| 1081 | } |
| 1082 | |
| 1083 | void StockpileSettingsSerializer::read_animals(color_ostream& out, DeserializeMode mode, const vector<string>& filters) { |
| 1084 | auto & panimals = mSettings->animals; |
| 1085 | read_category<StockpileSettings_AnimalsSet>(out, "animals", mode, |
| 1086 | std::bind(&StockpileSettings::has_animals, mBuffer), |
| 1087 | std::bind(&StockpileSettings::animals, mBuffer), |
| 1088 | mSettings->flags.whole, |
| 1089 | mSettings->flags.mask_animals, |
| 1090 | [&]() { |
| 1091 | panimals.empty_cages = false; |
| 1092 | panimals.empty_traps = false; |
| 1093 | panimals.enabled.clear(); |
| 1094 | }, |
| 1095 | [&](bool all, char val) { |
| 1096 | auto & banimals = mBuffer.animals(); |
| 1097 | |
| 1098 | set_flag(out, "cages", filters, all, val, banimals.empty_cages(), panimals.empty_cages); |
| 1099 | set_flag(out, "traps", filters, all, val, banimals.empty_traps(), panimals.empty_traps); |
| 1100 | |
| 1101 | unserialize_list_creature(out, "", all, val, filters, |
| 1102 | [&](const size_t& idx) -> const string& { return banimals.enabled(idx); }, |
| 1103 | banimals.enabled_size(), panimals.enabled); |
| 1104 | }); |
| 1105 | } |
| 1106 | |
| 1107 | static bool armor_mat_is_allowed(const MaterialInfo& mi) { |
| 1108 | return mi.isValid() && mi.material && mi.material->flags.is_set(material_flags::IS_METAL); |
nothing calls this directly
no test coverage detected