Files
jam-game/src/Alarm.h
T

30 lines
470 B
C++
Raw Normal View History

2025-07-17 21:52:37 +03:00
#pragma once
#include "Common.h"
#include <cstdint>
#include <queue>
#include <unordered_map>
namespace NGame {
class TAlarm {
public:
using TId = int;
void Set(TId id, std::uint32_t millis);
void Unset(TId id);
void Update(std::uint32_t delta);
bool Next(TId& id);
private:
struct TData {
std::uint32_t Target;
std::uint32_t Current;
};
std::unordered_map<TId, TData> Alarms_;
std::queue<TId> DueAlarms_;
};
}