diff --git a/src/game/Item.cpp b/src/game/Item.cpp index f0e7ef926..d0a9be332 100644 --- a/src/game/Item.cpp +++ b/src/game/Item.cpp @@ -208,6 +208,9 @@ bool ItemCanGoIntoBag(ItemPrototype const* pProto, ItemPrototype const* pBagProt case ITEM_SUBCLASS_INSCRIPTION_CONTAINER: if (!(pProto->BagFamily & BAG_FAMILY_MASK_INSCRIPTION_SUPP)) return false; + case ITEM_SUBCLASS_FISHING_CONTAINER: + if (!(pProto->BagFamily & BAG_FAMILY_MASK_FISHING_SUPP)) + return false; return true; default: return false; @@ -1025,8 +1028,7 @@ bool Item::IsFitToSpellRequirements(SpellEntry const* spellInfo) const return false; // Other checks do not apply to vellum enchants, so return final result int32 eqItemClass = spellInfo->GetEquippedItemClass(); - return ((proto->SubClass == ITEM_SUBCLASS_WEAPON_ENCHANTMENT && eqItemClass == ITEM_CLASS_WEAPON) || - (proto->SubClass == ITEM_SUBCLASS_ARMOR_ENCHANTMENT && eqItemClass == ITEM_CLASS_ARMOR)); + return proto->SubClass == ITEM_SUBCLASS_VELLUM && (eqItemClass == ITEM_CLASS_WEAPON || eqItemClass == ITEM_CLASS_ARMOR); } } diff --git a/src/game/ItemPrototype.h b/src/game/ItemPrototype.h index 89a06de17..cfeaa4b15 100644 --- a/src/game/ItemPrototype.h +++ b/src/game/ItemPrototype.h @@ -171,7 +171,8 @@ enum BagFamilyMask BAG_FAMILY_MASK_SOULBOUND_EQUIPMENT = 0x00000800, BAG_FAMILY_MASK_VANITY_PETS = 0x00001000, BAG_FAMILY_MASK_CURRENCY_TOKENS = 0x00002000, - BAG_FAMILY_MASK_QUEST_ITEMS = 0x00004000 + BAG_FAMILY_MASK_QUEST_ITEMS = 0x00004000, + BAG_FAMILY_MASK_FISHING_SUPP = 0x00008000, }; enum SocketColor @@ -179,10 +180,12 @@ enum SocketColor SOCKET_COLOR_META = 1, SOCKET_COLOR_RED = 2, SOCKET_COLOR_YELLOW = 4, - SOCKET_COLOR_BLUE = 8 + SOCKET_COLOR_BLUE = 8, + SOCKET_COLOR_HYDRAULIC = 16, // unused + SOCKET_COLOR_COGWHEEL = 32, }; -#define SOCKET_COLOR_ALL (SOCKET_COLOR_META | SOCKET_COLOR_RED | SOCKET_COLOR_YELLOW | SOCKET_COLOR_BLUE) +#define SOCKET_COLOR_ALL (SOCKET_COLOR_META | SOCKET_COLOR_RED | SOCKET_COLOR_YELLOW | SOCKET_COLOR_BLUE | SOCKET_COLOR_COGWHEEL) enum InventoryType { @@ -267,10 +270,11 @@ enum ItemSubclassContainer ITEM_SUBCLASS_GEM_CONTAINER = 5, ITEM_SUBCLASS_MINING_CONTAINER = 6, ITEM_SUBCLASS_LEATHERWORKING_CONTAINER = 7, - ITEM_SUBCLASS_INSCRIPTION_CONTAINER = 8 + ITEM_SUBCLASS_INSCRIPTION_CONTAINER = 8, + ITEM_SUBCLASS_FISHING_CONTAINER = 9, }; -#define MAX_ITEM_SUBCLASS_CONTAINER 9 +#define MAX_ITEM_SUBCLASS_CONTAINER 10 enum ItemSubclassWeapon { @@ -309,10 +313,12 @@ enum ItemSubclassGem ITEM_SUBCLASS_GEM_ORANGE = 5, ITEM_SUBCLASS_GEM_META = 6, ITEM_SUBCLASS_GEM_SIMPLE = 7, - ITEM_SUBCLASS_GEM_PRISMATIC = 8 + ITEM_SUBCLASS_GEM_PRISMATIC = 8, + ITEM_SUBCLASS_GEM_HYDRAULIC = 9, // ABS + ITEM_SUBCLASS_GEM_COGWHEEL = 10, }; -#define MAX_ITEM_SUBCLASS_GEM 9 +#define MAX_ITEM_SUBCLASS_GEM 11 enum ItemSubclassArmor { @@ -326,10 +332,11 @@ enum ItemSubclassArmor ITEM_SUBCLASS_ARMOR_LIBRAM = 7, ITEM_SUBCLASS_ARMOR_IDOL = 8, ITEM_SUBCLASS_ARMOR_TOTEM = 9, - ITEM_SUBCLASS_ARMOR_SIGIL = 10 + ITEM_SUBCLASS_ARMOR_SIGIL = 10, + ITEM_SUBCLASS_ARMOR_RELIC = 11, }; -#define MAX_ITEM_SUBCLASS_ARMOR 11 +#define MAX_ITEM_SUBCLASS_ARMOR 12 enum ItemSubclassReagent { @@ -347,7 +354,7 @@ enum ItemSubclassProjectile ITEM_SUBCLASS_THROWN = 4 // ABS }; -#define MAX_ITEM_SUBCLASS_PROJECTILE 5 +#define MAX_ITEM_SUBCLASS_PROJECTILE 4 enum ItemSubclassTradeGoods { @@ -365,11 +372,10 @@ enum ItemSubclassTradeGoods ITEM_SUBCLASS_TRADE_GOODS_OTHER = 11, ITEM_SUBCLASS_ENCHANTING = 12, ITEM_SUBCLASS_MATERIAL = 13, - ITEM_SUBCLASS_ARMOR_ENCHANTMENT = 14, - ITEM_SUBCLASS_WEAPON_ENCHANTMENT = 15 + ITEM_SUBCLASS_VELLUM = 14, }; -#define MAX_ITEM_SUBCLASS_TRADE_GOODS 16 +#define MAX_ITEM_SUBCLASS_TRADE_GOODS 15 enum ItemSubclassGeneric { @@ -390,17 +396,19 @@ enum ItemSubclassRecipe ITEM_SUBCLASS_FIRST_AID_MANUAL = 7, ITEM_SUBCLASS_ENCHANTING_FORMULA = 8, ITEM_SUBCLASS_FISHING_MANUAL = 9, - ITEM_SUBCLASS_JEWELCRAFTING_RECIPE = 10 + ITEM_SUBCLASS_JEWELCRAFTING_RECIPE = 10, + ITEM_SUBCLASS_INSCRIPTION_RECIPE = 11, }; -#define MAX_ITEM_SUBCLASS_RECIPE 11 +#define MAX_ITEM_SUBCLASS_RECIPE 12 enum ItemSubclassMoney { ITEM_SUBCLASS_MONEY = 0 + // = 7 one test item }; -#define MAX_ITEM_SUBCLASS_MONEY 1 +#define MAX_ITEM_SUBCLASS_MONEY 8 enum ItemSubclassQuiver { @@ -415,9 +423,11 @@ enum ItemSubclassQuiver enum ItemSubclassQuest { ITEM_SUBCLASS_QUEST = 0 + // 3 one unavailable item + // 8 two quest items }; -#define MAX_ITEM_SUBCLASS_QUEST 1 +#define MAX_ITEM_SUBCLASS_QUEST 9 enum ItemSubclassKey { @@ -442,9 +452,10 @@ enum ItemSubclassJunk ITEM_SUBCLASS_JUNK_HOLIDAY = 3, ITEM_SUBCLASS_JUNK_OTHER = 4, ITEM_SUBCLASS_JUNK_MOUNT = 5 + // 12 single item 37677 }; -#define MAX_ITEM_SUBCLASS_JUNK 6 +#define MAX_ITEM_SUBCLASS_JUNK 13 enum ItemSubclassGlyph { @@ -665,7 +676,7 @@ struct ItemPrototype bool IsConjuredConsumable() const { return Class == ITEM_CLASS_CONSUMABLE && (Flags & ITEM_FLAG_CONJURED); } bool IsVellum() const { - return (Class == ITEM_CLASS_TRADE_GOODS && (1 << SubClass) & (1 << ITEM_SUBCLASS_ARMOR_ENCHANTMENT | 1 << ITEM_SUBCLASS_WEAPON_ENCHANTMENT)); + return Class == ITEM_CLASS_TRADE_GOODS && (1 << SubClass) & (1 << ITEM_SUBCLASS_VELLUM); } }; diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 45dfd7fc2..7ffe8f89b 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "0094" + #define REVISION_NR "0095" #endif // __REVISION_NR_H__