diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Item/ItemTemplate.cpp | 9 | ||||
-rw-r--r-- | src/server/game/Entities/Item/ItemTemplate.h | 1 | ||||
-rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 2 |
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 |