diff options
| author | ForesterDev <11771800+ForesterDev@users.noreply.github.com> | 2020-02-01 17:45:58 +0400 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2021-12-21 00:46:13 +0100 |
| commit | 9124fd1f1fafea19b118eb69c6a35f94376fc7e8 (patch) | |
| tree | 821bf6fd1fed9f1157e4f7beb7393a2b1b88f184 /src/server/game/Entities/Player | |
| parent | e882635774fa49b0ffe86ee5b76b5b321c23bb9c (diff) | |
Core/Items: implement some helper methods for easier readability (#24113)
(cherry picked from commit 573ddf4d22564d022e30807c5ba2c6eb1a2c8b2e)
Diffstat (limited to 'src/server/game/Entities/Player')
| -rw-r--r-- | src/server/game/Entities/Player/CollectionMgr.cpp | 6 | ||||
| -rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 54 |
2 files changed, 30 insertions, 30 deletions
diff --git a/src/server/game/Entities/Player/CollectionMgr.cpp b/src/server/game/Entities/Player/CollectionMgr.cpp index 7d9660cc4fc..e8b13bbefdc 100644 --- a/src/server/game/Entities/Player/CollectionMgr.cpp +++ b/src/server/game/Entities/Player/CollectionMgr.cpp @@ -624,7 +624,7 @@ void CollectionMgr::AddItemAppearance(Item* item) if (!CanAddAppearance(itemModifiedAppearance)) return; - if (item->HasItemFlag(ItemFieldFlags(ITEM_FIELD_FLAG_BOP_TRADEABLE | ITEM_FIELD_FLAG_REFUNDABLE))) + if (item->IsBOPTradeable() || item->IsRefundable()) { AddTemporaryAppearance(item->GetGUID(), itemModifiedAppearance); return; @@ -710,7 +710,7 @@ bool CollectionMgr::CanAddAppearance(ItemModifiedAppearanceEntry const* itemModi if (_owner->GetPlayer()->CanUseItem(itemTemplate) != EQUIP_ERR_OK) return false; - if (itemTemplate->GetFlags2() & ITEM_FLAG2_NO_SOURCE_FOR_ITEM_VISUAL || itemTemplate->GetQuality() == ITEM_QUALITY_ARTIFACT) + if (itemTemplate->HasFlag(ITEM_FLAG2_NO_SOURCE_FOR_ITEM_VISUAL) || itemTemplate->GetQuality() == ITEM_QUALITY_ARTIFACT) return false; switch (itemTemplate->GetClass()) @@ -763,7 +763,7 @@ bool CollectionMgr::CanAddAppearance(ItemModifiedAppearanceEntry const* itemModi } if (itemTemplate->GetQuality() < ITEM_QUALITY_UNCOMMON) - if (!(itemTemplate->GetFlags2() & ITEM_FLAG2_IGNORE_QUALITY_FOR_ITEM_VISUAL_SOURCE) || !(itemTemplate->GetFlags3() & ITEM_FLAG3_ACTS_AS_TRANSMOG_HIDDEN_VISUAL_OPTION)) + if (!itemTemplate->HasFlag(ITEM_FLAG2_IGNORE_QUALITY_FOR_ITEM_VISUAL_SOURCE) || !itemTemplate->HasFlag(ITEM_FLAG3_ACTS_AS_TRANSMOG_HIDDEN_VISUAL_OPTION)) return false; if (itemModifiedAppearance->ID < _appearances->size() && _appearances->test(itemModifiedAppearance->ID)) diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index db6cfdb97e8..49a087f09aa 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -7907,7 +7907,7 @@ void Player::CastAllObtainSpells() void Player::ApplyItemObtainSpells(Item* item, bool apply) { - if (item->GetTemplate()->GetFlags() & ITEM_FLAG_LEGACY) + if (item->GetTemplate()->HasFlag(ITEM_FLAG_LEGACY)) return; for (ItemEffectEntry const* effect : item->GetEffects()) @@ -8009,7 +8009,7 @@ bool Player::CheckAttackFitToAuraRequirement(WeaponAttackType attackType, AuraEf void Player::ApplyItemEquipSpell(Item* item, bool apply, bool formChange /*= false*/) { - if (!item || item->GetTemplate()->GetFlags() & ITEM_FLAG_LEGACY) + if (!item || item->GetTemplate()->HasFlag(ITEM_FLAG_LEGACY)) return; for (ItemEffectEntry const* effectData : item->GetEffects()) @@ -8356,7 +8356,7 @@ void Player::CastItemCombatSpell(DamageInfo const& damageInfo, Item* item, ItemT bool canTrigger = (damageInfo.GetHitMask() & (PROC_HIT_NORMAL | PROC_HIT_CRITICAL | PROC_HIT_ABSORB)) != 0; if (canTrigger) { - if (!(item->GetTemplate()->GetFlags() & ITEM_FLAG_LEGACY)) + if (!item->GetTemplate()->HasFlag(ITEM_FLAG_LEGACY)) { for (ItemEffectEntry const* effectData : item->GetEffects()) { @@ -8482,7 +8482,7 @@ void Player::CastItemCombatSpell(DamageInfo const& damageInfo, Item* item, ItemT void Player::CastItemUseSpell(Item* item, SpellCastTargets const& targets, ObjectGuid castCount, int32* misc) { - if (!(item->GetTemplate()->GetFlags() & ITEM_FLAG_LEGACY)) + if (!item->GetTemplate()->HasFlag(ITEM_FLAG_LEGACY)) { // item spells cast at use for (ItemEffectEntry const* effectData : item->GetEffects()) @@ -11580,7 +11580,7 @@ InventoryResult Player::CanEquipItem(uint8 slot, uint16 &dest, Item* pItem, bool } else if (type == INVTYPE_WEAPONOFFHAND) { - if (!CanDualWield() && !(pProto->GetFlags3() & ITEM_FLAG3_ALWAYS_ALLOW_DUAL_WIELD)) + if (!CanDualWield() && !pProto->HasFlag(ITEM_FLAG3_ALWAYS_ALLOW_DUAL_WIELD)) return EQUIP_ERR_2HSKILLNOTFOUND; } else if (type == INVTYPE_2HWEAPON) @@ -11961,13 +11961,13 @@ InventoryResult Player::CanUseItem(ItemTemplate const* proto, bool skipRequiredL if (!proto) return EQUIP_ERR_ITEM_NOT_FOUND; - if (proto->GetFlags2() & ITEM_FLAG2_INTERNAL_ITEM) + if (proto->HasFlag(ITEM_FLAG2_INTERNAL_ITEM)) return EQUIP_ERR_CANT_EQUIP_EVER; - if ((proto->GetFlags2() & ITEM_FLAG2_FACTION_HORDE) && GetTeam() != HORDE) + if (proto->HasFlag(ITEM_FLAG2_FACTION_HORDE) && GetTeam() != HORDE) return EQUIP_ERR_CANT_EQUIP_EVER; - if ((proto->GetFlags2() & ITEM_FLAG2_FACTION_ALLIANCE) && GetTeam() != ALLIANCE) + if (proto->HasFlag(ITEM_FLAG2_FACTION_ALLIANCE) && GetTeam() != ALLIANCE) return EQUIP_ERR_CANT_EQUIP_EVER; if ((proto->GetAllowableClass() & GetClassMask()) == 0 || !proto->GetAllowableRace().HasRace(GetRace())) @@ -12692,7 +12692,7 @@ void Player::MoveItemToInventory(ItemPosCountVec const& dest, Item* pItem, bool // in case trade we already have item in other player inventory pLastItem->SetState(in_characterInventoryDB ? ITEM_CHANGED : ITEM_NEW, this); - if (pLastItem->HasItemFlag(ITEM_FIELD_FLAG_BOP_TRADEABLE)) + if (pLastItem->IsBOPTradeable()) AddTradeableItem(pLastItem); } } @@ -12710,7 +12710,7 @@ void Player::DestroyItem(uint8 bag, uint8 slot, bool update) for (uint8 i = 0; i < MAX_BAG_SIZE; ++i) DestroyItem(slot, i, update); - if (pItem->HasItemFlag(ITEM_FIELD_FLAG_WRAPPED)) + if (pItem->IsWrapped()) { CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GIFT); @@ -12774,7 +12774,7 @@ void Player::DestroyItem(uint8 bag, uint8 slot, bool update) // Delete rolled money / loot from db. // MUST be done before RemoveFromWorld() or GetTemplate() fails - if (pProto->GetFlags() & ITEM_FLAG_HAS_LOOT) + if (pProto->HasFlag(ITEM_FLAG_HAS_LOOT)) sLootItemStorage->RemoveStoredLootForContainer(pItem->GetGUID().GetCounter()); if (IsInWorld() && update) @@ -13741,7 +13741,7 @@ void Player::RemoveItemFromBuyBackSlot(uint32 slot, bool del) if (del) { if (ItemTemplate const* itemTemplate = pItem->GetTemplate()) - if (itemTemplate->GetFlags() & ITEM_FLAG_HAS_LOOT) + if (itemTemplate->HasFlag(ITEM_FLAG_HAS_LOOT)) sLootItemStorage->RemoveStoredLootForContainer(pItem->GetGUID().GetCounter()); pItem->SetState(ITEM_REMOVED, this); @@ -13939,7 +13939,7 @@ void Player::UpdateItemDuration(uint32 time, bool realtimeonly) Item* item = *itr; ++itr; // current element can be erased in UpdateDuration - if (!realtimeonly || item->GetTemplate()->GetFlags() & ITEM_FLAG_REAL_DURATION) + if (!realtimeonly || item->GetTemplate()->HasFlag(ITEM_FLAG_REAL_DURATION)) item->UpdateDuration(this, time); } } @@ -15555,8 +15555,8 @@ bool Player::CanSelectQuestPackageItem(QuestPackageItemEntry const* questPackage if (!rewardProto) return false; - if ((rewardProto->GetFlags2() & ITEM_FLAG2_FACTION_ALLIANCE && GetTeam() != ALLIANCE) || - (rewardProto->GetFlags2() & ITEM_FLAG2_FACTION_HORDE && GetTeam() != HORDE)) + if ((rewardProto->HasFlag(ITEM_FLAG2_FACTION_ALLIANCE) && GetTeam() != ALLIANCE) || + (rewardProto->HasFlag(ITEM_FLAG2_FACTION_HORDE) && GetTeam() != HORDE)) return false; switch (questPackageItem->DisplayType) @@ -19217,13 +19217,13 @@ Item* Player::_LoadItem(CharacterDatabaseTransaction& trans, uint32 zoneId, uint remove = true; } // "Conjured items disappear if you are logged out for more than 15 minutes" - else if (timeDiff > 15 * MINUTE && proto->GetFlags() & ITEM_FLAG_CONJURED) + else if (timeDiff > 15 * MINUTE && proto->HasFlag(ITEM_FLAG_CONJURED)) { TC_LOG_DEBUG("entities.player.loading", "Player::_LoadInventory: player (%s, name: '%s', diff: %u) has conjured item (%s, entry: %u) with expired lifetime (15 minutes). Deleting item.", GetGUID().ToString().c_str(), GetName().c_str(), timeDiff, item->GetGUID().ToString().c_str(), item->GetEntry()); remove = true; } - else if (item->HasItemFlag(ITEM_FIELD_FLAG_REFUNDABLE)) + else if (item->IsRefundable()) { if (item->GetPlayedTime() > (2 * HOUR)) { @@ -19256,7 +19256,7 @@ Item* Player::_LoadItem(CharacterDatabaseTransaction& trans, uint32 zoneId, uint } } } - else if (item->HasItemFlag(ITEM_FIELD_FLAG_BOP_TRADEABLE)) + else if (item->IsBOPTradeable()) { stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_ITEM_BOP_TRADE); stmt->setUInt64(0, item->GetGUID().GetCounter()); @@ -20990,7 +20990,7 @@ void Player::_SaveInventory(CharacterDatabaseTransaction& trans) if (item->GetState() == ITEM_NEW) { if (ItemTemplate const* itemTemplate = item->GetTemplate()) - if (itemTemplate->GetFlags() & ITEM_FLAG_HAS_LOOT) + if (itemTemplate->HasFlag(ITEM_FLAG_HAS_LOOT)) sLootItemStorage->RemoveStoredLootForContainer(item->GetGUID().GetCounter()); continue; @@ -21001,7 +21001,7 @@ void Player::_SaveInventory(CharacterDatabaseTransaction& trans) m_items[i]->FSetState(ITEM_NEW); if (ItemTemplate const* itemTemplate = item->GetTemplate()) - if (itemTemplate->GetFlags() & ITEM_FLAG_HAS_LOOT) + if (itemTemplate->HasFlag(ITEM_FLAG_HAS_LOOT)) sLootItemStorage->RemoveStoredLootForContainer(item->GetGUID().GetCounter()); } @@ -23178,7 +23178,7 @@ inline bool Player::_StoreOrEquipNewItem(uint32 vendorslot, uint32 item, uint8 c if (!bStore) AutoUnequipOffhandIfNeed(); - if (pProto->GetFlags() & ITEM_FLAG_ITEM_PURCHASE_RECORD && crItem->ExtendedCost && pProto->GetMaxStackSize() == 1) + if (pProto->HasFlag(ITEM_FLAG_ITEM_PURCHASE_RECORD) && crItem->ExtendedCost && pProto->GetMaxStackSize() == 1) { it->AddItemFlag(ITEM_FIELD_FLAG_REFUNDABLE); it->SetRefundRecipient(GetGUID()); @@ -23373,7 +23373,7 @@ bool Player::BuyItemFromVendorSlot(ObjectGuid vendorguid, uint32 vendorslot, uin return false; } - if (!IsGameMaster() && ((pProto->GetFlags2() & ITEM_FLAG2_FACTION_HORDE && GetTeam() == ALLIANCE) || (pProto->GetFlags2() & ITEM_FLAG2_FACTION_ALLIANCE && GetTeam() == HORDE))) + if (!IsGameMaster() && ((pProto->HasFlag(ITEM_FLAG2_FACTION_HORDE) && GetTeam() == ALLIANCE) || (pProto->HasFlag(ITEM_FLAG2_FACTION_ALLIANCE) && GetTeam() == HORDE))) return false; Creature* creature = GetNPCIfCanInteractWith(vendorguid, UNIT_NPC_FLAG_VENDOR, UNIT_NPC_FLAG_2_NONE); @@ -24664,7 +24664,7 @@ void Player::SendInstanceResetWarning(uint32 mapid, Difficulty difficulty, uint3 void Player::ApplyEquipCooldown(Item* pItem) { - if (pItem->GetTemplate()->GetFlags() & ITEM_FLAG_NO_EQUIP_COOLDOWN) + if (pItem->GetTemplate()->HasFlag(ITEM_FLAG_NO_EQUIP_COOLDOWN)) return; std::chrono::steady_clock::time_point now = GameTime::GetGameTimeSteadyPoint(); @@ -25472,7 +25472,7 @@ void Player::AutoUnequipOffhandIfNeed(bool force /*= false*/) // unequip offhand weapon if player doesn't have dual wield anymore if (!CanDualWield() - && ((offItem->GetTemplate()->GetInventoryType() == INVTYPE_WEAPONOFFHAND && !(offItem->GetTemplate()->GetFlags3() & ITEM_FLAG3_ALWAYS_ALLOW_DUAL_WIELD)) + && ((offItem->GetTemplate()->GetInventoryType() == INVTYPE_WEAPONOFFHAND && !offItem->GetTemplate()->HasFlag(ITEM_FLAG3_ALWAYS_ALLOW_DUAL_WIELD)) || offItem->GetTemplate()->GetInventoryType() == INVTYPE_WEAPON)) force = true; @@ -26733,7 +26733,7 @@ InventoryResult Player::CanEquipUniqueItem(Item* pItem, uint8 eslot, uint32 limi InventoryResult Player::CanEquipUniqueItem(ItemTemplate const* itemProto, uint8 except_slot, uint32 limit_count) const { // check unique-equipped on item - if (itemProto->GetFlags() & ITEM_FLAG_UNIQUE_EQUIPPABLE) + if (itemProto->HasFlag(ITEM_FLAG_UNIQUE_EQUIPPABLE)) { // there is an equip limit on this item if (HasItemOrGemWithIdEquipped(itemProto->GetId(), 1, except_slot)) @@ -27928,7 +27928,7 @@ void Player::SendRefundInfo(Item* item) // This function call unsets ITEM_FIELD_FLAG_REFUNDABLE if played time is over 2 hours. item->UpdatePlayedTime(this); - if (!item->HasItemFlag(ITEM_FIELD_FLAG_REFUNDABLE)) + if (!item->IsRefundable()) { TC_LOG_DEBUG("entities.player.items", "Item refund: item not refundable!"); return; @@ -28024,7 +28024,7 @@ void Player::SendItemRefundResult(Item* item, ItemExtendedCostEntry const* iece, void Player::RefundItem(Item* item) { - if (!item->HasItemFlag(ITEM_FIELD_FLAG_REFUNDABLE)) + if (!item->IsRefundable()) { TC_LOG_DEBUG("entities.player.items", "Item refund: item not refundable!"); return; |
