*Remove viewpoint when dynamicobject is removed from world.

--HG--
branch : trunk
This commit is contained in:
megamage
2009-03-26 10:53:19 -06:00
parent 56cf3da6cb
commit bdafaf4113
2 changed files with 13 additions and 12 deletions
+13
View File
@@ -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();
}
-12
View File
@@ -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;