aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Object
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Entities/Object')
-rw-r--r--src/server/game/Entities/Object/Object.cpp42
-rw-r--r--src/server/game/Entities/Object/Object.h8
2 files changed, 25 insertions, 25 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index 9765ef91434..155596e7e32 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -76,21 +76,6 @@ Object::Object() : m_scriptRef(this, NoopObjectDeleter())
m_objectUpdated = false;
}
-WorldObject::~WorldObject()
-{
- // this may happen because there are many !create/delete
- if (IsWorldObject() && m_currMap)
- {
- if (GetTypeId() == TYPEID_CORPSE)
- {
- TC_LOG_FATAL("misc", "WorldObject::~WorldObject Corpse Type: {} ({}) deleted but still in map!!",
- ToCorpse()->GetType(), GetGUID().ToString());
- ABORT();
- }
- ResetMap();
- }
-}
-
Object::~Object()
{
if (IsInWorld())
@@ -973,7 +958,7 @@ void MovementInfo::OutDebug()
}
WorldObject::WorldObject(bool isWorldObject) : Object(), WorldLocation(), LastUsedScriptID(0),
-m_movementInfo(), m_name(), m_isActive(false), m_isFarVisible(false), m_isWorldObject(isWorldObject), m_zoneScript(nullptr),
+m_movementInfo(), m_name(), m_isActive(false), m_isFarVisible(false), m_isStoredInWorldObjectGridContainer(isWorldObject), m_zoneScript(nullptr),
m_transport(nullptr), m_zoneId(0), m_areaId(0), m_staticFloorZ(VMAP_INVALID_HEIGHT), m_outdoors(false), m_liquidStatus(LIQUID_MAP_NO_WATER),
m_currMap(nullptr), m_InstanceId(0), m_phaseMask(PHASEMASK_NORMAL), m_notifyflags(0)
{
@@ -981,7 +966,22 @@ m_currMap(nullptr), m_InstanceId(0), m_phaseMask(PHASEMASK_NORMAL), m_notifyflag
m_serverSideVisibilityDetect.SetValue(SERVERSIDE_VISIBILITY_GHOST, GHOST_VISIBILITY_ALIVE);
}
-void WorldObject::SetWorldObject(bool on)
+WorldObject::~WorldObject()
+{
+ // this may happen because there are many !create/delete
+ if (IsStoredInWorldObjectGridContainer() && m_currMap)
+ {
+ if (GetTypeId() == TYPEID_CORPSE)
+ {
+ TC_LOG_FATAL("misc", "WorldObject::~WorldObject Corpse Type: {} ({}) deleted but still in map!!",
+ ToCorpse()->GetType(), GetGUID().ToString());
+ ABORT();
+ }
+ ResetMap();
+ }
+}
+
+void WorldObject::SetIsStoredInWorldObjectGridContainer(bool on)
{
if (!IsInWorld())
return;
@@ -989,9 +989,9 @@ void WorldObject::SetWorldObject(bool on)
GetMap()->AddObjectToSwitchList(this, on);
}
-bool WorldObject::IsWorldObject() const
+bool WorldObject::IsStoredInWorldObjectGridContainer() const
{
- if (m_isWorldObject)
+ if (m_isStoredInWorldObjectGridContainer)
return true;
if (ToCreature() && ToCreature()->m_isTempWorldObject)
@@ -1826,7 +1826,7 @@ void WorldObject::SetMap(Map* map)
m_currMap = map;
m_mapId = map->GetId();
m_InstanceId = map->GetInstanceId();
- if (IsWorldObject())
+ if (IsStoredInWorldObjectGridContainer())
m_currMap->AddWorldObject(this);
}
@@ -1834,7 +1834,7 @@ void WorldObject::ResetMap()
{
ASSERT(m_currMap);
ASSERT(!IsInWorld());
- if (IsWorldObject())
+ if (IsStoredInWorldObjectGridContainer())
m_currMap->RemoveWorldObject(this);
m_currMap = nullptr;
//maybe not for corpse
diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h
index abf3bd3bf98..c0a1a2b2656 100644
--- a/src/server/game/Entities/Object/Object.h
+++ b/src/server/game/Entities/Object/Object.h
@@ -497,9 +497,9 @@ class TC_GAME_API WorldObject : public Object, public WorldLocation
void SetFarVisible(bool on);
bool IsVisibilityOverridden() const { return m_visibilityDistanceOverride.has_value(); }
void SetVisibilityDistanceOverride(VisibilityDistanceType type);
- void SetWorldObject(bool apply);
- bool IsPermanentWorldObject() const { return m_isWorldObject; }
- bool IsWorldObject() const;
+ void SetIsStoredInWorldObjectGridContainer(bool apply);
+ bool IsAlwaysStoredInWorldObjectGridContainer() const { return m_isStoredInWorldObjectGridContainer; }
+ bool IsStoredInWorldObjectGridContainer() const;
uint32 LastUsedScriptID;
@@ -538,7 +538,7 @@ class TC_GAME_API WorldObject : public Object, public WorldLocation
bool m_isActive;
bool m_isFarVisible;
Optional<float> m_visibilityDistanceOverride;
- bool const m_isWorldObject;
+ bool const m_isStoredInWorldObjectGridContainer;
ZoneScript* m_zoneScript;
// transports