#ifndef TIMER_HPP #define TIMER_HPP #include #include #include #include #include #include #include class timer; struct balkjes { int startx; int starty; int yhight; }; class timeraction { public: virtual ~timeraction() = default; virtual void update(const timer &t) = 0; }; class timer { private: double accumulator = 0; int triggeramount = 0; double time_interval = 1; // only display every 1 seconds public: std::string name; int triggercounter = 0; bool is_infinite = false; std::unique_ptr action; bool is_expired = false; //infinite timer timer(std::string name_input, double interval_input, std::unique_ptr action_input ); //limited timer timer(std::string name, double interval_input, int triggeramount, std::unique_ptr action ); // callbackfunc once enough time has accumulated void updatetime(double DeltaTime); }; // manage collection of timers class timermanager { std::vector> timers; std::chrono::steady_clock::time_point prevtime; // initial starttime public: timermanager(); void addtimer(std::unique_ptr input_timer); void updatetimers(); }; #endif /* externalize state */