2 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
3 SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO
4 END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
5 ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
6 IN USING, DISPLAYING, AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
7 SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
8 FREE PURPOSES. IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
9 CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES. THE END-USER UNDERSTANDS
10 AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.
11 COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
15 #pragma off (unreferenced)
16 static char rcsid[] = "$Id: timer.c,v 1.1.1.1 2001-01-19 03:30:15 bradleyb Exp $";
17 #pragma on (unreferenced)
25 #define WIN32_LEAN_AND_MEAN
29 #define TARGET_RESOLUTION 1
31 //@@ static UINT TimerResolution = 0;
32 //@@ static UINT GameTimer = 0;
33 //@@ #define GAME_TIMER_RESOLUTION (TimerResolution<<1)
36 int timer_initialized=0;
38 static UINT GameSystemTime = 0;
39 static UINT GameStartTime = 0;
42 void timer_normalize();
44 //@@ void PASCAL timer_callback(UINT wTimerID, UINT msg, DWORD dwUser,
45 //@@ DWORD dw1, DWORD dw2)
47 //@@ static int last_time = 0;
51 //@@ time = timeGetTime()-GameStartTime;
53 //@@ if (timeGetTime() < GameStartTime)
54 //@@ GameStartTime = GameStartTime - timeGetTime();
58 void timer_normalize()
62 new_time = timeGetTime();
64 if (new_time < GameStartTime) {
65 GameStartTime = new_time;
69 if ((new_time - GameStartTime) > 0x01808580) // 7 hours
70 GameStartTime = new_time;
76 void timer_init(int i)
80 Assert(GameStartTime == 0);
82 timer_initialized = 1;
85 GameStartTime = timeGetTime();
93 Assert(GameStartTime > 0);
95 timer_initialized = 0;
102 fix timer_get_fixed_seconds()
109 time = timeGetTime() - GameStartTime;
111 val = fixdiv(time,1000);
116 fix timer_get_fixed_secondsX()
123 time = timeGetTime() - GameStartTime;
125 val = fixdiv(time,1000);
130 fix timer_get_approx_seconds()
137 time = timeGetTime() - GameStartTime;
139 val = fixdiv(time,1000);
144 void timer_set_function( void _far * function ) {}
147 void timer_delay(fix seconds)
149 unsigned int numticks = timeGetTime() + (seconds>>16)*1000 +
150 (((seconds & 0x0000ffff)*1000)/65535);
151 while (GetTickCount() < numticks);