diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/game/GameObject.h | 8 |
1 files changed, 8 insertions, 0 deletions
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); } |