summaryrefslogtreecommitdiff
path: root/library/modules/Materials.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'library/modules/Materials.cpp')
-rw-r--r--library/modules/Materials.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/library/modules/Materials.cpp b/library/modules/Materials.cpp
index 50cf21a9..db9c9c7d 100644
--- a/library/modules/Materials.cpp
+++ b/library/modules/Materials.cpp
@@ -283,6 +283,19 @@ bool MaterialInfo::findCreature(const std::string &token, const std::string &sub
return decode(-1);
}
+bool MaterialInfo::findProduct(df::material *material, const std::string &name)
+{
+ if (!material || name.empty())
+ return decode(-1);
+
+ auto &pids = material->reaction_product.id;
+ for (size_t i = 0; i < pids.size(); i++)
+ if ((*pids[i]) == name)
+ return decode(material->reaction_product.material, i);
+
+ return decode(-1);
+}
+
std::string MaterialInfo::getToken()
{
if (isNone())