diff options
author | megamage <none@none> | 2009-03-25 15:54:23 -0600 |
---|---|---|
committer | megamage <none@none> | 2009-03-25 15:54:23 -0600 |
commit | 581ae2719d1639d063a812901ff4b0983169cde7 (patch) | |
tree | 77db4a465848205ee497a140a1b1c4efa0c47db4 /src/game/Creature.cpp | |
parent | 435570903a8eee6e9d81dd3e871aace1eb3cd73e (diff) |
*Do not allow to add/remove obj to/from world more than once.
--HG--
branch : trunk
Diffstat (limited to 'src/game/Creature.cpp')
-rw-r--r-- | src/game/Creature.cpp | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/src/game/Creature.cpp b/src/game/Creature.cpp index 8c120309217..ad3f435ae53 100644 --- a/src/game/Creature.cpp +++ b/src/game/Creature.cpp @@ -177,19 +177,24 @@ Creature::~Creature() void Creature::AddToWorld() { ///- Register the creature for guid lookup - if(!IsInWorld()) ObjectAccessor::Instance().AddObject(this); - Unit::AddToWorld(); - SearchFormation(); + if(!IsInWorld()) + { + ObjectAccessor::Instance().AddObject(this); + Unit::AddToWorld(); + SearchFormation(); + } } void Creature::RemoveFromWorld() { - if(m_formationID) - formation_mgr.DestroyGroup(m_formationID, GetGUID()); - ///- Remove the creature from the accessor - if(IsInWorld()) ObjectAccessor::Instance().RemoveObject(this); - Unit::RemoveFromWorld(); + if(IsInWorld()) + { + if(m_formationID) + formation_mgr.DestroyGroup(m_formationID, GetGUID()); + ObjectAccessor::Instance().RemoveObject(this); + Unit::RemoveFromWorld(); + } } void Creature::SearchFormation() |