Core/Item: cleanup some enums (#28)
This commit is contained in:
1 parent
445c018e6b
commit
a246b5a342
7 files changed
+36
-37
No files matched your search
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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) ||
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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())
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user