*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)
|
void Map::AddToGrid(Creature* obj, NGridType *grid, Cell const& cell)
|
||||||
{
|
{
|
||||||
// add to world object registry in grid
|
// 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());
|
(*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)
|
void Map::RemoveFromGrid(Creature* obj, NGridType *grid, Cell const& cell)
|
||||||
{
|
{
|
||||||
// remove from world object registry in grid
|
// 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());
|
(*grid)(cell.CellX(), cell.CellY()).RemoveWorldObject<Creature>(obj, obj->GetGUID());
|
||||||
}
|
}
|
||||||
@@ -353,6 +353,7 @@ void Map::SwitchGridContainers(T* obj, bool on)
|
|||||||
assert(false);
|
assert(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
obj->IsTempWorldObject = on;
|
||||||
}
|
}
|
||||||
|
|
||||||
template void Map::SwitchGridContainers(Creature *, bool);
|
template void Map::SwitchGridContainers(Creature *, bool);
|
||||||
|
|||||||
@@ -1068,6 +1068,7 @@ WorldObject::WorldObject()
|
|||||||
mSemaphoreTeleport = false;
|
mSemaphoreTeleport = false;
|
||||||
|
|
||||||
m_isActive = false;
|
m_isActive = false;
|
||||||
|
IsTempWorldObject = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldObject::SetWorldObject(bool on)
|
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 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 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); }
|
template<class NOTIFIER> void VisitNearbyWorldObject(const float &radius, NOTIFIER ¬ifier) const { GetMap()->VisitWorld(GetPositionX(), GetPositionY(), radius, notifier); }
|
||||||
|
bool IsTempWorldObject;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
explicit WorldObject();
|
explicit WorldObject();
|
||||||
std::string m_name;
|
std::string m_name;
|
||||||
|
|||||||
Reference in New Issue
Block a user