diff options
author | Shauren <shauren.trinity@gmail.com> | 2025-05-28 23:49:05 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2025-05-28 23:49:05 +0200 |
commit | bd87381eab32f0e136675ade503fe70285590803 (patch) | |
tree | 6c52ea12d6e9f750443ecd823825f55f3a3d8129 | |
parent | 58c627bff5ab9c78116aa02542ffa70f5bec8931 (diff) |
Core/Items: Classify wands as ranged weapons (fixes wand shooting)
-rw-r--r-- | src/server/game/Entities/Item/Item.h | 1 | ||||
-rw-r--r-- | src/server/game/Entities/Item/ItemTemplate.h | 18 |
2 files changed, 14 insertions, 5 deletions
diff --git a/src/server/game/Entities/Item/Item.h b/src/server/game/Entities/Item/Item.h index 527f5e50068..94e8d5bb698 100644 --- a/src/server/game/Entities/Item/Item.h +++ b/src/server/game/Entities/Item/Item.h @@ -328,7 +328,6 @@ class TC_GAME_API Item : public Object bool IsPotion() const { return GetTemplate()->IsPotion(); } bool IsVellum() const { return GetTemplate()->IsVellum(); } bool IsConjuredConsumable() const { return GetTemplate()->IsConjuredConsumable(); } - bool IsRangedWeapon() const { return GetTemplate()->IsRangedWeapon(); } uint32 GetQuality() const { return _bonusData.Quality; } uint32 GetItemLevel(Player const* owner) const; static uint32 GetItemLevel(ItemTemplate const* itemTemplate, BonusData const& bonusData, uint32 level, uint32 fixedLevel, diff --git a/src/server/game/Entities/Item/ItemTemplate.h b/src/server/game/Entities/Item/ItemTemplate.h index c5a7c12ba1e..42b23f04005 100644 --- a/src/server/game/Entities/Item/ItemTemplate.h +++ b/src/server/game/Entities/Item/ItemTemplate.h @@ -910,10 +910,20 @@ struct TC_GAME_API ItemTemplate bool IsRangedWeapon() const { - return IsWeapon() && - (GetSubClass() == ITEM_SUBCLASS_WEAPON_BOW || - GetSubClass() == ITEM_SUBCLASS_WEAPON_GUN || - GetSubClass() == ITEM_SUBCLASS_WEAPON_CROSSBOW); + if (!IsWeapon()) + return false; + + switch (ItemSubclassWeapon(GetSubClass())) + { + case ITEM_SUBCLASS_WEAPON_BOW: + case ITEM_SUBCLASS_WEAPON_GUN: + case ITEM_SUBCLASS_WEAPON_CROSSBOW: + case ITEM_SUBCLASS_WEAPON_WAND: + return true; + default: + break; + } + return false; } inline bool HasFlag(ItemFlags flag) const { return (ExtendedData->Flags[0] & flag) != 0; } |