aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-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 2835ce6b742..d0e21fc6ecf 100644
--- a/src/server/game/Entities/Item/ItemTemplate.cpp
+++ b/src/server/game/Entities/Item/ItemTemplate.cpp
@@ -51,6 +51,15 @@ char const* ItemTemplate::GetName(LocaleConstant locale) const
return ExtendedData->Display[locale];
}
+bool ItemTemplate::HasSignature() const
+{
+ return GetMaxStackSize() == 1 &&
+ GetClass() != ITEM_CLASS_CONSUMABLE &&
+ GetClass() != ITEM_CLASS_QUEST &&
+ (GetFlags() & ITEM_FLAG_NO_CREATOR) == 0 &&
+ GetId() != 6948; /*Hearthstone*/
+}
+
bool ItemTemplate::CanChangeEquipStateInCombat() const
{
switch (GetInventoryType())
diff --git a/src/server/game/Entities/Item/ItemTemplate.h b/src/server/game/Entities/Item/ItemTemplate.h
index a40a004f9e2..559046dce8f 100644
--- a/src/server/game/Entities/Item/ItemTemplate.h
+++ b/src/server/game/Entities/Item/ItemTemplate.h
@@ -824,6 +824,7 @@ struct TC_GAME_API ItemTemplate
bool IsVellum() const { return GetFlags3() & ITEM_FLAG3_CAN_STORE_ENCHANTS; }
bool IsConjuredConsumable() const { return GetClass() == ITEM_CLASS_CONSUMABLE && (GetFlags() & ITEM_FLAG_CONJURED); }
bool IsCraftingReagent() const { return (GetFlags2() & ITEM_FLAG2_USED_IN_A_TRADESKILL) != 0; }
+ bool HasSignature() const;
bool IsWeapon() const { return GetClass() == ITEM_CLASS_WEAPON; }
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index a2d49c6150c..b5c58b10db9 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -1374,7 +1374,7 @@ void Spell::DoCreateItem(uint32 itemId, ItemContext context /*= ItemContext::NON
}
// set the "Crafted by ..." property of the item
- if (pItem->GetTemplate()->GetClass() != ITEM_CLASS_CONSUMABLE && pItem->GetTemplate()->GetClass() != ITEM_CLASS_QUEST && newitemid != 6265 && newitemid != 6948)
+ if (pItem->GetTemplate()->HasSignature())
pItem->SetCreator(player->GetGUID());
// send info to the client