From 555862f05929c8d7e12048db6681f4d8f4063145 Mon Sep 17 00:00:00 2001 From: Peter Date: Sun, 28 Mar 2021 01:02:29 +0100 Subject: [PATCH] fix(Core/Gameobject): Spell spawned chests should not despawn on loot (#4413) * Fix despawning temporary lootable objects * Fix codestyle * Add comment * Fix indendation Co-authored-by: Zoidwaffle --- src/server/game/Entities/GameObject/GameObject.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index 360840cdd..5c5c42848 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -707,8 +707,17 @@ void GameObject::Update(uint32 diff) //! The GetOwnerGUID() check is mostly for compatibility with hacky scripts - 99% of the time summoning should be done trough spells. if (GetSpellId() || GetOwnerGUID()) { - SetRespawnTime(0); - Delete(); + //Don't delete spell spawned chests, which are not consumed on loot + if (m_respawnTime > 0 && GetGoType() == GAMEOBJECT_TYPE_CHEST && !GetGOInfo()->IsDespawnAtAction()) + { + UpdateObjectVisibility(); + SetLootState(GO_READY); + } + else + { + SetRespawnTime(0); + Delete(); + } return; }