diff options
author | Shauren <shauren.trinity@gmail.com> | 2025-06-09 19:04:15 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2025-06-09 19:04:15 +0200 |
commit | 49e02d7c30a39c03c9cb59790d1410c72208c687 (patch) | |
tree | bb2eec44f9c0582bf91a112b3e155ea789a63c7e /src | |
parent | 4e28543882635362bd05e7fab4368f676044cbdb (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.cpp | 3 | ||||
-rw-r--r-- | src/server/game/Maps/Map.cpp | 2 |
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; |