aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Entities/GameObject/GameObject.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp
index b623a0e8881..e24f37b885a 100644
--- a/src/server/game/Entities/GameObject/GameObject.cpp
+++ b/src/server/game/Entities/GameObject/GameObject.cpp
@@ -410,7 +410,10 @@ void GameObject::Update(uint32 diff)
if (m_despawnDelay > diff)
m_despawnDelay -= diff;
else
+ {
+ m_despawnDelay = 0;
DespawnOrUnsummon(0ms, m_despawnRespawnTime);
+ }
}
switch (m_lootState)
@@ -846,9 +849,11 @@ void GameObject::DespawnOrUnsummon(Milliseconds delay, Seconds forceRespawnTime)
}
else
{
- uint32 const respawnDelay = (forceRespawnTime > 0s) ? forceRespawnTime.count() : m_respawnDelayTime;
- if (m_goData && respawnDelay)
+ if (m_goData)
+ {
+ uint32 const respawnDelay = (forceRespawnTime > 0s) ? forceRespawnTime.count() : m_goData->spawntimesecs;
SaveRespawnTime(respawnDelay);
+ }
Delete();
}
}