Initial commit
This commit is contained in:
+30
@@ -0,0 +1,30 @@
|
||||
#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_;
|
||||
};
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user