diff --git a/code/ryzom/client/src/interface_v3/inventory_manager.cpp b/code/ryzom/client/src/interface_v3/inventory_manager.cpp index 745d211d0..1ab8fe1f3 100644 --- a/code/ryzom/client/src/interface_v3/inventory_manager.cpp +++ b/code/ryzom/client/src/interface_v3/inventory_manager.cpp @@ -2014,12 +2014,38 @@ bool SBagOptions::parse(xmlNodePtr cur, CInterfaceGroup * /* parentGroup */) // *************************************************************************** void SBagOptions::setSearchFilter(const ucstring &s) { + SearchQualityMin = 0; + SearchQualityMax = 999; SearchFilter.clear(); SearchFilterChanged = true; if (!s.empty()) { - splitUCString(toLower(s), ucstring(" "), SearchFilter); + std::vector words; + splitUCString(toLower(s), ucstring(" "), words); + + size_t pos; + for(int i = 0; i pCS->getQuality() || SearchQualityMax < pCS->getQuality()) + return false; + // Armor if ((pIS->Family == ITEMFAMILY::ARMOR) || (pIS->Family == ITEMFAMILY::JEWELRY)) diff --git a/code/ryzom/client/src/interface_v3/inventory_manager.h b/code/ryzom/client/src/interface_v3/inventory_manager.h index 64114963c..d1c5dbe8c 100644 --- a/code/ryzom/client/src/interface_v3/inventory_manager.h +++ b/code/ryzom/client/src/interface_v3/inventory_manager.h @@ -521,6 +521,8 @@ struct SBagOptions bool LastDbFilterTP; bool SearchFilterChanged; + uint16 SearchQualityMin; + uint16 SearchQualityMax; std::vector SearchFilter; // ----------------------- @@ -530,6 +532,8 @@ struct SBagOptions DbFilterArmor = DbFilterWeapon = DbFilterTool = DbFilterMP = DbFilterMissMP = DbFilterTP = NULL; LastDbFilterArmor = LastDbFilterWeapon = LastDbFilterTool = LastDbFilterMP = LastDbFilterMissMP = LastDbFilterTP = false; SearchFilterChanged = false; + SearchQualityMin = 0; + SearchQualityMax = 999; } bool parse (xmlNodePtr cur, CInterfaceGroup *parentGroup);