Migrated cSleep and cTimer to std::chrono
This commit is contained in:
@@ -4,7 +4,6 @@
|
||||
|
||||
#include "Server.h"
|
||||
#include "ClientHandle.h"
|
||||
#include "OSSupport/Timer.h"
|
||||
#include "Mobs/Monster.h"
|
||||
#include "OSSupport/Socket.h"
|
||||
#include "Root.h"
|
||||
@@ -73,22 +72,19 @@ cServer::cTickThread::cTickThread(cServer & a_Server) :
|
||||
|
||||
void cServer::cTickThread::Execute(void)
|
||||
{
|
||||
cTimer Timer;
|
||||
|
||||
long long msPerTick = 50;
|
||||
long long LastTime = Timer.GetNowTime();
|
||||
auto LastTime = std::chrono::steady_clock::now();
|
||||
static const auto msPerTick = std::chrono::milliseconds(50);
|
||||
|
||||
while (!m_ShouldTerminate)
|
||||
{
|
||||
long long NowTime = Timer.GetNowTime();
|
||||
float DeltaTime = (float)(NowTime-LastTime);
|
||||
m_ShouldTerminate = !m_Server.Tick(DeltaTime);
|
||||
long long TickTime = Timer.GetNowTime() - NowTime;
|
||||
auto NowTime = std::chrono::steady_clock::now();
|
||||
m_ShouldTerminate = !m_Server.Tick(std::chrono::duration_cast<std::chrono::milliseconds>(NowTime - LastTime).count());
|
||||
auto TickTime = std::chrono::steady_clock::now() - NowTime;
|
||||
|
||||
if (TickTime < msPerTick)
|
||||
{
|
||||
// Stretch tick time until it's at least msPerTick
|
||||
cSleep::MilliSleep((unsigned int)(msPerTick - TickTime));
|
||||
std::this_thread::sleep_for(msPerTick -TickTime);
|
||||
}
|
||||
|
||||
LastTime = NowTime;
|
||||
|
||||
Reference in New Issue
Block a user