MCPcopy Create free account
hub / github.com/DFHack/dfhack / read_animals

Method read_animals

plugins/stockpiles/StockpileSerializer.cpp:1083–1105  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1081}
1082
1083void 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
1107static bool armor_mat_is_allowed(const MaterialInfo& mi) {
1108 return mi.isValid() && mi.material && mi.material->flags.is_set(material_flags::IS_METAL);

Callers

nothing calls this directly

Calls 4

set_flagFunction · 0.85
clearMethod · 0.45
enabledMethod · 0.45

Tested by

no test coverage detected