From 4b17c3ac1a3e34e22e53ac5db247fb32c5a49c0e Mon Sep 17 00:00:00 2001 From: "madmaxoft@gmail.com" Date: Tue, 4 Jun 2013 11:59:20 +0000 Subject: Fixed cItem::IsStackableWith() git-svn-id: http://mc-server.googlecode.com/svn/trunk@1547 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/Enchantments.cpp | 9 +++++++++ source/Enchantments.h | 3 +++ source/Item.cpp | 9 ++++++++- 3 files changed, 20 insertions(+), 1 deletion(-) (limited to 'source') diff --git a/source/Enchantments.cpp b/source/Enchantments.cpp index 57079b734..08a24d8f3 100644 --- a/source/Enchantments.cpp +++ b/source/Enchantments.cpp @@ -203,6 +203,15 @@ bool cEnchantments::operator ==(const cEnchantments & a_Other) const +bool cEnchantments::operator !=(const cEnchantments & a_Other) const +{ + return m_Enchantments != a_Other.m_Enchantments; +} + + + + + void cEnchantments::WriteToNBTCompound(cFastNBTWriter & a_Writer, const AString & a_ListTagName) const { // Write the enchantments into the specified NBT writer diff --git a/source/Enchantments.h b/source/Enchantments.h index 0b720c4e1..30c2fe7b7 100644 --- a/source/Enchantments.h +++ b/source/Enchantments.h @@ -90,6 +90,9 @@ public: /// Returns true if a_Other contains exactly the same enchantments and levels bool operator ==(const cEnchantments & a_Other) const; + /// Returns true if a_Other doesn't contain exactly the same enchantments and levels + bool operator !=(const cEnchantments & a_Other) const; + // tolua_end /// Writes the enchantments into the specified NBT writer; begins with the LIST tag of the specified name ("ench" or "StoredEnchantments") diff --git a/source/Item.cpp b/source/Item.cpp index 569d04980..fce4a431b 100644 --- a/source/Item.cpp +++ b/source/Item.cpp @@ -81,8 +81,15 @@ bool cItem::IsStackableWith(const cItem & a_OtherStack) const { return false; } + if (a_OtherStack.m_ItemDamage != m_ItemDamage) + { + return false; + } + if (a_OtherStack.m_Enchantments != m_Enchantments) + { + return false; + } - // TODO: match enchantments etc. return true; } -- cgit v1.2.3