*Check IsInWorld() when calling GetMap() in RemoveFromWorld(). This may fix some crash bugs.

--HG--
branch : trunk
This commit is contained in:
megamage
2009-02-22 17:03:01 -06:00
parent c9707d3c7f
commit 9bb7807935
2 changed files with 12 additions and 9 deletions

View File

@@ -52,15 +52,18 @@ void DynamicObject::AddToWorld()
void DynamicObject::RemoveFromWorld()
{
// Make sure the object is back to grid container for removal as farsight targets
// are switched to world container on creation and they are also set to active
if (isActive())
{
GetMap()->SwitchGridContainers(this, false);
setActive(false);
}
///- Remove the dynamicObject from the accessor
if(IsInWorld()) ObjectAccessor::Instance().RemoveObject(this);
if(IsInWorld())
{
// Make sure the object is back to grid container for removal as farsight targets
// are switched to world container on creation and they are also set to active
if (isActive())
{
GetMap()->SwitchGridContainers(this, false);
setActive(false);
}
ObjectAccessor::Instance().RemoveObject(this);
}
WorldObject::RemoveFromWorld();
}