Mercurial > mm7
diff Timer.cpp @ 2044:28cb79ae2f6f
Time.h rename
author | Ritor1 |
---|---|
date | Thu, 28 Nov 2013 17:12:50 +0600 |
parents | |
children | aff7a7b072b7 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Timer.cpp Thu Nov 28 17:12:50 2013 +0600 @@ -0,0 +1,104 @@ + +#include "Timer.h" +#include "Keyboard.h" +#include "Log.h" + +#include "OSAPI.h" + + + + + +Timer *pMiscTimer = new Timer; +Timer *pEventTimer; + + + + + + +//----- (00426317) -------------------------------------------------------- +unsigned __int64 Timer::Time() +{ + unsigned __int64 v2 = TimeQuant * timeGetTime() / 1000; + if (v2 < uStartTime) + uStartTime = 0; + return v2; +} + + + +//----- (00426349) -------------------------------------------------------- +void Timer::Pause() +{ + if (!bPaused) + { + uStopTime = Time(); + bPaused = true; + } +} + + +//----- (00426363) -------------------------------------------------------- +void Timer::Resume() +{ + if (bPaused) + { + pKeyActionMap->ResetKeys(); + bPaused = 0; + uStartTime = Time(); + } +} + +//----- (00426386) -------------------------------------------------------- +void Timer::TrackGameTime() +{ + if (!bTackGameTime) + { + uGameTimeStart = Time(); + bTackGameTime = true; + } +} + + + +//----- (004263A0) -------------------------------------------------------- +void Timer::StopGameTime() +{ + if (bTackGameTime) + { + bTackGameTime = 0; + uStartTime = Time(); + } +} + +//----- (004263B7) -------------------------------------------------------- +void Timer::Update() +{ + //Timer *v1; // esi@1 + //unsigned int v2; // eax@2 + //signed int v3; // eax@3 + //char v4; // zf@5 + + + unsigned __int64 new_time = Time(); + while (new_time <= uStartTime) + new_time = Time(); + + uTimeElapsed = new_time - uStartTime; + uStartTime = new_time; + + if (uTimeElapsed > 32) + uTimeElapsed = 32; + + if (!bPaused && !bTackGameTime) + uTotalGameTimeElapsed += uTimeElapsed; + dt_in_some_format = (uTimeElapsed << 16) / 128; +} + +//----- (00426402) -------------------------------------------------------- +void Timer::Initialize() +{ + uTotalGameTimeElapsed = 0; + bReady = true; +}