diff options
author | megamage <none@none> | 2009-03-26 10:53:19 -0600 |
---|---|---|
committer | megamage <none@none> | 2009-03-26 10:53:19 -0600 |
commit | bdafaf41134a26818d81ad1ffe853f6013635c4c (patch) | |
tree | 7a6664075e8f9c710d5209e011983e19c983cbbf /src/game/DynamicObject.cpp | |
parent | 56cf3da6cbf1bc1dfe2d6e9ce1669742556b28bc (diff) |
*Remove viewpoint when dynamicobject is removed from world.
--HG--
branch : trunk
Diffstat (limited to 'src/game/DynamicObject.cpp')
-rw-r--r-- | src/game/DynamicObject.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/game/DynamicObject.cpp b/src/game/DynamicObject.cpp index 3ac8b688e8b..72c1f4b2ce2 100644 --- a/src/game/DynamicObject.cpp +++ b/src/game/DynamicObject.cpp @@ -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(); } |