aboutsummaryrefslogtreecommitdiff
path: root/src/common/Utilities/EventMap.cpp
diff options
context:
space:
mode:
authorCarbenium <carbenium@outlook.com>2020-07-22 00:19:33 +0200
committerShauren <shauren.trinity@gmail.com>2022-01-23 23:59:32 +0100
commit7847589d9ca35de80dce68ac5cf5cf42c77b39a4 (patch)
treee25a3dd63dd23b2b0bb86a7ab1e45cc2a592b058 /src/common/Utilities/EventMap.cpp
parenta28bc7faaadb6ef7b69eaa8adeec75c970e6eaf3 (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.cpp14
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();
}