aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjackpoz <giacomopoz@gmail.com>2019-10-17 20:18:25 +0200
committerjackpoz <giacomopoz@gmail.com>2019-10-17 20:18:25 +0200
commit90bb10aa3a490fc701e6f98b32310687af80dea5 (patch)
treed0ea94af9bb111a38d7d542b4042e908e93c728f /src
parent30823f9b79b4ad16f96e90692a900f68a7f63c0a (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)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Battlegrounds/Battleground.cpp19
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);
}