From d449d4f54c7d1eb03eb91dfef27031663871414d Mon Sep 17 00:00:00 2001 From: regneq Date: Thu, 17 Dec 2015 15:49:37 -0800 Subject: [PATCH] EQTime will now save to the DB once every 10 real world minutes. --- world/net.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/world/net.cpp b/world/net.cpp index b5c29fecb..86f794af0 100644 --- a/world/net.cpp +++ b/world/net.cpp @@ -349,6 +349,8 @@ int main(int argc, char** argv) { time_t realtime; eqTime = database.LoadTime(realtime); zoneserver_list.worldclock.SetCurrentEQTimeOfDay(eqTime, realtime); + Timer EQTimeTimer(600000); + EQTimeTimer.Start(600000); Log.Out(Logs::General, Logs::World_Server, "Loading launcher list.."); launcher_list.LoadList(); @@ -473,6 +475,16 @@ int main(int argc, char** argv) { database.PurgeExpiredInstances(); } + if (EQTimeTimer.Check()) + { + TimeOfDay_Struct tod; + zoneserver_list.worldclock.GetCurrentEQTimeOfDay(time(0), &tod); + if (!database.SaveTime(tod.minute, tod.hour, tod.day, tod.month, tod.year)) + Log.Out(Logs::General, Logs::World_Server, "Failed to save eqtime."); + else + Log.Out(Logs::General, Logs::World_Server, "EQTime successfully saved."); + } + //check for timeouts in other threads timeout_manager.CheckTimeouts(); loginserverlist.Process(); @@ -522,10 +534,6 @@ int main(int argc, char** argv) { void CatchSignal(int sig_num) { Log.Out(Logs::General, Logs::World_Server,"Caught signal %d",sig_num); - TimeOfDay_Struct eqTime; - zoneserver_list.worldclock.GetCurrentEQTimeOfDay(time(0), &eqTime); - if (!database.SaveTime(eqTime.minute, eqTime.hour, eqTime.day, eqTime.month, eqTime.year)) - Log.Out(Logs::General, Logs::World_Server, "Failed to save eqtime."); RunLoops = false; }