From e87223b453f1f958b077d9f98234d4cb9fc71557 Mon Sep 17 00:00:00 2001 From: linencloth Date: Tue, 16 Nov 2010 21:17:49 +0100 Subject: [PATCH] Core/WorldObjects: Destroy for nearby players before removing from world Closes issue 4806 --HG-- branch : trunk --- src/server/game/Entities/Object/Object.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h index d3698b1edf..b9dd8ed44c 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