diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Creature/Creature.cpp | 6 | ||||
-rw-r--r-- | src/server/game/Entities/GameObject/GameObject.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Entities/Object/Object.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Entities/Object/Object.h | 1 | ||||
-rw-r--r-- | src/server/game/Maps/Map.cpp | 6 |
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 |