diff options
Diffstat (limited to 'src/common/Utilities/EventMap.cpp')
-rw-r--r-- | src/common/Utilities/EventMap.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/common/Utilities/EventMap.cpp b/src/common/Utilities/EventMap.cpp index de3400b403f..8e09d21ed6d 100644 --- a/src/common/Utilities/EventMap.cpp +++ b/src/common/Utilities/EventMap.cpp @@ -94,7 +94,16 @@ uint32 EventMap::ExecuteEvent() void EventMap::DelayEvents(Milliseconds delay) { - _time = delay < _time - _time.min() ? _time - delay : TimePoint::min(); + if (Empty()) + return; + + EventStore delayed = std::move(_eventMap); + for (EventStore::iterator itr = delayed.begin(); itr != delayed.end();) + { + EventStore::node_type node = delayed.extract(itr++); + node.key() = node.key() + delay; + _eventMap.insert(_eventMap.end(), std::move(node)); + } } void EventMap::DelayEvents(Milliseconds delay, uint32 group) |