aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Entities/Creature/Creature.cpp6
-rw-r--r--src/server/game/Entities/GameObject/GameObject.cpp4
-rw-r--r--src/server/game/Entities/Object/Object.cpp2
-rw-r--r--src/server/game/Entities/Object/Object.h1
-rw-r--r--src/server/game/Maps/Map.cpp6
5 files changed, 10 insertions, 9 deletions
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp
index 4d17c7a6c0b..0ca2f5fc298 100644
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -425,7 +425,7 @@ void Creature::RemoveCorpse(bool setSpawnTime, bool destroyForNearbyPlayers)
ai->CorpseRemoved(respawnDelay);
if (destroyForNearbyPlayers)
- DestroyForNearbyPlayers();
+ UpdateObjectVisibilityOnDestroy();
// Should get removed later, just keep "compatibility" with scripts
if (setSpawnTime)
@@ -2201,7 +2201,7 @@ void Creature::Respawn(bool force)
if (m_respawnCompatibilityMode)
{
- DestroyForNearbyPlayers();
+ UpdateObjectVisibilityOnDestroy();
RemoveCorpse(false, false);
if (getDeathState() == DEAD)
@@ -2266,7 +2266,7 @@ void Creature::ForcedDespawn(uint32 timeMSToDespawn, Seconds forceRespawnTimer)
uint32 respawnDelay = GetRespawnDelay();
// do it before killing creature
- DestroyForNearbyPlayers();
+ UpdateObjectVisibilityOnDestroy();
bool overrideRespawnTime = false;
if (IsAlive())
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp
index 192d0ecf768..4530990e7e4 100644
--- a/src/server/game/Entities/GameObject/GameObject.cpp
+++ b/src/server/game/Entities/GameObject/GameObject.cpp
@@ -957,7 +957,7 @@ void GameObject::Update(uint32 diff)
m_respawnTime = 0;
if (m_spawnId)
- DestroyForNearbyPlayers();
+ UpdateObjectVisibilityOnDestroy();
else
Delete();
@@ -974,7 +974,7 @@ void GameObject::Update(uint32 diff)
SaveRespawnTime();
if (m_respawnCompatibilityMode)
- DestroyForNearbyPlayers();
+ UpdateObjectVisibilityOnDestroy();
else
AddObjectToRemoveList();
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index 098381b60e1..f07d8f71fb6 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -910,7 +910,7 @@ void WorldObject::RemoveFromWorld()
if (!IsInWorld())
return;
- DestroyForNearbyPlayers();
+ UpdateObjectVisibilityOnDestroy();
Object::RemoveFromWorld();
}
diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h
index 13ab55dd64a..065994344d3 100644
--- a/src/server/game/Entities/Object/Object.h
+++ b/src/server/game/Entities/Object/Object.h
@@ -656,6 +656,7 @@ class TC_GAME_API WorldObject : public Object, public WorldLocation
void DestroyForNearbyPlayers();
virtual void UpdateObjectVisibility(bool forced = true);
virtual void UpdateObjectVisibilityOnCreate() { UpdateObjectVisibility(true); }
+ virtual void UpdateObjectVisibilityOnDestroy() { DestroyForNearbyPlayers(); }
void UpdatePositionData();
void BuildUpdate(UpdateDataMapType&) override;
diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp
index e070d165539..1b00a50db5a 100644
--- a/src/server/game/Maps/Map.cpp
+++ b/src/server/game/Maps/Map.cpp
@@ -1079,7 +1079,7 @@ void Map::RemovePlayerFromMap(Player* player, bool remove)
SendRemoveTransports(player);
if (!inWorld) // if was in world, RemoveFromWorld() called DestroyForNearbyPlayers()
- player->DestroyForNearbyPlayers(); // previous player->UpdateObjectVisibility(true)
+ player->UpdateObjectVisibilityOnDestroy();
if (player->IsInGrid())
player->RemoveFromGrid();
@@ -1101,7 +1101,7 @@ void Map::RemoveFromMap(T *obj, bool remove)
GetMultiPersonalPhaseTracker().UnregisterTrackedObject(obj);
if (!inWorld) // if was in world, RemoveFromWorld() called DestroyForNearbyPlayers()
- obj->DestroyForNearbyPlayers(); // previous obj->UpdateObjectVisibility(true)
+ obj->UpdateObjectVisibilityOnDestroy();
obj->RemoveFromGrid();
@@ -4788,7 +4788,7 @@ void Map::RemoveCorpse(Corpse* corpse)
{
ASSERT(corpse);
- corpse->DestroyForNearbyPlayers();
+ corpse->UpdateObjectVisibilityOnDestroy();
if (corpse->IsInGrid())
RemoveFromMap(corpse, false);
else