#ifndef SUPERTUX_TIMER_H
#define SUPERTUX_TIMER_H
-extern unsigned int st_pause_ticks, st_pause_count;
-
-unsigned int st_get_ticks(void);
-void st_pause_ticks_init(void);
-void st_pause_ticks_start(void);
-void st_pause_ticks_stop(void);
-bool st_pause_ticks_started(void);
-
-class Timer
-{
- public:
- unsigned int period;
- unsigned int time;
- unsigned int (*get_ticks) (void);
-
- public:
- Timer();
-
- void init(bool st_ticks);
- void start(unsigned int period);
- void stop();
-
- /*======================================================================
- return: NO = the timer is not started
- or it is over
- YES = otherwise
- ======================================================================*/
- int check();
- int started();
-
- /*======================================================================
- return: the time left (in millisecond)
- note : the returned value can be negative
- ======================================================================*/
- int get_left();
-
- int get_gone();
- void fwrite(FILE* fi);
- void fread(FILE* fi);
-};
+namespace SuperTux
+ {
+
+ extern unsigned int st_pause_ticks, st_pause_count;
+
+ /// Time a game is running. (Non-pause mode, etc.)
+ unsigned int st_get_ticks(void);
+
+ void st_pause_ticks_init(void);
+ void st_pause_ticks_start(void);
+ void st_pause_ticks_stop(void);
+ bool st_pause_ticks_started(void);
+
+ /// Timer
+ /** This class can be used as stop watch
+ for example. It's also possible to calculate
+ frames per seconds and things like that with it.
+ It's a general timing class, but it
+ can esspecially be used together with st_get_ticks(). */
+ class Timer
+ {
+ public:
+ unsigned int period;
+ unsigned int time;
+ unsigned int (*get_ticks) (void);
+
+ public:
+ Timer();
+
+ /// Initialize the timer.
+ /** @param st_ticks: If true internally st_get_ticks() is used, else SDL_GetTicks() is used. */
+ void init(bool st_ticks);
+
+ /// Start the timer with the given period (in ms).
+ void start(unsigned int period);
+
+ /// Stop the timer.
+ void stop();
+
+ /// Check if the timer is started and within its period.
+ /** If one of these requirements isn't the case the timer
+ is automatically reseted. */
+ int check();
+
+ /// Is the timer started?
+ int started();
+
+ /// Get time left until the last timing period is finished.
+ /** The returned value can be negative. */
+ int get_left();
+
+ /// Get the gone time, since last timer start.
+ /** The returned value can be negative. */
+ int get_gone();
+
+ /// Write the timer value to a file (For save games in example).
+ void fwrite(FILE* fi);
+ /// Read a timer value from a file (From save games in example).
+ void fread(FILE* fi);
+ };
+
+} //namespace SuperTux
#endif /*SUPERTUX_TIMER_H*/