From 824f328d829ca8b9963802ea994d6b32e55b9bf7 Mon Sep 17 00:00:00 2001 From: LightHardt Date: Sun, 5 Jul 2026 19:06:47 -0500 Subject: [PATCH 1/2] Modified validation check to pass material_category that is specified by player for the armorFlagsMatch function --- plugins/autoclothing.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/plugins/autoclothing.cpp b/plugins/autoclothing.cpp index 01b6290aff..5b7b836e24 100644 --- a/plugins/autoclothing.cpp +++ b/plugins/autoclothing.cpp @@ -65,7 +65,7 @@ enum ConfigValues { struct ClothingRequirement; command_result autoclothing(color_ostream &out, vector ¶meters); static void do_autoclothing(); -static bool validateMaterialCategory(ClothingRequirement& requirement); +static bool validateMaterialCategory(ClothingRequirement& requirement, df::job_material_category& material_category); static std::optional setItem(string name); static void generate_control(color_ostream &out); static bool isAvailableItem(df::item *item); @@ -151,7 +151,7 @@ struct ClothingRequirement { return std::nullopt; } - else if (!validateMaterialCategory(*req)) { + else if (!validateMaterialCategory(*req, material_category)) { out << parameters[idx] << " is not a valid material category for " << parameters[idx+1] << endl; return std::nullopt; } @@ -387,29 +387,29 @@ static bool armorFlagsMatch(BitArray& flags, df::job_ma return flags.is_set(df::armor_general_flags::LEATHER) && category.bits.leather; } -static bool validateMaterialCategory(ClothingRequirement& requirement) { +static bool validateMaterialCategory(ClothingRequirement& requirement, df::job_material_category& material_category) { auto itemDef = Items::getSubtypeDef(requirement.itemType, requirement.item_subtype); switch (requirement.itemType) { case item_type::ARMOR: if (STRICT_VIRTUAL_CAST_VAR(armor, df::itemdef_armorst, itemDef)) - return armorFlagsMatch(armor->props.flags, requirement.material_category); + return armorFlagsMatch(armor->props.flags, material_category); break; case item_type::GLOVES: if (STRICT_VIRTUAL_CAST_VAR(armor, df::itemdef_glovesst, itemDef)) - return armorFlagsMatch(armor->props.flags, requirement.material_category); + return armorFlagsMatch(armor->props.flags, material_category); break; case item_type::SHOES: if (STRICT_VIRTUAL_CAST_VAR(armor, df::itemdef_shoesst, itemDef)) - return armorFlagsMatch(armor->props.flags, requirement.material_category); + return armorFlagsMatch(armor->props.flags, material_category); break; case item_type::HELM: if (STRICT_VIRTUAL_CAST_VAR(armor, df::itemdef_helmst, itemDef)) - return armorFlagsMatch(armor->props.flags, requirement.material_category); + return armorFlagsMatch(armor->props.flags, material_category); break; case item_type::PANTS: if (STRICT_VIRTUAL_CAST_VAR(armor, df::itemdef_pantsst, itemDef)) - return armorFlagsMatch(armor->props.flags, requirement.material_category); + return armorFlagsMatch(armor->props.flags, material_category); break; default: break; From 5d7b91a202f5747bc03b18f0a568658e097b35df Mon Sep 17 00:00:00 2001 From: LightHardt Date: Sun, 5 Jul 2026 19:21:51 -0500 Subject: [PATCH 2/2] update changelog --- docs/changelog.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/changelog.txt b/docs/changelog.txt index 8e299189e7..2d1a6300a8 100644 --- a/docs/changelog.txt +++ b/docs/changelog.txt @@ -33,6 +33,7 @@ Template for new versions: ## New Features ## Fixes +- `autoclothing`: Fix incorrect invalid material type error ## Misc Improvements