mirror of
https://github.com/AxioDL/PrimeWorldEditor.git
synced 2025-12-21 10:49:23 +00:00
Initial commit of current work on Prime World Editor
This commit is contained in:
89
Common/CTimer.cpp
Normal file
89
Common/CTimer.cpp
Normal file
@@ -0,0 +1,89 @@
|
||||
#include "CTimer.h"
|
||||
#include <ctime>
|
||||
|
||||
CTimer::CTimer()
|
||||
{
|
||||
mStartTime = 0;
|
||||
mStopTime = 0;
|
||||
mStarted = false;
|
||||
mPaused = false;
|
||||
}
|
||||
|
||||
void CTimer::Start()
|
||||
{
|
||||
if (!mStarted)
|
||||
{
|
||||
mStartTime = GlobalTime();
|
||||
mStarted = true;
|
||||
mPaused = false;
|
||||
mPauseStartTime = 0;
|
||||
mTotalPauseTime = 0;
|
||||
mStopTime = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void CTimer::Start(double StartTime)
|
||||
{
|
||||
if (!mStarted)
|
||||
{
|
||||
mStartTime = GlobalTime() - StartTime;
|
||||
mStarted = true;
|
||||
mPaused = false;
|
||||
mPauseStartTime = 0;
|
||||
mTotalPauseTime = 0;
|
||||
mStopTime = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void CTimer::Restart()
|
||||
{
|
||||
mStarted = false;
|
||||
Start();
|
||||
}
|
||||
|
||||
double CTimer::Stop()
|
||||
{
|
||||
mStopTime = Time();
|
||||
mStarted = false;
|
||||
mPaused = false;
|
||||
return mStopTime;
|
||||
}
|
||||
|
||||
double CTimer::Pause()
|
||||
{
|
||||
mPauseStartTime = GlobalTime();
|
||||
mPaused = true;
|
||||
return Time();
|
||||
}
|
||||
|
||||
bool CTimer::IsPaused()
|
||||
{
|
||||
return mPaused;
|
||||
}
|
||||
|
||||
void CTimer::Resume()
|
||||
{
|
||||
if (mPaused)
|
||||
{
|
||||
mTotalPauseTime += GlobalTime() - mPauseStartTime;
|
||||
mPaused = false;
|
||||
}
|
||||
}
|
||||
|
||||
double CTimer::Time()
|
||||
{
|
||||
if (mStarted)
|
||||
{
|
||||
double CurrentPauseTime = 0;
|
||||
if (mPaused) CurrentPauseTime = GlobalTime() - mPauseStartTime;
|
||||
return GlobalTime() - mStartTime - mTotalPauseTime - CurrentPauseTime;
|
||||
}
|
||||
|
||||
else
|
||||
return mStopTime;
|
||||
}
|
||||
|
||||
double CTimer::GlobalTime()
|
||||
{
|
||||
return (double) clock() / CLOCKS_PER_SEC;
|
||||
}
|
||||
Reference in New Issue
Block a user