#include #include #include #include #include #include "timer.hpp" using namespace std::chrono; using namespace std; Timer::Timer(size_t triggeramount, function myaction, milliseconds triggerinterval) :triggeramount(triggeramount), timeraction(myaction), triggerinterval(triggerinterval) {} void Timer::add_time(milliseconds deltatime) { accumulator += deltatime; if (accumulator >= triggerinterval) { accumulator -= triggerinterval; timeraction(); triggercount++; if (!isinfinite && triggercount >= triggeramount){ isexpired=true; } } }; void TimerManager::add_timer(size_t triggeramount, function myaction, std::chrono::milliseconds triggerinterval) { Timer mynewtimer(triggeramount, myaction, triggerinterval); timers.push_back(mynewtimer); }; void TimerManager::update_timers() { steady_clock::time_point currenttime = steady_clock::now(); milliseconds deltatime = duration_cast(currenttime-previoustime); for(Timer &mytimer: timers){ mytimer.add_time(deltatime); } previoustime = currenttime; }