src/Timer.hh
author terom
Sun, 07 Dec 2008 21:10:04 +0000
changeset 263 8c999cf4c182
parent 205 905028e58ed1
child 283 7540b0859579
permissions -rw-r--r--
weapon projectile radiuses and fix network play (local_player == NULL, Rope releasing upon being hit
#ifndef TIMER_HH
#define TIMER_HH

#include <ClanLib/core.h>

typedef unsigned long TimeMS;
typedef uint32_t TickCount;

class Timer : public CL_KeepAlive {
    protected:
        // the target tick interval
        TimeMS interval;

        // number of ticks
        TickCount ticks;

        bool enabled;

        // time of last tick
        TimeMS last_tick;

        CL_Signal_v1<TimeMS> _sig_tick;
        
    public:
        /*
         * Interval is in milliseconds
         */
        Timer (TimeMS interval);
        
        /*
         * Returns the tick counter
         */
        TickCount get_ticks (void);
        
        /*
         * Start the timer, this should be called once keepalive starts getting called
         */
        void start (void);
        
    private:
        void keep_alive (void);
    
    public:
        CL_Signal_v1<TimeMS>& sig_tick (void) { return _sig_tick; }
};

#endif