From b868f0ad04e78b180c721cf6b1c3820c513573e3 Mon Sep 17 00:00:00 2001 From: Nefertumm Date: Tue, 24 Mar 2020 03:44:40 -0300 Subject: [PATCH] Revert "Fix(Core/Gameobjects): non-consumable goobers no longer despawn on use (#2750)" (#2797) This is causing troubles with veins and bg gameobjects (those are known) This reverts commit 0521a314b5b504873e93191a8e2de8374b1f8940. --- .../game/Entities/GameObject/GameObject.cpp | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index 97177bafa..280815504 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -702,21 +702,13 @@ void GameObject::Update(uint32 diff) loot.clear(); - // Do not delete gameobjects that are not consumed on loot, while still allowing them to despawn when they expire if summoned - bool isSummonedAndExpired = (GetOwner() || GetSpellId()) && m_respawnTime == 0; - bool isPermanentSpawn = m_respawnDelayTime == 0; - if (!GetGOInfo()->IsDespawnAtAction() && - ((GetGoType() == GAMEOBJECT_TYPE_GOOBER && (!isSummonedAndExpired || isPermanentSpawn)) || - (GetGoType() == GAMEOBJECT_TYPE_CHEST && !isSummonedAndExpired && GetGOInfo()->chest.chestRestockTime == 0))) // ToDo: chests with data2 (chestRestockTime) > 0 and data3 (consumable) = 0 should not despawn on loot - { - SetLootState(GO_READY); - UpdateObjectVisibility(); - return; - } - else + //! If this is summoned by a spell with ie. SPELL_EFFECT_SUMMON_OBJECT_WILD, with or without owner, we check respawn criteria based on spell + //! 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(); + return; } SetLootState(GO_READY);