Core/Objects: Add overridable function UpdateObjectVisibilityOnDestroy
Port From (https://github.com/TrinityCore/TrinityCore/commit/472384e75781ce362af9721fc16928da9eea82dd)
This commit is contained in:
@@ -167,7 +167,7 @@ namespace Game.Entities
|
||||
ai.CorpseRemoved(respawnDelay);
|
||||
|
||||
if (destroyForNearbyPlayers)
|
||||
DestroyForNearbyPlayers();
|
||||
UpdateObjectVisibilityOnDestroy();
|
||||
|
||||
// Should get removed later, just keep "compatibility" with scripts
|
||||
if (setSpawnTime)
|
||||
@@ -1907,7 +1907,7 @@ namespace Game.Entities
|
||||
|
||||
if (m_respawnCompatibilityMode)
|
||||
{
|
||||
DestroyForNearbyPlayers();
|
||||
UpdateObjectVisibilityOnDestroy();
|
||||
RemoveCorpse(false, false);
|
||||
|
||||
if (GetDeathState() == DeathState.Dead)
|
||||
@@ -1971,7 +1971,7 @@ namespace Game.Entities
|
||||
uint respawnDelay = GetRespawnDelay();
|
||||
|
||||
// do it before killing creature
|
||||
DestroyForNearbyPlayers();
|
||||
UpdateObjectVisibilityOnDestroy();
|
||||
|
||||
bool overrideRespawnTime = false;
|
||||
if (IsAlive())
|
||||
|
||||
@@ -865,7 +865,7 @@ namespace Game.Entities
|
||||
m_respawnTime = 0;
|
||||
|
||||
if (m_spawnId != 0)
|
||||
DestroyForNearbyPlayers();
|
||||
UpdateObjectVisibilityOnDestroy();
|
||||
else
|
||||
Delete();
|
||||
|
||||
@@ -883,7 +883,7 @@ namespace Game.Entities
|
||||
SaveRespawnTime();
|
||||
|
||||
if (m_respawnCompatibilityMode)
|
||||
DestroyForNearbyPlayers();
|
||||
UpdateObjectVisibilityOnDestroy();
|
||||
else
|
||||
AddObjectToRemoveList();
|
||||
|
||||
|
||||
@@ -107,7 +107,7 @@ namespace Game.Entities
|
||||
return;
|
||||
|
||||
if (!ObjectTypeMask.HasAnyFlag(TypeMask.Item | TypeMask.Container))
|
||||
DestroyForNearbyPlayers();
|
||||
UpdateObjectVisibilityOnDestroy();
|
||||
|
||||
IsInWorld = false;
|
||||
ClearUpdateMask(true);
|
||||
@@ -2813,6 +2813,8 @@ namespace Game.Entities
|
||||
UpdateObjectVisibility(true);
|
||||
}
|
||||
|
||||
public virtual void UpdateObjectVisibilityOnDestroy() { DestroyForNearbyPlayers(); }
|
||||
|
||||
public virtual void BuildUpdate(Dictionary<Player, UpdateData> data)
|
||||
{
|
||||
var notifier = new WorldObjectChangeAccumulator(this, data);
|
||||
|
||||
@@ -956,7 +956,7 @@ namespace Game.Maps
|
||||
SendRemoveTransports(player);
|
||||
|
||||
if (!inWorld) // if was in world, RemoveFromWorld() called DestroyForNearbyPlayers()
|
||||
player.DestroyForNearbyPlayers(); // previous player.UpdateObjectVisibility(true)
|
||||
player.UpdateObjectVisibilityOnDestroy();
|
||||
|
||||
Cell cell = player.GetCurrentCell();
|
||||
RemoveFromGrid(player, cell);
|
||||
@@ -977,7 +977,7 @@ namespace Game.Maps
|
||||
GetMultiPersonalPhaseTracker().UnregisterTrackedObject(obj);
|
||||
|
||||
if (!inWorld) // if was in world, RemoveFromWorld() called DestroyForNearbyPlayers()
|
||||
obj.DestroyForNearbyPlayers(); // previous obj.UpdateObjectVisibility(true)
|
||||
obj.UpdateObjectVisibilityOnDestroy();
|
||||
|
||||
Cell cell = obj.GetCurrentCell();
|
||||
RemoveFromGrid(obj, cell);
|
||||
@@ -3323,7 +3323,7 @@ namespace Game.Maps
|
||||
{
|
||||
Cypher.Assert(corpse);
|
||||
|
||||
corpse.DestroyForNearbyPlayers();
|
||||
corpse.UpdateObjectVisibilityOnDestroy();
|
||||
if (corpse.GetCurrentCell() != null)
|
||||
RemoveFromMap(corpse, false);
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user