diff options
Diffstat (limited to 'src/server/game/Spells/SpellEffects.cpp')
| -rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 7 |
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); } } |
