aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Globals/ObjectMgr.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-01-25 22:48:10 +0100
committerShauren <shauren.trinity@gmail.com>2025-01-25 22:48:10 +0100
commitc85d12fc3f0576163d4ffa91bb38f66894305349 (patch)
treecfaff5ba3cc0189577e130fdf1eb5e4edf3c26c3 /src/server/game/Globals/ObjectMgr.cpp
parent380b1f8986c20803ae7d8c2387d31a2645a7e508 (diff)
Core/Items: Fixed item spell charge slot indexing
Closes #30585
Diffstat (limited to 'src/server/game/Globals/ObjectMgr.cpp')
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index 5f8cb18c8ed..ea45fd3fbb5 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -3369,9 +3369,16 @@ void ObjectMgr::LoadItemTemplates()
// 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);
+ {
+ auto itr = std::ranges::lower_bound(item->Effects, effect->LegacySlotIndex, {}, &ItemEffectEntry::LegacySlotIndex);
+ item->Effects.insert(itr, effect);
+ }
+ }
+ }
TC_LOG_INFO("server.loading", ">> Loaded {} item templates in {} ms", _itemTemplateStore.size(), GetMSTimeDiffToNow(oldMSTime));
}