diff options
| author | r00ty-tc <r00ty-tc@users.noreply.github.com> | 2017-11-15 00:59:23 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2021-02-06 21:41:51 +0100 |
| commit | f3ac10f36fcc46c5e1537d69544a9294fc719ad2 (patch) | |
| tree | c9dc2489a662fc71edccfce6cf0331bc5dfc7d30 /src/server/game/Maps/Map.cpp | |
| parent | ce8b3a13081fdb450d566624c7b92d7aea10f37c (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.cpp | 4 |
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); |
