-
Notifications
You must be signed in to change notification settings - Fork 0
/
ctTimer.cpp
63 lines (55 loc) · 1.45 KB
/
ctTimer.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include "ctTimer.h"
#include "ctTime.h"
ctTimer::ctTimer() : m_isAlive(0)
{
}
void ctTimer::Draw()
{}
void ctTimer::Update()
{
if(m_isAlive)
{
//TODO: NEED TEST FOR FREEZ UNFREEZ
//-------------------------------------------------------------------------------------------------
if(!IsFreezable() || !IsFreezed())
{
if(m_counter > ctTime::GetTime()->GetDeltaTime()) m_counter -= ctTime::GetTime()->GetDeltaTime();
else m_counter = 0;
}
//-------------------------------------------------------------------------------------------------
if( m_counter <= 0)//(m_startTime + m_lifeTime) < ctTime::GetTime()->GetMiliSecsSinceEpoch() )
{
if(m_delegat.IsHasActions())
{
m_delegat.Call();
}
if(m_isCyclic)
{
m_counter = m_lifeTime;
//m_startTime = ctTime::GetTime()->GetMiliSecsSinceEpoch();
}
else
{
m_isAlive = false;
}
}
}
}
void ctTimer::Init()
{}
void ctTimer::SetTimer(quint64 t_lifeTime, bool t_isCyclic)
{
m_lifeTime = t_lifeTime;
m_counter = m_lifeTime;
m_isAlive = true;
m_startTime = ctTime::GetTime()->GetMiliSecsSinceEpoch();
m_isCyclic = t_isCyclic;
}
ctFastDelegat* ctTimer::GetDelegat()
{
return &m_delegat;
}
void ctTimer::StopTimer()
{
m_isAlive = false;
}