aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Entities/Item/ItemTemplate.cpp9
-rw-r--r--src/server/game/Entities/Item/ItemTemplate.h1
-rw-r--r--src/server/game/Spells/SpellEffects.cpp2
3 files changed, 11 insertions, 1 deletions
diff --git a/src/server/game/Entities/Item/ItemTemplate.cpp b/src/server/game/Entities/Item/ItemTemplate.cpp
index 4e090933434..f53aad39097 100644
--- a/src/server/game/Entities/Item/ItemTemplate.cpp
+++ b/src/server/game/Entities/Item/ItemTemplate.cpp
@@ -23,6 +23,15 @@
#include "Packets/QueryPackets.h"
+bool ItemTemplate::HasSignature() const
+{
+ return GetMaxStackSize() == 1 &&
+ Class != ITEM_CLASS_CONSUMABLE &&
+ Class != ITEM_CLASS_QUEST &&
+ (Flags & ITEM_FLAG_NO_CREATOR) == 0 &&
+ ItemId != 6948; /*Hearthstone*/
+}
+
bool ItemTemplate::CanChangeEquipStateInCombat() const
{
switch (InventoryType)
diff --git a/src/server/game/Entities/Item/ItemTemplate.h b/src/server/game/Entities/Item/ItemTemplate.h
index b11c6583571..37ea2229608 100644
--- a/src/server/game/Entities/Item/ItemTemplate.h
+++ b/src/server/game/Entities/Item/ItemTemplate.h
@@ -712,6 +712,7 @@ struct ItemTemplate
bool IsWeaponVellum() const { return Class == ITEM_CLASS_TRADE_GOODS && SubClass == ITEM_SUBCLASS_WEAPON_ENCHANTMENT; }
bool IsArmorVellum() const { return Class == ITEM_CLASS_TRADE_GOODS && SubClass == ITEM_SUBCLASS_ARMOR_ENCHANTMENT; }
bool IsConjuredConsumable() const { return Class == ITEM_CLASS_CONSUMABLE && (Flags & ITEM_FLAG_CONJURED); }
+ bool HasSignature() const;
void InitializeQueryData();
WorldPacket BuildQueryData(LocaleConstant loc) const;
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index 2abe277191d..cbcd6e95e70 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -1556,7 +1556,7 @@ void Spell::DoCreateItem(uint32 /*i*/, uint32 itemtype)
}
// set the "Crafted by ..." property of the item
- if (pItem->GetTemplate()->Class != ITEM_CLASS_CONSUMABLE && pItem->GetTemplate()->Class != ITEM_CLASS_QUEST && newitemid != 6265 /*Soul Shard*/&& newitemid != 6948 /*Hearthstone*/)
+ if (pItem->GetTemplate()->HasSignature())
pItem->SetGuidValue(ITEM_FIELD_CREATOR, player->GetGUID());
// send info to the client