comparison Time.cpp @ 0:8b8875f5b359

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