timermanager now creates its own timers

This commit is contained in:
2026-08-12 01:43:50 +02:00
parent e6e170a42a
commit 8a60e45cd1
3 changed files with 34 additions and 23 deletions
+7 -6
View File
@@ -8,8 +8,8 @@
using namespace std::chrono;
using namespace std;
Timer::Timer(string name, int triggercount, function<bool()> myaction, milliseconds triggerinterval)
: name(name), triggeramount(triggercount), timeraction(myaction), triggerinterval(triggerinterval) {}
Timer::Timer(size_t triggeramount, function<bool()> myaction, milliseconds triggerinterval)
:triggeramount(triggeramount), timeraction(myaction), triggerinterval(triggerinterval) {}
void Timer::add_time(milliseconds deltatime) {
accumulator += deltatime;
@@ -23,16 +23,17 @@ void Timer::add_time(milliseconds deltatime) {
}
};
void TimerManager::add_timer(unique_ptr<Timer> newtimer) {
timers.push_back(std::move(newtimer));
void TimerManager::add_timer(size_t triggeramount, function<bool()> 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<milliseconds>(currenttime-previoustime);
for(unique_ptr<Timer> &mytimer: timers){
mytimer->add_time(deltatime);
for(Timer &mytimer: timers){
mytimer.add_time(deltatime);
}
previoustime = currenttime;
}