diff options
| -rwxr-xr-x | src/server/game/Entities/Item/Item.cpp | 8 | ||||
| -rwxr-xr-x | src/server/game/Entities/Item/Item.h | 3 | ||||
| -rwxr-xr-x | src/server/game/Entities/Item/ItemPrototype.h | 31 | ||||
| -rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 6 | ||||
| -rwxr-xr-x | src/server/game/Spells/Spell.cpp | 2 | ||||
| -rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 2 |
6 files changed, 29 insertions, 23 deletions
diff --git a/src/server/game/Entities/Item/Item.cpp b/src/server/game/Entities/Item/Item.cpp index 2b5cb1e359a..12c6861bb47 100755 --- a/src/server/game/Entities/Item/Item.cpp +++ b/src/server/game/Entities/Item/Item.cpp @@ -211,6 +211,10 @@ bool ItemCanGoIntoBag(ItemTemplate const* pProto, ItemTemplate const* pBagProto) if (!(pProto->BagFamily & BAG_FAMILY_MASK_INSCRIPTION_SUPP)) return false; return true; + case ITEM_SUBCLASS_TACKLE_CONTAINER: + if (!(pProto->BagFamily & BAG_FAMILY_MASK_FISHING_SUPP)) + return false; + return true; default: return false; } @@ -854,8 +858,8 @@ bool Item::IsFitToSpellRequirements(SpellInfo const* spellInfo) const if (spellInfo->EquippedItemClass != -1) // -1 == any item class { // Special case - accept vellum for armor/weapon requirements - if ((spellInfo->EquippedItemClass == ITEM_CLASS_ARMOR && proto->IsArmorVellum()) - ||(spellInfo->EquippedItemClass == ITEM_CLASS_WEAPON && proto->IsWeaponVellum())) + if ((spellInfo->EquippedItemClass == ITEM_CLASS_ARMOR || + spellInfo->EquippedItemClass == ITEM_CLASS_WEAPON) && proto->IsVellum()) if (spellInfo->IsAbilityOfSkillType(SKILL_ENCHANTING)) // only for enchanting spells return true; diff --git a/src/server/game/Entities/Item/Item.h b/src/server/game/Entities/Item/Item.h index 5b86d55f170..0ae4ddac31e 100755 --- a/src/server/game/Entities/Item/Item.h +++ b/src/server/game/Entities/Item/Item.h @@ -320,8 +320,7 @@ class Item : public Object bool hasInvolvedQuest(uint32 /*quest_id*/) const { return false; } bool HasStats() const; bool IsPotion() const { return GetTemplate()->IsPotion(); } - bool IsWeaponVellum() const { return GetTemplate()->IsWeaponVellum(); } - bool IsArmorVellum() const { return GetTemplate()->IsArmorVellum(); } + bool IsVellum() const { return GetTemplate()->IsVellum(); } bool IsConjuredConsumable() const { return GetTemplate()->IsConjuredConsumable(); } bool IsRangedWeapon() const { return GetTemplate()->IsRangedWeapon(); } diff --git a/src/server/game/Entities/Item/ItemPrototype.h b/src/server/game/Entities/Item/ItemPrototype.h index 793b8ecc354..317e30b88f6 100755 --- a/src/server/game/Entities/Item/ItemPrototype.h +++ b/src/server/game/Entities/Item/ItemPrototype.h @@ -241,7 +241,8 @@ enum BAG_FAMILY_MASK 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 @@ -250,8 +251,8 @@ enum SocketColor SOCKET_COLOR_RED = 2, SOCKET_COLOR_YELLOW = 4, SOCKET_COLOR_BLUE = 8, - // 16, Hydraulic, not used - SOCKET_COLOR_COGWHEEL = 32 + SOCKET_COLOR_HYDRAULIC = 16, // not used + SOCKET_COLOR_COGWHEEL = 32, }; #define SOCKET_COLOR_ALL (SOCKET_COLOR_META | SOCKET_COLOR_RED | SOCKET_COLOR_YELLOW | SOCKET_COLOR_BLUE | SOCKET_COLOR_COGWHEEL) @@ -445,11 +446,10 @@ enum ItemSubclassTradeGoods ITEM_SUBCLASS_TRADE_GOODS_OTHER = 11, ITEM_SUBCLASS_ENCHANTING = 12, ITEM_SUBCLASS_MATERIAL = 13, - ITEM_SUBCLASS_ITEM_ENCHANTMENT = 14, - ITEM_SUBCLASS_WEAPON_ENCHANTMENT = 15 // OBSOLETE + ITEM_SUBCLASS_ENCHANTMENT = 14, }; -#define MAX_ITEM_SUBCLASS_TRADE_GOODS 16 +#define MAX_ITEM_SUBCLASS_TRADE_GOODS 15 enum ItemSubclassGeneric { @@ -478,10 +478,11 @@ enum ItemSubclassRecipe enum ItemSubclassMoney { - ITEM_SUBCLASS_MONEY = 0 // OBSOLETE + ITEM_SUBCLASS_MONEY = 0, // OBSOLETE + ITEM_SUBCLASS_MONEY_UNK_7 = 7, // OBSOLETE, 1 item (41749) }; -#define MAX_ITEM_SUBCLASS_MONEY 1 +#define MAX_ITEM_SUBCLASS_MONEY 8 enum ItemSubclassQuiver { @@ -495,10 +496,12 @@ enum ItemSubclassQuiver enum ItemSubclassQuest { - ITEM_SUBCLASS_QUEST = 0 + ITEM_SUBCLASS_QUEST = 0, + ITEM_SUBCLASS_QUEST_UNK3 = 3, // 1 item (33604) + ITEM_SUBCLASS_QUEST_UNK8 = 8, // 2 items (37445, 49700) }; -#define MAX_ITEM_SUBCLASS_QUEST 1 +#define MAX_ITEM_SUBCLASS_QUEST 9 enum ItemSubclassKey { @@ -522,10 +525,11 @@ enum ItemSubclassJunk ITEM_SUBCLASS_JUNK_PET = 2, ITEM_SUBCLASS_JUNK_HOLIDAY = 3, ITEM_SUBCLASS_JUNK_OTHER = 4, - ITEM_SUBCLASS_JUNK_MOUNT = 5 + ITEM_SUBCLASS_JUNK_MOUNT = 5, + ITEM_SUBCLASS_JUNK_UNK12 = 12, // 1 item (37677) }; -#define MAX_ITEM_SUBCLASS_JUNK 6 +#define MAX_ITEM_SUBCLASS_JUNK 13 enum ItemSubclassGlyph { @@ -741,8 +745,7 @@ struct ItemTemplate } bool IsPotion() const { return Class == ITEM_CLASS_CONSUMABLE && SubClass == ITEM_SUBCLASS_POTION; } - bool IsWeaponVellum() const { return Class == ITEM_CLASS_TRADE_GOODS && SubClass == ITEM_SUBCLASS_WEAPON_ENCHANTMENT; } - bool IsArmorVellum() const { return Class == ITEM_CLASS_TRADE_GOODS && SubClass == ITEM_SUBCLASS_ITEM_ENCHANTMENT; } + bool IsVellum() const { return Class == ITEM_CLASS_TRADE_GOODS && SubClass == ITEM_SUBCLASS_ENCHANTMENT; } bool IsConjuredConsumable() const { return Class == ITEM_CLASS_CONSUMABLE && (Flags & ITEM_PROTO_FLAG_CONJURED); } bool IsRangedWeapon() const diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index bf5d7f21898..dc3e1b88f39 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -37,7 +37,7 @@ void InitOpcodes() sLog->outError(LOG_FILTER_NETWORKIO, "Tried to override handler of %s with %s (opcode %u)", \ opcodeTable[opcode]->name, #opcode, opcode); \ } \ - else opcodeTable[opcode] = new OpcodeHandler(#opcode, #opcode "_COMPRESSED", status, processing, handler); \ + else opcodeTable[opcode] = new OpcodeHandler(#opcode, #opcode "_COMPRESSED", status, processing, handler); \ } memset(opcodeTable, 0, sizeof(opcodeTable)); @@ -1242,8 +1242,8 @@ void InitOpcodes() DEFINE_OPCODE_HANDLER(SMSG_UPDATE_ACCOUNT_DATA, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); DEFINE_OPCODE_HANDLER(SMSG_UPDATE_ACCOUNT_DATA_COMPLETE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); DEFINE_OPCODE_HANDLER(SMSG_UPDATE_COMBO_POINTS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //DEFINE_OPCODE_HANDLER(SMSG_UPDATE_CURRENCY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //DEFINE_OPCODE_HANDLER(SMSG_UPDATE_CURRENCY_WEEK_LIMIT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + DEFINE_OPCODE_HANDLER(SMSG_UPDATE_CURRENCY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + DEFINE_OPCODE_HANDLER(SMSG_UPDATE_CURRENCY_WEEK_LIMIT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //DEFINE_OPCODE_HANDLER(SMSG_UPDATE_DUNGEON_ENCOUNTER_FOR_LOOT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); DEFINE_OPCODE_HANDLER(SMSG_UPDATE_INSTANCE_ENCOUNTER_UNIT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); DEFINE_OPCODE_HANDLER(SMSG_UPDATE_INSTANCE_OWNERSHIP, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 54d9387d0c1..ed06902178d 100755 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -6031,7 +6031,7 @@ SpellCastResult Spell::CheckItems() } case SPELL_EFFECT_ENCHANT_ITEM: if (m_spellInfo->Effects[i].ItemType && m_targets.GetItemTarget() - && (m_targets.GetItemTarget()->IsWeaponVellum() || m_targets.GetItemTarget()->IsArmorVellum())) + && (m_targets.GetItemTarget()->IsVellum())) { // cannot enchant vellum for other player if (m_targets.GetItemTarget()->GetOwner() != m_caster) diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 058a7b5564c..4751584b650 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -2756,7 +2756,7 @@ void Spell::EffectEnchantItemPerm(SpellEffIndex effIndex) Player* p_caster = (Player*)m_caster; // Handle vellums - if (itemTarget->IsWeaponVellum() || itemTarget->IsArmorVellum()) + if (itemTarget->IsVellum()) { // destroy one vellum from stack uint32 count = 1; |
