#pragma once #include "helper.h" typedef void (*remaining_callback_t)(int8); struct : public CallbackAware { void operator=(int8 value) { remaining = value; if (callback) callback(remaining); } operator int8() { return remaining; } void decrease() { *this = remaining - 1; } private: int8 remaining = 0; } timer;