*Fix a crash.
--HG-- branch : trunk
This commit is contained in:
+3
-2
@@ -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);
|
||||
|
||||
@@ -1068,6 +1068,7 @@ WorldObject::WorldObject()
|
||||
mSemaphoreTeleport = false;
|
||||
|
||||
m_isActive = false;
|
||||
IsTempWorldObject = false;
|
||||
}
|
||||
|
||||
void WorldObject::SetWorldObject(bool on)
|
||||
|
||||
@@ -490,6 +490,8 @@ class TRINITY_DLL_SPEC WorldObject : public Object
|
||||
template<class NOTIFIER> void VisitNearbyObject(const float &radius, NOTIFIER ¬ifier) const { GetMap()->VisitAll(GetPositionX(), GetPositionY(), radius, notifier); }
|
||||
template<class NOTIFIER> void VisitNearbyGridObject(const float &radius, NOTIFIER ¬ifier) const { GetMap()->VisitGrid(GetPositionX(), GetPositionY(), radius, notifier); }
|
||||
template<class NOTIFIER> void VisitNearbyWorldObject(const float &radius, NOTIFIER ¬ifier) const { GetMap()->VisitWorld(GetPositionX(), GetPositionY(), radius, notifier); }
|
||||
bool IsTempWorldObject;
|
||||
|
||||
protected:
|
||||
explicit WorldObject();
|
||||
std::string m_name;
|
||||
|
||||
Reference in New Issue
Block a user