aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorlinencloth <none@none>2010-11-16 21:17:49 +0100
committerlinencloth <none@none>2010-11-16 21:17:49 +0100
commite87223b453f1f958b077d9f98234d4cb9fc71557 (patch)
tree8a1f753c5dd8fa4b7564a8d6a456c25b25d358d3 /src
parentf5edd6ef2a61a0f762a6c1a408d665e7f37747a3 (diff)
Core/WorldObjects: Destroy for nearby players before removing from world
Closes issue 4806 --HG-- branch : trunk
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Entities/Object/Object.h11
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