aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-06-09 19:04:15 +0200
committerShauren <shauren.trinity@gmail.com>2025-06-09 19:04:15 +0200
commit49e02d7c30a39c03c9cb59790d1410c72208c687 (patch)
treebb2eec44f9c0582bf91a112b3e155ea789a63c7e /src
parent4e28543882635362bd05e7fab4368f676044cbdb (diff)
Core/GameObjects: Fixed GameObject::SetRespawnTime putting gameobjets not using compatibility spawning mode into invalid state
Closes #31047
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/GameObject/GameObject.cpp3
-rw-r--r--src/server/game/Maps/Map.cpp2
2 files changed, 4 insertions, 1 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp
index 4713ce9034d..62e9dc02ca5 100644
--- a/src/server/game/Entities/GameObject/GameObject.cpp
+++ b/src/server/game/Entities/GameObject/GameObject.cpp
@@ -1366,6 +1366,9 @@ void GameObject::SetRespawnTime(int32 respawn)
m_respawnDelayTime = respawn > 0 ? respawn : 0;
if (respawn && !m_spawnedByDefault)
UpdateObjectVisibility(true);
+
+ if (m_spawnedByDefault && !m_respawnCompatibilityMode && m_respawnTime > 0)
+ SetLootState(GO_JUST_DEACTIVATED);
}
void GameObject::Respawn()
diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp
index 9ab7f63aabd..77e667bce06 100644
--- a/src/server/game/Maps/Map.cpp
+++ b/src/server/game/Maps/Map.cpp
@@ -3149,7 +3149,7 @@ bool Map::AddRespawnInfo(RespawnInfo const& info)
if (it != bySpawnIdMap.end()) // spawnid already has a respawn scheduled
{
RespawnInfo* const existing = it->second;
- if (info.respawnTime <= existing->respawnTime) // delete existing in this case
+ if (info.respawnTime < existing->respawnTime) // delete existing in this case
DeleteRespawnInfo(existing);
else
return false;