Core/Items: Classify wands as ranged weapons (fixes wand shooting)

This commit is contained in:
Shauren
2025-05-28 23:49:05 +02:00
parent 58c627bff5
commit bd87381eab
2 changed files with 14 additions and 5 deletions

View File

@@ -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,

View File

@@ -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; }