diff options
author | Carbenium <carbenium@outlook.com> | 2020-07-22 00:19:33 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-01-23 23:59:32 +0100 |
commit | 7847589d9ca35de80dce68ac5cf5cf42c77b39a4 (patch) | |
tree | e25a3dd63dd23b2b0bb86a7ab1e45cc2a592b058 /src/common/Utilities/EventMap.cpp | |
parent | a28bc7faaadb6ef7b69eaa8adeec75c970e6eaf3 (diff) |
EventMap: Switch internal timer over to std::chrono type
Adds the EventMap::Update(Milliseconds time) overload
(cherry picked from commit b9795e44824c7cab58445e4a72d2113ddb451caa)
Diffstat (limited to 'src/common/Utilities/EventMap.cpp')
-rw-r--r-- | src/common/Utilities/EventMap.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/common/Utilities/EventMap.cpp b/src/common/Utilities/EventMap.cpp index f9b0221159e..917ef02b575 100644 --- a/src/common/Utilities/EventMap.cpp +++ b/src/common/Utilities/EventMap.cpp @@ -21,7 +21,7 @@ void EventMap::Reset() { _eventMap.clear(); - _time = 0; + _time = TimePoint::min(); _phase = 0; } @@ -41,7 +41,7 @@ void EventMap::ScheduleEvent(uint32 eventId, Milliseconds time, uint32 group /*= if (phase && phase <= 8) eventId |= (1 << (phase + 23)); - _eventMap.insert(EventStore::value_type(_time + time.count(), eventId)); + _eventMap.insert(EventStore::value_type(_time + time, eventId)); } void EventMap::ScheduleEvent(uint32 eventId, Milliseconds minTime, Milliseconds maxTime, uint32 group /*= 0*/, uint8 phase /*= 0*/) @@ -62,7 +62,7 @@ void EventMap::RescheduleEvent(uint32 eventId, Milliseconds minTime, Millisecond void EventMap::Repeat(Milliseconds time) { - _eventMap.insert(EventStore::value_type(_time + time.count(), _lastEvent)); + _eventMap.insert(EventStore::value_type(_time + time, _lastEvent)); } void EventMap::Repeat(Milliseconds minTime, Milliseconds maxTime) @@ -94,7 +94,7 @@ uint32 EventMap::ExecuteEvent() void EventMap::DelayEvents(Milliseconds delay) { - _time = delay.count() < _time ? _time - delay.count() : 0; + _time = delay < _time - _time.min() ? _time - delay : TimePoint::min(); } void EventMap::DelayEvents(Milliseconds delay, uint32 group) @@ -108,7 +108,7 @@ void EventMap::DelayEvents(Milliseconds delay, uint32 group) { if (itr->second & (1 << (group + 15))) { - delayed.insert(EventStore::value_type(itr->first + delay.count(), itr->second)); + delayed.insert(EventStore::value_type(itr->first + delay, itr->second)); _eventMap.erase(itr++); } else @@ -148,9 +148,9 @@ void EventMap::CancelEventGroup(uint32 group) uint32 EventMap::GetTimeUntilEvent(uint32 eventId) const { - for (std::pair<uint32 const, uint32> const& itr : _eventMap) + for (std::pair<TimePoint const, uint32> const& itr : _eventMap) if (eventId == (itr.second & 0x0000FFFF)) - return itr.first - _time; + return std::chrono::duration_cast<Milliseconds>((itr.first - _time)).count(); return std::numeric_limits<uint32>::max(); } |