aboutsummaryrefslogtreecommitdiff
path: root/src/game/Creature.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-03-23 20:13:37 -0600
committermegamage <none@none>2009-03-23 20:13:37 -0600
commitf18a9c916d23c96c013f702aaec6b2c539ceb273 (patch)
tree9e1858c39f31538d2fa0c101d4b3911c811e822a /src/game/Creature.cpp
parentdcb08352e7420b6a1277dfa5de359d2f19651cd9 (diff)
*Fix some crashes possibly related to vehicles.
*Fix a bug that client crashes when seer is far away from caster. --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 edf32d19cf2..a2dc9a4d41a 100644
--- a/src/game/Creature.cpp
+++ b/src/game/Creature.cpp
@@ -166,19 +166,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()