aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/game/SpellEffects.cpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp
index 592145354d5..724c57c48b6 100644
--- a/src/game/SpellEffects.cpp
+++ b/src/game/SpellEffects.cpp
@@ -5874,10 +5874,20 @@ void Spell::EffectSummonObject(uint32 i)
default: return;
}
- if(uint64 guid = m_caster->m_ObjectSlot[slot])
+ uint64 guid = m_caster->m_ObjectSlot[slot];
+ if(guid != 0)
{
- if(GameObject* obj = m_caster ? m_caster->GetMap()->GetGameObject(guid) : NULL)
- obj->SetLootState(GO_JUST_DEACTIVATED);
+ GameObject* obj = NULL;
+ if( m_caster )
+ obj = m_caster->GetMap()->GetGameObject(guid);
+
+ if(obj)
+ {
+ // Recast case - null spell id to make auras not be removed on object remove from world
+ if (m_spellInfo->Id == obj->GetSpellId())
+ obj->SetSpellId(0);
+ m_caster->RemoveGameObject(obj, true);
+ }
m_caster->m_ObjectSlot[slot] = 0;
}