*Fix a crash.

--HG--
branch : trunk
This commit is contained in:
megamage
2009-03-02 18:01:27 -06:00
parent cdd178b9c2
commit 3716a5292b
3 changed files with 6 additions and 2 deletions
+3 -2
View File
@@ -257,7 +257,7 @@ template<>
void Map::AddToGrid(Creature* obj, NGridType *grid, Cell const& cell)
{
// add to world object registry in grid
if(obj->isPet() || obj->HasSharedVision())
if(obj->isPet() || obj->IsTempWorldObject)
{
(*grid)(cell.CellX(), cell.CellY()).AddWorldObject<Creature>(obj, obj->GetGUID());
}
@@ -309,7 +309,7 @@ template<>
void Map::RemoveFromGrid(Creature* obj, NGridType *grid, Cell const& cell)
{
// remove from world object registry in grid
if(obj->isPet() || obj->HasSharedVision())
if(obj->isPet() || obj->IsTempWorldObject)
{
(*grid)(cell.CellX(), cell.CellY()).RemoveWorldObject<Creature>(obj, obj->GetGUID());
}
@@ -353,6 +353,7 @@ void Map::SwitchGridContainers(T* obj, bool on)
assert(false);
}
}
obj->IsTempWorldObject = on;
}
template void Map::SwitchGridContainers(Creature *, bool);
+1
View File
@@ -1068,6 +1068,7 @@ WorldObject::WorldObject()
mSemaphoreTeleport = false;
m_isActive = false;
IsTempWorldObject = false;
}
void WorldObject::SetWorldObject(bool on)
+2
View File
@@ -490,6 +490,8 @@ class TRINITY_DLL_SPEC WorldObject : public Object
template<class NOTIFIER> void VisitNearbyObject(const float &radius, NOTIFIER &notifier) const { GetMap()->VisitAll(GetPositionX(), GetPositionY(), radius, notifier); }
template<class NOTIFIER> void VisitNearbyGridObject(const float &radius, NOTIFIER &notifier) const { GetMap()->VisitGrid(GetPositionX(), GetPositionY(), radius, notifier); }
template<class NOTIFIER> void VisitNearbyWorldObject(const float &radius, NOTIFIER &notifier) const { GetMap()->VisitWorld(GetPositionX(), GetPositionY(), radius, notifier); }
bool IsTempWorldObject;
protected:
explicit WorldObject();
std::string m_name;