arrays are dynamic now, fixed bugs, more code cleanups
[supertux.git] / src / timer.c
1 //
2 // C Implementation: timer
3 //
4 // Description: 
5 //
6 //
7 // Author: Tobias Glaesser <tobi.web@gmx.de>, (C) 2004
8 //
9 // Copyright: See COPYING file that comes with this distribution
10 //
11 //
12
13 #include <SDL/SDL.h>
14 #include "defines.h"
15 #include "timer.h"
16
17 void timer_init(timer_type* ptimer)
18 {
19   ptimer->period = 0;
20   ptimer->time = 0;
21 }
22
23 void timer_start(timer_type* ptimer, unsigned int period)
24 {
25   ptimer->time = SDL_GetTicks();
26   ptimer->period = period;
27 }
28
29 void timer_stop(timer_type* ptimer)
30 {
31  timer_init(ptimer);
32 }
33
34 int timer_check(timer_type* ptimer)
35 {
36   if(ptimer->time != 0 && ptimer->time + ptimer->period > SDL_GetTicks())
37     return YES;
38   else
39     {
40       ptimer->time = 0;
41       return NO;
42     }
43 }
44
45 int timer_started(timer_type* ptimer)
46 {
47   if(ptimer->time != 0)
48     return YES;
49   else
50     return NO;
51 }
52
53 int timer_get_left(timer_type* ptimer)
54 {
55   return (ptimer->period - (SDL_GetTicks() - ptimer->time));
56 }
57
58 int timer_get_gone(timer_type* ptimer)
59 {
60   return (SDL_GetTicks() - ptimer->time);
61 }