Mercurial > mm7
comparison Engine/Timer.cpp @ 2499:68cdef6879a0
engine folder
author | Ritor1 |
---|---|
date | Fri, 19 Sep 2014 02:57:42 +0600 |
parents | |
children | a77c34acdbc9 |
comparison
equal
deleted
inserted
replaced
2498:92eeeb5200f2 | 2499:68cdef6879a0 |
---|---|
1 #define _CRTDBG_MAP_ALLOC | |
2 #include <stdlib.h> | |
3 #include <crtdbg.h> | |
4 | |
5 #define _CRT_SECURE_NO_WARNINGS | |
6 | |
7 #include "Timer.h" | |
8 #include "Keyboard.h" | |
9 | |
10 #include "OSAPI.h" | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 Timer *pMiscTimer = new Timer; | |
17 Timer *pEventTimer; | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 //----- (00426317) -------------------------------------------------------- | |
25 unsigned __int64 Timer::Time() | |
26 { | |
27 unsigned __int64 v2 = TimeQuant * timeGetTime() / 1000; | |
28 if (v2 < uStartTime) | |
29 uStartTime = 0; | |
30 return v2; | |
31 } | |
32 | |
33 | |
34 | |
35 //----- (00426349) -------------------------------------------------------- | |
36 void Timer::Pause() | |
37 { | |
38 if (!bPaused) | |
39 { | |
40 uStopTime = Time(); | |
41 bPaused = true; | |
42 } | |
43 } | |
44 | |
45 //----- (00426363) -------------------------------------------------------- | |
46 void Timer::Resume() | |
47 { | |
48 if (bPaused) | |
49 { | |
50 pKeyActionMap->ResetKeys();//Unhandled application exception | |
51 | |
52 bPaused = 0; | |
53 uStartTime = Time(); | |
54 } | |
55 } | |
56 | |
57 //----- (00426386) -------------------------------------------------------- | |
58 void Timer::TrackGameTime() | |
59 { | |
60 if (!bTackGameTime) | |
61 { | |
62 uGameTimeStart = Time(); | |
63 bTackGameTime = true; | |
64 } | |
65 } | |
66 | |
67 | |
68 | |
69 //----- (004263A0) -------------------------------------------------------- | |
70 void Timer::StopGameTime() | |
71 { | |
72 if (bTackGameTime) | |
73 { | |
74 bTackGameTime = 0; | |
75 uStartTime = Time(); | |
76 } | |
77 } | |
78 | |
79 //----- (004263B7) -------------------------------------------------------- | |
80 void Timer::Update() | |
81 { | |
82 //Timer *v1; // esi@1 | |
83 //unsigned int v2; // eax@2 | |
84 //signed int v3; // eax@3 | |
85 //char v4; // zf@5 | |
86 | |
87 | |
88 unsigned __int64 new_time = Time(); | |
89 while (new_time <= uStartTime) | |
90 new_time = Time(); | |
91 | |
92 uTimeElapsed = new_time - uStartTime; | |
93 uStartTime = new_time; | |
94 | |
95 if (uTimeElapsed > 32) | |
96 uTimeElapsed = 32; | |
97 | |
98 if (!bPaused && !bTackGameTime) | |
99 uTotalGameTimeElapsed += uTimeElapsed; | |
100 dt_in_some_format = (uTimeElapsed << 16) / 128; | |
101 } | |
102 | |
103 //----- (00426402) -------------------------------------------------------- | |
104 void Timer::Initialize() | |
105 { | |
106 uTotalGameTimeElapsed = 0; | |
107 bReady = true; | |
108 } |