diff options
author | Giacomo Pozzoni <giacomopoz@gmail.com> | 2019-07-19 21:24:56 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-07-19 21:24:56 +0200 |
commit | aeddd417c460c43d885cb89ceaa6e051c44b1d27 (patch) | |
tree | 589e76b3c39940dec7e8db8240224220d4893090 /src/server/game/Instances/InstanceSaveMgr.cpp | |
parent | fbd0fe26ee239f7cf80004d771b96df3f9ae1274 (diff) |
Core/Misc: Handle timezones for hour-specific events specifieds in worldserver.conf (#23540)
* Core/Misc: Handle timezones for hour-specific events specifieds in worldserver.conf
* Handle Respawn.RestartQuietTime too
* Handle XP.Boost.Daymask too
* Core/Misc: Code cleanup
* Core/Misc: Code cleanup
* Update Util.cpp
* Update boosted_xp.cpp
Diffstat (limited to 'src/server/game/Instances/InstanceSaveMgr.cpp')
-rw-r--r-- | src/server/game/Instances/InstanceSaveMgr.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/server/game/Instances/InstanceSaveMgr.cpp b/src/server/game/Instances/InstanceSaveMgr.cpp index 461bd562fd6..debeb26b198 100644 --- a/src/server/game/Instances/InstanceSaveMgr.cpp +++ b/src/server/game/Instances/InstanceSaveMgr.cpp @@ -346,7 +346,7 @@ void InstanceSaveManager::LoadResetTimes() } // load the global respawn times for raid/heroic instances - uint32 diff = sWorld->getIntConfig(CONFIG_INSTANCE_RESET_TIME_HOUR) * HOUR; + uint32 resetHour = sWorld->getIntConfig(CONFIG_INSTANCE_RESET_TIME_HOUR); if (QueryResult result = CharacterDatabase.Query("SELECT mapid, difficulty, resettime FROM instance_reset")) { do @@ -369,7 +369,7 @@ void InstanceSaveManager::LoadResetTimes() } // update the reset time if the hour in the configs changes - uint64 newresettime = (oldresettime / DAY) * DAY + diff; + uint64 newresettime = GetLocalHourTimestamp(oldresettime, resetHour, false); if (oldresettime != newresettime) { PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_GLOBAL_INSTANCE_RESETTIME); @@ -403,7 +403,7 @@ void InstanceSaveManager::LoadResetTimes() if (!t) { // initialize the reset time - t = today + period + diff; + t = GetLocalHourTimestamp(today + period, resetHour); PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_GLOBAL_INSTANCE_RESETTIME); stmt->setUInt16(0, uint16(mapid)); @@ -416,8 +416,8 @@ void InstanceSaveManager::LoadResetTimes() { // assume that expired instances have already been cleaned // calculate the next reset time - t = (t / DAY) * DAY; - t += ((today - t) / period + 1) * period + diff; + time_t day = (t / DAY) * DAY; + t = GetLocalHourTimestamp(day + ((today - day) / period + 1) * period, resetHour); PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_GLOBAL_INSTANCE_RESETTIME); stmt->setUInt64(0, uint64(t)); @@ -451,12 +451,12 @@ time_t InstanceSaveManager::GetSubsequentResetTime(uint32 mapid, Difficulty diff return 0; } - time_t diff = sWorld->getIntConfig(CONFIG_INSTANCE_RESET_TIME_HOUR) * HOUR; + time_t resetHour = sWorld->getIntConfig(CONFIG_INSTANCE_RESET_TIME_HOUR); time_t period = uint32(((mapDiff->resetTime * sWorld->getRate(RATE_INSTANCE_RESET_TIME)) / DAY) * DAY); if (period < DAY) period = DAY; - return ((resetTime + MINUTE) / DAY * DAY) + period + diff; + return GetLocalHourTimestamp(((resetTime + MINUTE) / DAY * DAY) + period, resetHour); } void InstanceSaveManager::SetResetTimeFor(uint32 mapid, Difficulty d, time_t t) |