*Remove viewpoint when dynamicobject is removed from world.
--HG-- branch : trunk
This commit is contained in:
@@ -53,6 +53,18 @@ void DynamicObject::RemoveFromWorld()
|
||||
///- Remove the dynamicObject from the accessor
|
||||
if(IsInWorld())
|
||||
{
|
||||
if(m_effIndex == 4)
|
||||
{
|
||||
if(Unit *caster = GetCaster())
|
||||
{
|
||||
if(caster->GetTypeId() == TYPEID_PLAYER)
|
||||
((Player*)caster)->SetViewpoint(this, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
sLog.outCrash("DynamicObject::RemoveFromWorld cannot find viewpoint owner");
|
||||
}
|
||||
}
|
||||
ObjectAccessor::Instance().RemoveObject(this);
|
||||
WorldObject::RemoveFromWorld();
|
||||
}
|
||||
@@ -134,6 +146,7 @@ void DynamicObject::Update(uint32 p_time)
|
||||
void DynamicObject::Delete()
|
||||
{
|
||||
SendObjectDeSpawnAnim(GetGUID());
|
||||
RemoveFromWorld();
|
||||
AddObjectToRemoveList();
|
||||
}
|
||||
|
||||
|
||||
@@ -2049,18 +2049,6 @@ void Aura::HandleAuraDummy(bool apply, bool Real)
|
||||
// AT REMOVE
|
||||
else
|
||||
{
|
||||
if(GetSpellProto()->Effect[0]==72 )
|
||||
{
|
||||
// spells with SpellEffect=72 and aura=4: 6196, 6197, 21171, 21425
|
||||
if(DynamicObject* dynObj = m_target->GetDynObject(GetId(), 0))
|
||||
{
|
||||
if(m_target->GetTypeId() == TYPEID_PLAYER)
|
||||
((Player*)m_target)->SetViewpoint(dynObj, false);
|
||||
m_target->RemoveDynObject(GetId());
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if( (IsQuestTameSpell(GetId())) && caster && caster->isAlive() && m_target->isAlive())
|
||||
{
|
||||
uint32 finalSpelId = 0;
|
||||
|
||||
Reference in New Issue
Block a user