[0095] Updated item classes and subclasses.

Closes #13, #14

Signed-off-by: Yaki Khadafi <ElSolDolLo@gmail.com>
This commit is contained in:
Yaki Khadafi 2012-08-15 13:26:45 +03:00 committed by Antz
parent 59c9d07d70
commit ec1c1fba2d
3 changed files with 35 additions and 22 deletions

View file

@ -208,6 +208,9 @@ bool ItemCanGoIntoBag(ItemPrototype const* pProto, ItemPrototype const* pBagProt
case ITEM_SUBCLASS_INSCRIPTION_CONTAINER: case ITEM_SUBCLASS_INSCRIPTION_CONTAINER:
if (!(pProto->BagFamily & BAG_FAMILY_MASK_INSCRIPTION_SUPP)) if (!(pProto->BagFamily & BAG_FAMILY_MASK_INSCRIPTION_SUPP))
return false; return false;
case ITEM_SUBCLASS_FISHING_CONTAINER:
if (!(pProto->BagFamily & BAG_FAMILY_MASK_FISHING_SUPP))
return false;
return true; return true;
default: default:
return false; return false;
@ -1025,8 +1028,7 @@ bool Item::IsFitToSpellRequirements(SpellEntry const* spellInfo) const
return false; return false;
// Other checks do not apply to vellum enchants, so return final result // Other checks do not apply to vellum enchants, so return final result
int32 eqItemClass = spellInfo->GetEquippedItemClass(); int32 eqItemClass = spellInfo->GetEquippedItemClass();
return ((proto->SubClass == ITEM_SUBCLASS_WEAPON_ENCHANTMENT && eqItemClass == ITEM_CLASS_WEAPON) || return proto->SubClass == ITEM_SUBCLASS_VELLUM && (eqItemClass == ITEM_CLASS_WEAPON || eqItemClass == ITEM_CLASS_ARMOR);
(proto->SubClass == ITEM_SUBCLASS_ARMOR_ENCHANTMENT && eqItemClass == ITEM_CLASS_ARMOR));
} }
} }

View file

@ -171,7 +171,8 @@ enum BagFamilyMask
BAG_FAMILY_MASK_SOULBOUND_EQUIPMENT = 0x00000800, BAG_FAMILY_MASK_SOULBOUND_EQUIPMENT = 0x00000800,
BAG_FAMILY_MASK_VANITY_PETS = 0x00001000, BAG_FAMILY_MASK_VANITY_PETS = 0x00001000,
BAG_FAMILY_MASK_CURRENCY_TOKENS = 0x00002000, 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 enum SocketColor
@ -179,10 +180,12 @@ enum SocketColor
SOCKET_COLOR_META = 1, SOCKET_COLOR_META = 1,
SOCKET_COLOR_RED = 2, SOCKET_COLOR_RED = 2,
SOCKET_COLOR_YELLOW = 4, 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 enum InventoryType
{ {
@ -267,10 +270,11 @@ enum ItemSubclassContainer
ITEM_SUBCLASS_GEM_CONTAINER = 5, ITEM_SUBCLASS_GEM_CONTAINER = 5,
ITEM_SUBCLASS_MINING_CONTAINER = 6, ITEM_SUBCLASS_MINING_CONTAINER = 6,
ITEM_SUBCLASS_LEATHERWORKING_CONTAINER = 7, 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 enum ItemSubclassWeapon
{ {
@ -309,10 +313,12 @@ enum ItemSubclassGem
ITEM_SUBCLASS_GEM_ORANGE = 5, ITEM_SUBCLASS_GEM_ORANGE = 5,
ITEM_SUBCLASS_GEM_META = 6, ITEM_SUBCLASS_GEM_META = 6,
ITEM_SUBCLASS_GEM_SIMPLE = 7, 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 enum ItemSubclassArmor
{ {
@ -326,10 +332,11 @@ enum ItemSubclassArmor
ITEM_SUBCLASS_ARMOR_LIBRAM = 7, ITEM_SUBCLASS_ARMOR_LIBRAM = 7,
ITEM_SUBCLASS_ARMOR_IDOL = 8, ITEM_SUBCLASS_ARMOR_IDOL = 8,
ITEM_SUBCLASS_ARMOR_TOTEM = 9, 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 enum ItemSubclassReagent
{ {
@ -347,7 +354,7 @@ enum ItemSubclassProjectile
ITEM_SUBCLASS_THROWN = 4 // ABS ITEM_SUBCLASS_THROWN = 4 // ABS
}; };
#define MAX_ITEM_SUBCLASS_PROJECTILE 5 #define MAX_ITEM_SUBCLASS_PROJECTILE 4
enum ItemSubclassTradeGoods enum ItemSubclassTradeGoods
{ {
@ -365,11 +372,10 @@ enum ItemSubclassTradeGoods
ITEM_SUBCLASS_TRADE_GOODS_OTHER = 11, ITEM_SUBCLASS_TRADE_GOODS_OTHER = 11,
ITEM_SUBCLASS_ENCHANTING = 12, ITEM_SUBCLASS_ENCHANTING = 12,
ITEM_SUBCLASS_MATERIAL = 13, ITEM_SUBCLASS_MATERIAL = 13,
ITEM_SUBCLASS_ARMOR_ENCHANTMENT = 14, ITEM_SUBCLASS_VELLUM = 14,
ITEM_SUBCLASS_WEAPON_ENCHANTMENT = 15
}; };
#define MAX_ITEM_SUBCLASS_TRADE_GOODS 16 #define MAX_ITEM_SUBCLASS_TRADE_GOODS 15
enum ItemSubclassGeneric enum ItemSubclassGeneric
{ {
@ -390,17 +396,19 @@ enum ItemSubclassRecipe
ITEM_SUBCLASS_FIRST_AID_MANUAL = 7, ITEM_SUBCLASS_FIRST_AID_MANUAL = 7,
ITEM_SUBCLASS_ENCHANTING_FORMULA = 8, ITEM_SUBCLASS_ENCHANTING_FORMULA = 8,
ITEM_SUBCLASS_FISHING_MANUAL = 9, 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 enum ItemSubclassMoney
{ {
ITEM_SUBCLASS_MONEY = 0 ITEM_SUBCLASS_MONEY = 0
// = 7 one test item
}; };
#define MAX_ITEM_SUBCLASS_MONEY 1 #define MAX_ITEM_SUBCLASS_MONEY 8
enum ItemSubclassQuiver enum ItemSubclassQuiver
{ {
@ -415,9 +423,11 @@ enum ItemSubclassQuiver
enum ItemSubclassQuest enum ItemSubclassQuest
{ {
ITEM_SUBCLASS_QUEST = 0 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 enum ItemSubclassKey
{ {
@ -442,9 +452,10 @@ enum ItemSubclassJunk
ITEM_SUBCLASS_JUNK_HOLIDAY = 3, ITEM_SUBCLASS_JUNK_HOLIDAY = 3,
ITEM_SUBCLASS_JUNK_OTHER = 4, ITEM_SUBCLASS_JUNK_OTHER = 4,
ITEM_SUBCLASS_JUNK_MOUNT = 5 ITEM_SUBCLASS_JUNK_MOUNT = 5
// 12 single item 37677
}; };
#define MAX_ITEM_SUBCLASS_JUNK 6 #define MAX_ITEM_SUBCLASS_JUNK 13
enum ItemSubclassGlyph enum ItemSubclassGlyph
{ {
@ -665,7 +676,7 @@ struct ItemPrototype
bool IsConjuredConsumable() const { return Class == ITEM_CLASS_CONSUMABLE && (Flags & ITEM_FLAG_CONJURED); } bool IsConjuredConsumable() const { return Class == ITEM_CLASS_CONSUMABLE && (Flags & ITEM_FLAG_CONJURED); }
bool IsVellum() const 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);
} }
}; };

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__ #ifndef __REVISION_NR_H__
#define __REVISION_NR_H__ #define __REVISION_NR_H__
#define REVISION_NR "0094" #define REVISION_NR "0095"
#endif // __REVISION_NR_H__ #endif // __REVISION_NR_H__