diff --git a/r5dev/engine/sdk_dll.cpp b/r5dev/engine/sdk_dll.cpp index 658a664f..c95fd95a 100644 --- a/r5dev/engine/sdk_dll.cpp +++ b/r5dev/engine/sdk_dll.cpp @@ -6,6 +6,7 @@ #include "core/stdafx.h" #include "tier1/cvar.h" +#include "public/utility/utility.h" #include "engine/sdk_dll.h" #ifndef DEDICATED #include "gameui/IBrowser.h" @@ -23,9 +24,7 @@ void CEngineSDK::FixedFrame() g_pBrowser->Think(); g_pConsole->Think(); #endif // !DEDICATED - - std::chrono::duration interval{ sdk_fixedframe_tickinterval->GetFloat()}; - std::this_thread::sleep_for(interval); + std::this_thread::sleep_for(IntervalToDuration(sdk_fixedframe_tickinterval->GetFloat())); } } diff --git a/r5dev/public/utility/utility.cpp b/r5dev/public/utility/utility.cpp index c63b359e..60a54246 100644 --- a/r5dev/public/utility/utility.cpp +++ b/r5dev/public/utility/utility.cpp @@ -835,4 +835,13 @@ string PrintPercentageEscape(const string& svInput) } } return result; -} \ No newline at end of file +} + +/////////////////////////////////////////////////////////////////////////////// +// For obtaining a duration from a certain interval. +std::chrono::nanoseconds IntervalToDuration(const float flInterval) +{ + using namespace std::chrono; + using fsec = duration; + return round(fsec{ flInterval }); +} diff --git a/r5dev/public/utility/utility.h b/r5dev/public/utility/utility.h index db47c9cb..2db853ba 100644 --- a/r5dev/public/utility/utility.h +++ b/r5dev/public/utility/utility.h @@ -68,3 +68,7 @@ void AppendPrintf(char* pBuffer, size_t nBufSize, char const* pFormat, ...); string PrintPercentageEscape(const string& svInput); ///////////////////////////////////////////////////////////////////////////// +// Time +std::chrono::nanoseconds IntervalToDuration(const float flInterval); + +/////////////////////////////////////////////////////////////////////////////