aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Maps/Map.cpp
diff options
context:
space:
mode:
authorr00ty-tc <r00ty-tc@users.noreply.github.com>2017-11-15 00:59:23 +0100
committerShauren <shauren.trinity@gmail.com>2021-02-06 21:41:51 +0100
commitf3ac10f36fcc46c5e1537d69544a9294fc719ad2 (patch)
treec9dc2489a662fc71edccfce6cf0331bc5dfc7d30 /src/server/game/Maps/Map.cpp
parentce8b3a13081fdb450d566624c7b92d7aea10f37c (diff)
Core/Spawn: Limit saved/stored respawn time.
- Limit to time_t maximum, for the compiled-for architecture. Closes #20834 (cherry picked from commit 3446424540c5692c9e0ff11803d70e8129a5adc4)
Diffstat (limited to 'src/server/game/Maps/Map.cpp')
-rw-r--r--src/server/game/Maps/Map.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp
index 46113830f7f..3bad931ab55 100644
--- a/src/server/game/Maps/Map.cpp
+++ b/src/server/game/Maps/Map.cpp
@@ -3345,7 +3345,9 @@ bool Map::CheckRespawn(RespawnInfo* info)
{
time_t now = time(NULL);
time_t respawnTime;
- if (sObjectMgr->GetLinkedRespawnGuid(thisGUID) == thisGUID) // never respawn, save "something" in DB
+ if (linkedTime == std::numeric_limits<time_t>::max())
+ respawnTime = linkedTime;
+ else if (sObjectMgr->GetLinkedRespawnGuid(thisGUID) == thisGUID) // never respawn, save "something" in DB
respawnTime = now + WEEK;
else // set us to check again shortly after linked unit
respawnTime = std::max<time_t>(now, linkedTime) + urand(5, 15);