diff options
author | linencloth <none@none> | 2010-11-16 21:17:49 +0100 |
---|---|---|
committer | linencloth <none@none> | 2010-11-16 21:17:49 +0100 |
commit | e87223b453f1f958b077d9f98234d4cb9fc71557 (patch) | |
tree | 8a1f753c5dd8fa4b7564a8d6a456c25b25d358d3 /src | |
parent | f5edd6ef2a61a0f762a6c1a408d665e7f37747a3 (diff) |
Core/WorldObjects: Destroy for nearby players before removing from world
Closes issue 4806
--HG--
branch : trunk
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Entities/Object/Object.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h index d3698b1edf8..b9dd8ed44c0 100755 --- a/src/server/game/Entities/Object/Object.h +++ b/src/server/game/Entities/Object/Object.h @@ -137,6 +137,7 @@ class Object // synchronize values mirror with values array (changes will send in updatecreate opcode any way ClearUpdateMask(true); } + virtual void RemoveFromWorld() { if (!m_inWorld) @@ -578,6 +579,16 @@ class WorldObject : public Object, public WorldLocation void _Create(uint32 guidlow, HighGuid guidhigh, uint32 phaseMask); + virtual void RemoveFromWorld() + { + if (!IsInWorld()) + return; + + DestroyForNearbyPlayers(); + + Object::RemoveFromWorld(); + } + void GetNearPoint2D(float &x, float &y, float distance, float absAngle) const; void GetNearPoint(WorldObject const* searcher, float &x, float &y, float &z, float searcher_size, float distance2d,float absAngle) const; void GetClosePoint(float &x, float &y, float &z, float size, float distance2d = 0, float angle = 0) const |