diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/game/SpellEffects.cpp | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 7523664c8b1..89845a51bd0 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -5873,20 +5873,10 @@ void Spell::EffectSummonObject(uint32 i) default: return; } - uint64 guid = m_caster->m_ObjectSlot[slot]; - if(guid != 0) + if(uint64 guid = m_caster->m_ObjectSlot[slot]) { - 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); - } + if(GameObject* obj = m_caster ? m_caster->GetMap()->GetGameObject(guid) : NULL) + obj->SetLootState(GO_JUST_DEACTIVATED); m_caster->m_ObjectSlot[slot] = 0; } |