From 83f74b5e469b14171d1ec8618f8dac512ff8452f Mon Sep 17 00:00:00 2001 From: QAston Date: Fri, 10 Jul 2009 15:28:10 +0200 Subject: *Prevent overriding owners for gameobject. --HG-- branch : trunk --- src/game/GameObject.h | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src') diff --git a/src/game/GameObject.h b/src/game/GameObject.h index 61df6e0e42f..0d5718a49ff 100644 --- a/src/game/GameObject.h +++ b/src/game/GameObject.h @@ -501,6 +501,14 @@ class TRINITY_DLL_SPEC GameObject : public WorldObject void SetOwnerGUID(uint64 owner) { + // Owner already found and different than expected owner - remove object from old owner + if (owner && GetOwnerGUID() && GetOwnerGUID() != owner) + { + if (Unit* owner = GetOwner()) + owner->RemoveGameObject(this, false); + else + assert(false); + } m_spawnedByDefault = false; // all object with owner is despawned after delay SetUInt64Value(OBJECT_FIELD_CREATED_BY, owner); } -- cgit v1.2.3