mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-02-28 06:25:55 +00:00
refactor(Core/Item): Add helpers (#19828)
This commit is contained in:
@@ -2720,8 +2720,8 @@ void ObjectMgr::LoadItemTemplates()
|
||||
itemTemplate.Name1 = fields[4].Get<std::string>();
|
||||
itemTemplate.DisplayInfoID = fields[5].Get<uint32>();
|
||||
itemTemplate.Quality = uint32(fields[6].Get<uint8>());
|
||||
itemTemplate.Flags = fields[7].Get<uint32>();
|
||||
itemTemplate.Flags2 = fields[8].Get<uint32>();
|
||||
itemTemplate.Flags = ItemFlags(fields[7].Get<uint32>());
|
||||
itemTemplate.Flags2 = ItemFlags2(fields[8].Get<uint32>());
|
||||
itemTemplate.BuyCount = uint32(fields[9].Get<uint8>());
|
||||
itemTemplate.BuyPrice = int32(fields[10].Get<int64>() * sWorld->getRate((Rates)(RATE_BUYVALUE_ITEM_POOR + itemTemplate.Quality)));
|
||||
itemTemplate.SellPrice = uint32(fields[11].Get<uint32>() * sWorld->getRate((Rates)(RATE_SELLVALUE_ITEM_POOR + itemTemplate.Quality)));
|
||||
@@ -2817,7 +2817,7 @@ void ObjectMgr::LoadItemTemplates()
|
||||
itemTemplate.FoodType = uint32(fields[134].Get<uint8>());
|
||||
itemTemplate.MinMoneyLoot = fields[135].Get<uint32>();
|
||||
itemTemplate.MaxMoneyLoot = fields[136].Get<uint32>();
|
||||
itemTemplate.FlagsCu = fields[137].Get<uint32>();
|
||||
itemTemplate.FlagsCu = ItemFlagsCustom(fields[137].Get<uint32>());
|
||||
|
||||
// Checks
|
||||
ItemEntry const* dbcitem = sItemStore.LookupEntry(entry);
|
||||
@@ -2873,23 +2873,23 @@ void ObjectMgr::LoadItemTemplates()
|
||||
itemTemplate.Quality = ITEM_QUALITY_NORMAL;
|
||||
}
|
||||
|
||||
if (itemTemplate.Flags2 & ITEM_FLAGS_EXTRA_HORDE_ONLY)
|
||||
if (itemTemplate.HasFlag2(ITEM_FLAG2_FACTION_HORDE))
|
||||
{
|
||||
if (FactionEntry const* faction = sFactionStore.LookupEntry(HORDE))
|
||||
if ((itemTemplate.AllowableRace & faction->BaseRepRaceMask[0]) == 0)
|
||||
LOG_ERROR("sql.sql", "Item (Entry: {}) has value ({}) in `AllowableRace` races, not compatible with ITEM_FLAGS_EXTRA_HORDE_ONLY ({}) in Flags field, item cannot be equipped or used by these races.",
|
||||
entry, itemTemplate.AllowableRace, ITEM_FLAGS_EXTRA_HORDE_ONLY);
|
||||
LOG_ERROR("sql.sql", "Item (Entry: {}) has value ({}) in `AllowableRace` races, not compatible with ITEM_FLAG2_FACTION_HORDE ({}) in Flags field, item cannot be equipped or used by these races.",
|
||||
entry, itemTemplate.AllowableRace, ITEM_FLAG2_FACTION_HORDE);
|
||||
|
||||
if (itemTemplate.Flags2 & ITEM_FLAGS_EXTRA_ALLIANCE_ONLY)
|
||||
LOG_ERROR("sql.sql", "Item (Entry: {}) has value ({}) in `Flags2` flags (ITEM_FLAGS_EXTRA_ALLIANCE_ONLY) and ITEM_FLAGS_EXTRA_HORDE_ONLY ({}) in Flags field, this is a wrong combination.",
|
||||
entry, ITEM_FLAGS_EXTRA_ALLIANCE_ONLY, ITEM_FLAGS_EXTRA_HORDE_ONLY);
|
||||
if (itemTemplate.HasFlag2(ITEM_FLAG2_FACTION_ALLIANCE))
|
||||
LOG_ERROR("sql.sql", "Item (Entry: {}) has value ({}) in `Flags2` flags (ITEM_FLAG2_FACTION_ALLIANCE) and ITEM_FLAG2_FACTION_HORDE ({}) in Flags field, this is a wrong combination.",
|
||||
entry, ITEM_FLAG2_FACTION_ALLIANCE, ITEM_FLAG2_FACTION_HORDE);
|
||||
}
|
||||
else if (itemTemplate.Flags2 & ITEM_FLAGS_EXTRA_ALLIANCE_ONLY)
|
||||
else if (itemTemplate.HasFlag2(ITEM_FLAG2_FACTION_ALLIANCE))
|
||||
{
|
||||
if (FactionEntry const* faction = sFactionStore.LookupEntry(ALLIANCE))
|
||||
if ((itemTemplate.AllowableRace & faction->BaseRepRaceMask[0]) == 0)
|
||||
LOG_ERROR("sql.sql", "Item (Entry: {}) has value ({}) in `AllowableRace` races, not compatible with ITEM_FLAGS_EXTRA_ALLIANCE_ONLY ({}) in Flags field, item cannot be equipped or used by these races.",
|
||||
entry, itemTemplate.AllowableRace, ITEM_FLAGS_EXTRA_ALLIANCE_ONLY);
|
||||
LOG_ERROR("sql.sql", "Item (Entry: {}) has value ({}) in `AllowableRace` races, not compatible with ITEM_FLAG2_FACTION_ALLIANCE ({}) in Flags field, item cannot be equipped or used by these races.",
|
||||
entry, itemTemplate.AllowableRace, ITEM_FLAG2_FACTION_ALLIANCE);
|
||||
}
|
||||
|
||||
if (itemTemplate.BuyCount <= 0)
|
||||
@@ -3200,10 +3200,10 @@ void ObjectMgr::LoadItemTemplates()
|
||||
itemTemplate.HolidayId = 0;
|
||||
}
|
||||
|
||||
if (itemTemplate.FlagsCu & ITEM_FLAGS_CU_DURATION_REAL_TIME && !itemTemplate.Duration)
|
||||
if (itemTemplate.HasFlagCu(ITEM_FLAGS_CU_DURATION_REAL_TIME) && !itemTemplate.Duration)
|
||||
{
|
||||
LOG_ERROR("sql.sql", "Item (Entry {}) has flag ITEM_FLAGS_CU_DURATION_REAL_TIME but it does not have duration limit", entry);
|
||||
itemTemplate.FlagsCu &= ~ITEM_FLAGS_CU_DURATION_REAL_TIME;
|
||||
itemTemplate.FlagsCu = static_cast<ItemFlagsCustom>(static_cast<uint32>(itemTemplate.FlagsCu) & ~ITEM_FLAGS_CU_DURATION_REAL_TIME);
|
||||
}
|
||||
|
||||
// Fill categories map
|
||||
|
||||
Reference in New Issue
Block a user