From a246b5a342e8be23207a0f7302d3221e82ef3094 Mon Sep 17 00:00:00 2001 From: Ghaster Date: Thu, 30 Jan 2020 17:06:37 +0100 Subject: [PATCH] Core/Item: cleanup some enums (#28) --- .../AuctionHouseBot/AuctionHouseBotSeller.cpp | 10 +++--- src/server/game/Entities/Item/Item.cpp | 4 +-- src/server/game/Entities/Item/ItemTemplate.h | 15 ++++---- src/server/game/Entities/Player/Player.cpp | 34 +++++++++---------- src/server/game/Globals/ObjectMgr.cpp | 2 +- src/server/game/Handlers/ItemHandler.cpp | 4 +-- src/server/game/Handlers/SpellHandler.cpp | 4 +-- 7 files changed, 36 insertions(+), 37 deletions(-) diff --git a/src/server/game/AuctionHouseBot/AuctionHouseBotSeller.cpp b/src/server/game/AuctionHouseBot/AuctionHouseBotSeller.cpp index e8df11a88d..59f561502b 100644 --- a/src/server/game/AuctionHouseBot/AuctionHouseBotSeller.cpp +++ b/src/server/game/AuctionHouseBot/AuctionHouseBotSeller.cpp @@ -146,23 +146,23 @@ bool AuctionBotSeller::Initialize() // bounding filters switch (prototype->Bonding) { - case NO_BIND: + case BIND_NONE: if (!sAuctionBotConfig->GetConfig(CONFIG_AHBOT_BIND_NO)) continue; break; - case BIND_WHEN_PICKED_UP: + case BIND_ON_ACQUIRE: if (!sAuctionBotConfig->GetConfig(CONFIG_AHBOT_BIND_PICKUP)) continue; break; - case BIND_WHEN_EQUIPED: + case BIND_ON_EQUIP: if (!sAuctionBotConfig->GetConfig(CONFIG_AHBOT_BIND_EQUIP)) continue; break; - case BIND_WHEN_USE: + case BIND_ON_USE: if (!sAuctionBotConfig->GetConfig(CONFIG_AHBOT_BIND_USE)) continue; break; - case BIND_QUEST_ITEM: + case BIND_QUEST: if (!sAuctionBotConfig->GetConfig(CONFIG_AHBOT_BIND_QUEST)) continue; break; diff --git a/src/server/game/Entities/Item/Item.cpp b/src/server/game/Entities/Item/Item.cpp index d25a3c2553..4284f64261 100644 --- a/src/server/game/Entities/Item/Item.cpp +++ b/src/server/game/Entities/Item/Item.cpp @@ -451,8 +451,8 @@ bool Item::LoadFromDB(ObjectGuid::LowType guid, ObjectGuid owner_guid, Field* fi SetSpellCharges(i, atoi(tokens[i])); SetUInt32Value(ITEM_FIELD_FLAGS, fields[5].GetUInt32()); - // Remove bind flag for items vs NO_BIND set - if (IsSoulBound() && proto->Bonding == NO_BIND) + // Remove bind flag for items vs BIND_NONE set + if (IsSoulBound() && proto->Bonding == BIND_NONE) { ApplyModFlag(ITEM_FIELD_FLAGS, ITEM_FIELD_FLAG_SOULBOUND, false); need_save = true; diff --git a/src/server/game/Entities/Item/ItemTemplate.h b/src/server/game/Entities/Item/ItemTemplate.h index 26a5270450..b253b490ba 100644 --- a/src/server/game/Entities/Item/ItemTemplate.h +++ b/src/server/game/Entities/Item/ItemTemplate.h @@ -98,15 +98,14 @@ enum ItemSpelltriggerType enum ItemBondingType { - NO_BIND = 0, - BIND_WHEN_PICKED_UP = 1, - BIND_WHEN_EQUIPED = 2, - BIND_WHEN_USE = 3, - BIND_QUEST_ITEM = 4, - BIND_QUEST_ITEM1 = 5 // not used in game + BIND_NONE = 0, + BIND_ON_ACQUIRE = 1, + BIND_ON_EQUIP = 2, + BIND_ON_USE = 3, + BIND_QUEST = 4, }; -#define MAX_BIND_TYPE 6 +#define MAX_BIND_TYPE 5 /* /// @todo: Requiring actual cases in which using (an) item isn't allowed while shapeshifted. Else, this flag would need an implementation. ITEM_FLAG_USE_WHEN_SHAPESHIFTED = 0x00800000, // Item can be used in shapeshift forms */ @@ -224,7 +223,7 @@ enum ItemFlags2 : uint32 enum ItemFlagsCustom { - ITEM_FLAGS_CU_DURATION_REAL_TIME = 0x0001, // Item duration will tick even if player is offline + ITEM_FLAGS_CU_UNUSED = 0x0001, ITEM_FLAGS_CU_IGNORE_QUEST_STATUS = 0x0002, // No quest status will be checked when this item drops ITEM_FLAGS_CU_FOLLOW_LOOT_RULES = 0x0004 // Item will always follow group/master/need before greed looting rules }; diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index e3fafd1217..bb9aea5a05 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -10869,7 +10869,7 @@ InventoryResult Player::CanStoreItem(uint8 bag, uint8 slot, ItemPosCountVec &des uint8 searchSlotStart = INVENTORY_SLOT_ITEM_START; // new bags can be directly equipped if (!pItem && pProto->Class == ITEM_CLASS_CONTAINER && pProto->SubClass == ITEM_SUBCLASS_CONTAINER && - (pProto->Bonding == NO_BIND || pProto->Bonding == BIND_WHEN_PICKED_UP)) + (pProto->Bonding == BIND_NONE || pProto->Bonding == BIND_ON_ACQUIRE)) searchSlotStart = INVENTORY_SLOT_BAG_START; res = CanStoreItem_InInventorySlots(searchSlotStart, INVENTORY_SLOT_ITEM_END, dest, pProto, count, false, pItem, bag, slot); @@ -11759,9 +11759,9 @@ Item* Player::_StoreItem(uint16 pos, Item* pItem, uint32 count, bool clone, bool if (!pItem) return nullptr; - if (pItem->GetTemplate()->Bonding == BIND_WHEN_PICKED_UP || - pItem->GetTemplate()->Bonding == BIND_QUEST_ITEM || - (pItem->GetTemplate()->Bonding == BIND_WHEN_EQUIPED && IsBagPos(pos))) + if (pItem->GetTemplate()->Bonding == BIND_ON_ACQUIRE || + pItem->GetTemplate()->Bonding == BIND_QUEST || + (pItem->GetTemplate()->Bonding == BIND_ON_EQUIP && IsBagPos(pos))) pItem->SetBinding(true); Bag* pBag = (bag == INVENTORY_SLOT_BAG_0) ? nullptr : GetBagByPos(bag); @@ -11798,9 +11798,9 @@ Item* Player::_StoreItem(uint16 pos, Item* pItem, uint32 count, bool clone, bool } else { - if (pItem2->GetTemplate()->Bonding == BIND_WHEN_PICKED_UP || - pItem2->GetTemplate()->Bonding == BIND_QUEST_ITEM || - (pItem2->GetTemplate()->Bonding == BIND_WHEN_EQUIPED && IsBagPos(pos))) + if (pItem2->GetTemplate()->Bonding == BIND_ON_ACQUIRE || + pItem2->GetTemplate()->Bonding == BIND_QUEST || + (pItem2->GetTemplate()->Bonding == BIND_ON_EQUIP && IsBagPos(pos))) pItem2->SetBinding(true); pItem2->SetCount(pItem2->GetCount() + count); @@ -11998,8 +11998,8 @@ void Player::VisualizeItem(uint8 slot, Item* pItem) if (!pItem) return; - // check also BIND_WHEN_PICKED_UP and BIND_QUEST_ITEM for .additem or .additemset case by GM (not binded at adding to inventory) - if (pItem->GetTemplate()->Bonding == BIND_WHEN_EQUIPED || pItem->GetTemplate()->Bonding == BIND_WHEN_PICKED_UP || pItem->GetTemplate()->Bonding == BIND_QUEST_ITEM) + // check also BIND_ON_ACQUIRE and BIND_QUEST for .additem or .additemset case by GM (not binded at adding to inventory) + if (pItem->GetTemplate()->Bonding == BIND_ON_EQUIP || pItem->GetTemplate()->Bonding == BIND_ON_ACQUIRE || pItem->GetTemplate()->Bonding == BIND_QUEST) pItem->SetBinding(true); TC_LOG_DEBUG("entities.player.items", "Player::SetVisibleItemSlot: Player '%s' (%s), Slot: %u, Item: %u", @@ -13219,7 +13219,7 @@ void Player::UpdateItemDuration(uint32 time, bool realtimeonly) Item* item = *itr; ++itr; // current element can be erased in UpdateDuration - if (!realtimeonly || item->GetTemplate()->FlagsCu & ITEM_FLAGS_CU_DURATION_REAL_TIME) + if (!realtimeonly || item->GetTemplate()->Flags & ITEM_FLAG_REAL_DURATION) item->UpdateDuration(this, time); } } @@ -15085,7 +15085,7 @@ void Player::RewardQuest(Quest const* quest, uint32 reward, Object* questGiver, { if (ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(quest->RequiredItemId[i])) { - if (quest->RequiredItemCount[i] > 0 && itemTemplate->Bonding == BIND_QUEST_ITEM && !quest->IsRepeatable() && !HasQuestForItem(quest->RequiredItemId[i], quest_id, true)) + if (quest->RequiredItemCount[i] > 0 && itemTemplate->Bonding == BIND_QUEST && !quest->IsRepeatable() && !HasQuestForItem(quest->RequiredItemId[i], quest_id, true)) DestroyItemCount(quest->RequiredItemId[i], 9999, true); else DestroyItemCount(quest->RequiredItemId[i], quest->RequiredItemCount[i], true); @@ -15099,7 +15099,7 @@ void Player::RewardQuest(Quest const* quest, uint32 reward, Object* questGiver, { if (ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(quest->ItemDrop[i])) { - if (quest->ItemDropQuantity[i] > 0 && itemTemplate->Bonding == BIND_QUEST_ITEM && !quest->IsRepeatable() && !HasQuestForItem(quest->ItemDrop[i], quest_id)) + if (quest->ItemDropQuantity[i] > 0 && itemTemplate->Bonding == BIND_QUEST && !quest->IsRepeatable() && !HasQuestForItem(quest->ItemDrop[i], quest_id)) DestroyItemCount(quest->ItemDrop[i], 9999, true); else DestroyItemCount(quest->ItemDrop[i], quest->ItemDropQuantity[i], true); @@ -15344,12 +15344,12 @@ void Player::FailQuest(uint32 questId) // Destroy quest items on quest failure. for (uint8 i = 0; i < QUEST_ITEM_OBJECTIVES_COUNT; ++i) if (ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(quest->RequiredItemId[i])) - if (quest->RequiredItemCount[i] > 0 && itemTemplate->Bonding == BIND_QUEST_ITEM) + if (quest->RequiredItemCount[i] > 0 && itemTemplate->Bonding == BIND_QUEST) DestroyItemCount(quest->RequiredItemId[i], 9999, true); for (uint8 i = 0; i < QUEST_SOURCE_ITEM_IDS_COUNT; ++i) if (ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(quest->ItemDrop[i])) - if (quest->ItemDropQuantity[i] > 0 && itemTemplate->Bonding == BIND_QUEST_ITEM) + if (quest->ItemDropQuantity[i] > 0 && itemTemplate->Bonding == BIND_QUEST) DestroyItemCount(quest->ItemDrop[i], 9999, true); } } @@ -15361,12 +15361,12 @@ void Player::AbandonQuest(uint32 questId) // Destroy quest items on quest abandon. for (uint8 i = 0; i < QUEST_ITEM_OBJECTIVES_COUNT; ++i) if (ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(quest->RequiredItemId[i])) - if (quest->RequiredItemCount[i] > 0 && itemTemplate->Bonding == BIND_QUEST_ITEM) + if (quest->RequiredItemCount[i] > 0 && itemTemplate->Bonding == BIND_QUEST) DestroyItemCount(quest->RequiredItemId[i], 9999, true); for (uint8 i = 0; i < QUEST_SOURCE_ITEM_IDS_COUNT; ++i) if (ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(quest->ItemDrop[i])) - if (quest->ItemDropQuantity[i] > 0 && itemTemplate->Bonding == BIND_QUEST_ITEM) + if (quest->ItemDropQuantity[i] > 0 && itemTemplate->Bonding == BIND_QUEST) DestroyItemCount(quest->ItemDrop[i], 9999, true); } } @@ -22466,7 +22466,7 @@ bool Player::BuyItemFromVendorSlot(ObjectGuid vendorguid, uint32 vendorslot, uin return false; } - if (!(pProto->AllowableClass & getClassMask()) && pProto->Bonding == BIND_WHEN_PICKED_UP && !IsGameMaster()) + if (!(pProto->AllowableClass & getClassMask()) && pProto->Bonding == BIND_ON_ACQUIRE && !IsGameMaster()) { SendBuyError(BUY_ERR_CANT_FIND_ITEM, nullptr, item, 0); return false; diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 1b1b2f1787..e06d6852e0 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -2849,7 +2849,7 @@ void FillDisenchantFields(uint32* disenchantID, uint32* requiredDisenchantSkill, *disenchantID = 0; *(int32*)requiredDisenchantSkill = -1; if ((itemTemplate.Flags & (ITEM_FLAG_CONJURED | ITEM_FLAG_NO_DISENCHANT)) || - itemTemplate.Bonding == BIND_QUEST_ITEM || itemTemplate.Area || itemTemplate.Map || + itemTemplate.Bonding == BIND_QUEST || itemTemplate.Area || itemTemplate.Map || itemTemplate.Stackable > 1 || itemTemplate.Quality < ITEM_QUALITY_UNCOMMON || itemTemplate.Quality > ITEM_QUALITY_EPIC || !(itemTemplate.Class == ITEM_CLASS_ARMOR || itemTemplate.Class == ITEM_CLASS_WEAPON) || diff --git a/src/server/game/Handlers/ItemHandler.cpp b/src/server/game/Handlers/ItemHandler.cpp index bc9a8aee79..9edbfd72f5 100644 --- a/src/server/game/Handlers/ItemHandler.cpp +++ b/src/server/game/Handlers/ItemHandler.cpp @@ -642,7 +642,7 @@ void WorldSession::SendListInventory(ObjectGuid vendorGuid) if (!_player->IsGameMaster()) // ignore conditions if GM on { // Respect allowed class - if (!(itemTemplate->AllowableClass & _player->getClassMask()) && itemTemplate->Bonding == BIND_WHEN_PICKED_UP) + if (!(itemTemplate->AllowableClass & _player->getClassMask()) && itemTemplate->Bonding == BIND_ON_ACQUIRE) continue; // Only display items in vendor lists for the team the player is on @@ -1542,7 +1542,7 @@ void WorldSession::HandleTransmogrifyItems(WorldPacket& recvData) transmogrified[i]->SetNotRefundable(player); transmogrified[i]->ClearSoulboundTradeable(player); - if (transmogrifier[i]->GetTemplate()->Bonding == BIND_WHEN_EQUIPED || transmogrifier[i]->GetTemplate()->Bonding == BIND_WHEN_USE) + if (transmogrifier[i]->GetTemplate()->Bonding == BIND_ON_EQUIP || transmogrifier[i]->GetTemplate()->Bonding == BIND_ON_USE) transmogrifier[i]->SetBinding(true); transmogrifier[i]->SetOwnerGUID(player->GetGUID()); diff --git a/src/server/game/Handlers/SpellHandler.cpp b/src/server/game/Handlers/SpellHandler.cpp index 0c65fc6452..1c200777e3 100644 --- a/src/server/game/Handlers/SpellHandler.cpp +++ b/src/server/game/Handlers/SpellHandler.cpp @@ -175,8 +175,8 @@ void WorldSession::HandleUseItemOpcode(WorldPacket& recvPacket) } } - // check also BIND_WHEN_PICKED_UP and BIND_QUEST_ITEM for .additem or .additemset case by GM (not binded at adding to inventory) - if (pItem->GetTemplate()->Bonding == BIND_WHEN_USE || pItem->GetTemplate()->Bonding == BIND_WHEN_PICKED_UP || pItem->GetTemplate()->Bonding == BIND_QUEST_ITEM) + // check also BIND_ON_ACQUIRE and BIND_QUEST for .additem or .additemset case by GM (not binded at adding to inventory) + if (pItem->GetTemplate()->Bonding == BIND_ON_USE || pItem->GetTemplate()->Bonding == BIND_ON_ACQUIRE || pItem->GetTemplate()->Bonding == BIND_QUEST) { if (!pItem->IsSoulBound()) {