Define operators == and != for ItemStack
authorANAND ︻气デ═一 <ClobberXD@gmail.com>
Sat, 11 May 2019 16:48:27 +0000 (22:18 +0530)
committersfan5 <sfan5@live.de>
Sat, 11 May 2019 16:48:27 +0000 (18:48 +0200)
src/inventory.cpp
src/inventory.h

index 3bc67da1bc1e9279a7d520a4b853b01dea02795d..2335136b12e012a6bca9d11179db5dba23d469cd 100644 (file)
@@ -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;
 }
index 465aa66db346934fb95314765c5b1b2199fc4e68..95a0bb43e7594fe33432c3726ff1b6c2a9b1b0a5 100644 (file)
@@ -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
        */