mirror of
https://github.com/dashr9230/SA-MP.git
synced 2024-12-22 22:47:29 +08:00
[bot] Implement GetElapsedTime()
This commit is contained in:
parent
f775572598
commit
16635b4ea0
@ -114,6 +114,62 @@ void CNetGame::Init(PCHAR szHostOrIp, int iPort,
|
|||||||
|
|
||||||
//----------------------------------------------------
|
//----------------------------------------------------
|
||||||
|
|
||||||
|
#ifdef WIN32
|
||||||
|
|
||||||
|
#pragma comment(lib, "winmm.lib")
|
||||||
|
float GetElapsedTime()
|
||||||
|
{
|
||||||
|
static BOOL bTimerInit = false;
|
||||||
|
static BOOL bUsingOPF = false;
|
||||||
|
static LONGLONG nTicksPerSec = 0;
|
||||||
|
|
||||||
|
if (!bTimerInit)
|
||||||
|
{
|
||||||
|
bTimerInit = true;
|
||||||
|
LARGE_INTEGER qwTicksPerSec;
|
||||||
|
bUsingOPF = QueryPerformanceFrequency(&qwTicksPerSec);
|
||||||
|
if (bUsingOPF) nTicksPerSec = qwTicksPerSec.QuadPart;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (bUsingOPF)
|
||||||
|
{
|
||||||
|
LARGE_INTEGER qwTime;
|
||||||
|
QueryPerformanceCounter(&qwTime);
|
||||||
|
static LONGLONG llLastTime = qwTime.QuadPart;
|
||||||
|
double fElapsedTime = (double)(qwTime.QuadPart - llLastTime) / (double) nTicksPerSec;
|
||||||
|
llLastTime = qwTime.QuadPart;
|
||||||
|
return (float)fElapsedTime;
|
||||||
|
} else {
|
||||||
|
double fTime = timeGetTime() * 0.001;
|
||||||
|
static double fLastTime = fTime;
|
||||||
|
double fElapsedTime = (double)(fTime - fLastTime);
|
||||||
|
fLastTime = fTime;
|
||||||
|
return (float)fElapsedTime;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
float GetElapsedTime()
|
||||||
|
{
|
||||||
|
static timeval lasttv;
|
||||||
|
timeval tv;
|
||||||
|
float fRet;
|
||||||
|
|
||||||
|
gettimeofday(&tv, NULL);
|
||||||
|
|
||||||
|
if (!timerisset(&lasttv)) memcpy(&lasttv, &tv, sizeof(timeval));
|
||||||
|
|
||||||
|
fRet = (float)((tv.tv_sec - lasttv.tv_sec) * 1000000) + (tv.tv_usec - lasttv.tv_usec);
|
||||||
|
fRet /= 1000000.0f;
|
||||||
|
|
||||||
|
memcpy(&lasttv,&tv,sizeof(timeval));
|
||||||
|
|
||||||
|
return fRet;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // WIN32
|
||||||
|
|
||||||
//----------------------------------------------------
|
//----------------------------------------------------
|
||||||
|
|
||||||
void CNetGame::Process()
|
void CNetGame::Process()
|
||||||
|
Loading…
Reference in New Issue
Block a user