aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Item/Item.h1
-rw-r--r--src/server/game/Entities/Item/ItemTemplate.h18
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; }