aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/SpellEffects.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Spells/SpellEffects.cpp')
-rw-r--r--src/server/game/Spells/SpellEffects.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index f4f7befa2db..e7d78a0ec57 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -5392,9 +5392,10 @@ void Spell::EffectRechargeItem(SpellEffIndex /*effIndex*/)
if (Item* item = player->GetItemByEntry(effectInfo->ItemType))
{
- ItemTemplate const* proto = item->GetTemplate();
- for (size_t x = 0; x < proto->Effects.size() && x < 5; ++x)
- item->SetSpellCharges(x, proto->Effects[x]->Charges);
+ for (ItemEffectEntry const* itemEffect : item->GetEffects())
+ if (itemEffect->LegacySlotIndex <= item->m_itemData->SpellCharges.size())
+ item->SetSpellCharges(itemEffect->LegacySlotIndex, itemEffect->Charges);
+
item->SetState(ITEM_CHANGED, player);
}
}