aboutsummaryrefslogtreecommitdiff
path: root/src/game/Creature.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-03-25 15:54:23 -0600
committermegamage <none@none>2009-03-25 15:54:23 -0600
commit581ae2719d1639d063a812901ff4b0983169cde7 (patch)
tree77db4a465848205ee497a140a1b1c4efa0c47db4 /src/game/Creature.cpp
parent435570903a8eee6e9d81dd3e871aace1eb3cd73e (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.cpp21
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()