From 7dcc185a151745c8a12e23708bb5d457e5796032 Mon Sep 17 00:00:00 2001 From: ariel- Date: Tue, 11 Apr 2017 23:57:29 -0300 Subject: Core/Instance: stop updating the instance resettimes based on creature respawns - Rather update normal instance reset time to 2 hours after last creature kill - This fixes yet another integer overflow due to the possibility of having time_t max showing up - Also change respawntime and resettime fields to bigint on respawn/instance related tables - Start using prepared statements on the InstanceSaveMgr (cherry picked from commit 4c593f12caa162c1bfb831bdbed934bb39155ddb) --- src/server/game/Maps/Map.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/server/game/Maps/Map.cpp') diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index 7b83e3412d5..24392412710 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -3982,7 +3982,7 @@ void Map::SaveCreatureRespawnTime(ObjectGuid::LowType dbGuid, time_t respawnTime CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_REP_CREATURE_RESPAWN); stmt->setUInt64(0, dbGuid); - stmt->setUInt32(1, uint32(respawnTime)); + stmt->setUInt64(1, uint64(respawnTime)); stmt->setUInt16(2, GetId()); stmt->setUInt32(3, GetInstanceId()); CharacterDatabase.Execute(stmt); @@ -4012,7 +4012,7 @@ void Map::SaveGORespawnTime(ObjectGuid::LowType dbGuid, time_t respawnTime) CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_REP_GO_RESPAWN); stmt->setUInt64(0, dbGuid); - stmt->setUInt32(1, uint32(respawnTime)); + stmt->setUInt64(1, uint64(respawnTime)); stmt->setUInt16(2, GetId()); stmt->setUInt32(3, GetInstanceId()); CharacterDatabase.Execute(stmt); @@ -4040,7 +4040,7 @@ void Map::LoadRespawnTimes() { Field* fields = result->Fetch(); ObjectGuid::LowType loguid = fields[0].GetUInt64(); - uint32 respawnTime = fields[1].GetUInt32(); + uint64 respawnTime = fields[1].GetUInt64(); _creatureRespawnTimes[loguid] = time_t(respawnTime); } while (result->NextRow()); @@ -4055,7 +4055,7 @@ void Map::LoadRespawnTimes() { Field* fields = result->Fetch(); ObjectGuid::LowType loguid = fields[0].GetUInt64(); - uint32 respawnTime = fields[1].GetUInt32(); + uint64 respawnTime = fields[1].GetUInt64(); _goRespawnTimes[loguid] = time_t(respawnTime); } while (result->NextRow()); -- cgit v1.2.3