JKSV/source/sys/Timer.cpp
2025-09-04 15:34:43 -04:00

27 lines
741 B
C++

#include "sys/Timer.hpp"
#include "logging/logger.hpp"
#include <SDL2/SDL.h>
sys::Timer::Timer(uint64_t triggerTicks) noexcept { Timer::start(triggerTicks); }
void sys::Timer::start(uint64_t triggerTicks) noexcept
{
m_triggerTicks = triggerTicks;
m_startingTicks = SDL_GetTicks64();
}
bool sys::Timer::is_triggered() noexcept
{
const uint64_t currentTicks = SDL_GetTicks64();
const bool started = m_startingTicks != 0 && m_triggerTicks != 0;
const bool triggered = started && (currentTicks - m_startingTicks) >= m_triggerTicks;
if (!triggered) { return false; }
m_startingTicks = currentTicks;
return true;
}
void sys::Timer::restart() noexcept { m_startingTicks = SDL_GetTicks64(); }