mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-19 08:55:32 +01:00
Core/DataStores: fixed assigning item effects
This commit is contained in:
@@ -458,6 +458,7 @@ namespace
|
||||
ItemModifiedAppearanceByItemContainer _itemModifiedAppearancesByItem;
|
||||
ItemSetSpellContainer _itemSetSpells;
|
||||
ItemSpecOverridesContainer _itemSpecOverrides;
|
||||
std::unordered_map<uint32 /*itemId*/, std::vector<ItemEffectEntry const*>> _itemEffectsByItemId;
|
||||
std::vector<JournalTierEntry const*> _journalTiersByIndex;
|
||||
MapDifficultyContainer _mapDifficulties;
|
||||
std::unordered_map<uint32, DB2Manager::MapDifficultyConditionsContainer> _mapDifficultyConditions;
|
||||
@@ -1234,6 +1235,9 @@ uint32 DB2Manager::LoadStores(std::string const& dataPath, LocaleConstant defaul
|
||||
for (ItemCurrencyCostEntry const* itemCurrencyCost : sItemCurrencyCostStore)
|
||||
_itemsWithCurrencyCost.insert(itemCurrencyCost->ItemID);
|
||||
|
||||
for (ItemEffectEntry const* itemEffect : sItemEffectStore)
|
||||
_itemEffectsByItemId[itemEffect->ParentItemID].push_back(itemEffect);
|
||||
|
||||
for (ItemLimitCategoryConditionEntry const* condition : sItemLimitCategoryConditionStore)
|
||||
_itemCategoryConditions[condition->ParentItemLimitCategoryID].push_back(condition);
|
||||
|
||||
@@ -3145,3 +3149,8 @@ bool DB2Manager::MountTypeXCapabilityEntryComparator::Compare(MountTypeXCapabili
|
||||
return left->OrderIndex < right->OrderIndex;
|
||||
return left->MountTypeID < right->MountTypeID;
|
||||
}
|
||||
|
||||
std::vector<ItemEffectEntry const*> const* DB2Manager::GetItemEffectsForItemId(uint32 itemId) const
|
||||
{
|
||||
return Trinity::Containers::MapGetValuePtr(_itemEffectsByItemId, itemId);
|
||||
}
|
||||
|
||||
@@ -515,6 +515,7 @@ public:
|
||||
bool IsUiMapPhase(uint32 phaseId) const;
|
||||
WMOAreaTableEntry const* GetWMOAreaTable(int32 rootId, int32 adtId, int32 groupId) const;
|
||||
std::unordered_set<uint32> const* GetPVPStatIDsForMap(uint32 mapId) const;
|
||||
std::vector<ItemEffectEntry const*> const* GetItemEffectsForItemId(uint32 itemId) const;
|
||||
|
||||
private:
|
||||
friend class DB2HotfixGeneratorBase;
|
||||
|
||||
@@ -3319,15 +3319,12 @@ void ObjectMgr::LoadItemTemplates()
|
||||
for (auto& specs : itemTemplate.Specializations)
|
||||
if (specs.count() == 0)
|
||||
specs.set();
|
||||
}
|
||||
|
||||
/*
|
||||
// Load item effects (spells)
|
||||
for (ItemXItemEffectEntry const* effectEntry : sItemXItemEffectStore)
|
||||
if (ItemTemplate* item = Trinity::Containers::MapGetValuePtr(_itemTemplateStore, effectEntry->ItemID))
|
||||
if (ItemEffectEntry const* effect = sItemEffectStore.LookupEntry(effectEntry->ItemEffectID))
|
||||
item->Effects.push_back(effect);
|
||||
*/
|
||||
// Load item effects (spells)
|
||||
if (std::vector<ItemEffectEntry const*> const* itemEffects = sDB2Manager.GetItemEffectsForItemId(sparse->ID))
|
||||
for (ItemEffectEntry const* itemEffect : *itemEffects)
|
||||
itemTemplate.Effects.push_back(itemEffect);
|
||||
}
|
||||
|
||||
TC_LOG_INFO("server.loading", ">> Loaded {} item templates in {} ms", _itemTemplateStore.size(), GetMSTimeDiffToNow(oldMSTime));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user