diff options
author | PolarCookie <sei009@post.uit.no> | 2019-03-23 14:34:37 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2021-11-24 22:42:13 +0100 |
commit | e182a38b014f5538c42432f871e094dc79c2b131 (patch) | |
tree | dcca61e62bcc2268fefabacd316581e6592c9119 /src | |
parent | bc628572fed1949a55ff7c2f2f4489f15008bd8c (diff) |
Core/Item: Item Signature (#23119)
(cherry picked from commit a926a3088d39897fe3ab58239775661449498363)
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 |