summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorANAND ︻气デ═一 <ClobberXD@gmail.com>2019-05-11 22:18:27 +0530
committersfan5 <sfan5@live.de>2019-05-11 18:48:27 +0200
commit8e3b63bd28579d8f8cb3e7844600504f12b087a5 (patch)
tree43e963c21839c92cbc3f81e19c899cb055a8cd04
parent72feab081c336d2d71d300131d30e71694b485f3 (diff)
downloadminetest-8e3b63bd28579d8f8cb3e7844600504f12b087a5.tar.gz
minetest-8e3b63bd28579d8f8cb3e7844600504f12b087a5.tar.bz2
minetest-8e3b63bd28579d8f8cb3e7844600504f12b087a5.zip
Define operators == and != for ItemStack
-rw-r--r--src/inventory.cpp9
-rw-r--r--src/inventory.h15
2 files changed, 16 insertions, 8 deletions
diff --git a/src/inventory.cpp b/src/inventory.cpp
index 3bc67da1b..2335136b1 100644
--- a/src/inventory.cpp
+++ b/src/inventory.cpp
@@ -508,14 +508,9 @@ bool InventoryList::operator == (const InventoryList &other) const
return false;
if(m_name != other.m_name)
return false;
- for(u32 i=0; i<m_items.size(); i++)
- {
- ItemStack s1 = m_items[i];
- ItemStack s2 = other.m_items[i];
- if(s1.name != s2.name || s1.wear!= s2.wear || s1.count != s2.count ||
- s1.metadata != s2.metadata)
+ for (u32 i = 0; i < m_items.size(); i++)
+ if (m_items[i] != other.m_items[i])
return false;
- }
return true;
}
diff --git a/src/inventory.h b/src/inventory.h
index 465aa66db..95a0bb43e 100644
--- a/src/inventory.h
+++ b/src/inventory.h
@@ -41,7 +41,7 @@ struct ItemStack
// Serialization
void serialize(std::ostream &os) const;
- // Deserialization. Pass itemdef unless you don't want aliases resolved.
+ // Deserialization. Pass itemdef unless you don't want aliases resolved.
void deSerialize(std::istream &is, IItemDefManager *itemdef = NULL);
void deSerialize(const std::string &s, IItemDefManager *itemdef = NULL);
@@ -161,6 +161,19 @@ struct ItemStack
// Similar to takeItem, but keeps this ItemStack intact.
ItemStack peekItem(u32 peekcount) const;
+ bool operator ==(const ItemStack &s) const
+ {
+ return (this->name == s.name &&
+ this->count == s.count &&
+ this->wear == s.wear &&
+ this->metadata == s.metadata);
+ }
+
+ bool operator !=(const ItemStack &s) const
+ {
+ return !(*this == s);
+ }
+
/*
Properties
*/