| 376 | } |
| 377 | |
| 378 | static bool armorFlagsMatch(BitArray<df::armor_general_flags>& flags, df::job_material_category& category) { |
| 379 | if (flags.is_set(df::armor_general_flags::SOFT) && |
| 380 | (category.bits.cloth || category.bits.yarn || category.bits.silk) |
| 381 | ) |
| 382 | return true; |
| 383 | else if (flags.is_set(df::armor_general_flags::BARRED) && category.bits.bone) |
| 384 | return true; |
| 385 | else if (flags.is_set(df::armor_general_flags::SCALED) && category.bits.shell) |
| 386 | return true; |
| 387 | return flags.is_set(df::armor_general_flags::LEATHER) && category.bits.leather; |
| 388 | } |
| 389 | |
| 390 | static bool validateMaterialCategory(ClothingRequirement& requirement) { |
| 391 | auto itemDef = Items::getSubtypeDef(requirement.itemType, requirement.item_subtype); |
no test coverage detected