diff options
author | jackpoz <giacomopoz@gmail.com> | 2019-10-17 20:18:25 +0200 |
---|---|---|
committer | jackpoz <giacomopoz@gmail.com> | 2019-10-17 20:18:25 +0200 |
commit | 90bb10aa3a490fc701e6f98b32310687af80dea5 (patch) | |
tree | d0ea94af9bb111a38d7d542b4042e908e93c728f | |
parent | 30823f9b79b4ad16f96e90692a900f68a7f63c0a (diff) |
Core/GameObject: Fix battleground flags not showing burning animation
Fix battleground flags not displaying the typical burning animation when they "despawn" (they don't actually despawn, they just change state)
-rw-r--r-- | src/server/game/Battlegrounds/Battleground.cpp | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp index ac85cd613a6..30d86862dd4 100644 --- a/src/server/game/Battlegrounds/Battleground.cpp +++ b/src/server/game/Battlegrounds/Battleground.cpp @@ -1421,11 +1421,22 @@ void Battleground::SpawnBGObject(uint32 type, uint32 respawntime) if (GameObject* obj = map->GetGameObject(BgObjects[type])) { if (respawntime) + { obj->SetLootState(GO_JUST_DEACTIVATED); - else - if (obj->getLootState() == GO_JUST_DEACTIVATED) - // Change state from GO_JUST_DEACTIVATED to GO_READY in case battleground is starting again - obj->SetLootState(GO_READY); + + if (GameObjectOverride const* goOverride = obj->GetGameObjectOverride()) + if (goOverride->Flags & GO_FLAG_NODESPAWN) + { + // This function should be called in GameObject::Update() but in case of + // GO_FLAG_NODESPAWN flag the function is never called, so we call it here + obj->SendObjectDeSpawnAnim(obj->GetGUID()); + } + } + else if (obj->getLootState() == GO_JUST_DEACTIVATED) + { + // Change state from GO_JUST_DEACTIVATED to GO_READY in case battleground is starting again + obj->SetLootState(GO_READY); + } obj->SetRespawnTime(respawntime); map->AddToMap(obj); } |