#pragma once #include #include #include "../defines.hpp" class CTimer { public: CTimer(std::chrono::system_clock::duration timeout, std::function self, void* data)> cb_, void* data_, bool force); void cancel(); bool passed(); bool canForceUpdate(); float leftMs(); bool cancelled(); void call(ASP self); private: std::function self, void* data)> cb; void* data = nullptr; std::chrono::system_clock::time_point expires; bool wasCancelled = false; bool allowForceUpdate = false; };