*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
|
///- Remove the dynamicObject from the accessor
|
||||||
if(IsInWorld())
|
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);
|
ObjectAccessor::Instance().RemoveObject(this);
|
||||||
WorldObject::RemoveFromWorld();
|
WorldObject::RemoveFromWorld();
|
||||||
}
|
}
|
||||||
@@ -134,6 +146,7 @@ void DynamicObject::Update(uint32 p_time)
|
|||||||
void DynamicObject::Delete()
|
void DynamicObject::Delete()
|
||||||
{
|
{
|
||||||
SendObjectDeSpawnAnim(GetGUID());
|
SendObjectDeSpawnAnim(GetGUID());
|
||||||
|
RemoveFromWorld();
|
||||||
AddObjectToRemoveList();
|
AddObjectToRemoveList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2049,18 +2049,6 @@ void Aura::HandleAuraDummy(bool apply, bool Real)
|
|||||||
// AT REMOVE
|
// AT REMOVE
|
||||||
else
|
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())
|
if( (IsQuestTameSpell(GetId())) && caster && caster->isAlive() && m_target->isAlive())
|
||||||
{
|
{
|
||||||
uint32 finalSpelId = 0;
|
uint32 finalSpelId = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user