X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=lib%2Fspecial%2Ftimer.h;h=324c9b1c11c4b7ebc28a90988c291457a125123a;hb=4c719b73eaa9de3b8520cff3ac0b9fb8e816d2b4;hp=734c896a07ecc6251a7ab95de0c5f8e8956d1c03;hpb=107229850b95120c161024677894a1faec3f4ef9;p=supertux.git diff --git a/lib/special/timer.h b/lib/special/timer.h index 734c896a0..324c9b1c1 100644 --- a/lib/special/timer.h +++ b/lib/special/timer.h @@ -23,12 +23,20 @@ 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: @@ -39,26 +47,35 @@ class Timer 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(); - /*====================================================================== - return: NO = the timer is not started - or it is over - YES = otherwise - ======================================================================*/ + /// 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(); - /*====================================================================== - return: the time left (in millisecond) - note : the returned value can be negative - ======================================================================*/ + /// 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); };