diff options
author | Carbenium <carbenium@outlook.com> | 2020-07-25 23:51:30 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-01-24 12:06:56 +0100 |
commit | a7cbb16229cb48057fd8ef38b6db205beeb30b4e (patch) | |
tree | 9b6dc7ce0a9f0ebbdaf26cfdac2e2c2c814e7687 /src | |
parent | eeffb310de3f91a1c456a3c118eb01311557a00b (diff) |
Core/EventProcessor: std::chrono-ify the remaining public API
(cherry picked from commit 1d8782e3566393f71fbc091de57c96a9a15972cb)
Diffstat (limited to 'src')
-rw-r--r-- | src/common/Utilities/EventProcessor.cpp | 12 | ||||
-rw-r--r-- | src/common/Utilities/EventProcessor.h | 12 | ||||
-rw-r--r-- | src/server/game/Spells/Spell.cpp | 8 | ||||
-rw-r--r-- | src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp | 4 | ||||
-rw-r--r-- | src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp | 4 |
5 files changed, 20 insertions, 20 deletions
diff --git a/src/common/Utilities/EventProcessor.cpp b/src/common/Utilities/EventProcessor.cpp index e48b622822d..3789810787d 100644 --- a/src/common/Utilities/EventProcessor.cpp +++ b/src/common/Utilities/EventProcessor.cpp @@ -110,24 +110,24 @@ void EventProcessor::KillAllEvents(bool force) m_events.clear(); } -void EventProcessor::AddEvent(BasicEvent* event, uint64 e_time, bool set_addtime) +void EventProcessor::AddEvent(BasicEvent* event, Milliseconds e_time, bool set_addtime) { if (set_addtime) event->m_addTime = m_time; - event->m_execTime = e_time; - m_events.insert(std::pair<uint64, BasicEvent*>(e_time, event)); + event->m_execTime = e_time.count(); + m_events.insert(std::pair<uint64, BasicEvent*>(e_time.count(), event)); } -void EventProcessor::ModifyEventTime(BasicEvent* event, uint64 newTime) +void EventProcessor::ModifyEventTime(BasicEvent* event, Milliseconds newTime) { for (auto itr = m_events.begin(); itr != m_events.end(); ++itr) { if (itr->second != event) continue; - event->m_execTime = newTime; + event->m_execTime = newTime.count(); m_events.erase(itr); - m_events.insert(std::pair<uint64, BasicEvent*>(newTime, event)); + m_events.insert(std::pair<uint64, BasicEvent*>(newTime.count(), event)); break; } } diff --git a/src/common/Utilities/EventProcessor.h b/src/common/Utilities/EventProcessor.h index 1d734aa203f..3a5cea0bd94 100644 --- a/src/common/Utilities/EventProcessor.h +++ b/src/common/Utilities/EventProcessor.h @@ -99,17 +99,17 @@ class TC_COMMON_API EventProcessor void Update(uint32 p_time); void KillAllEvents(bool force); - void AddEvent(BasicEvent* event, uint64 e_time, bool set_addtime = true); - void AddEvent(BasicEvent* event, Milliseconds e_time, bool set_addtime = true) { AddEvent(event, e_time.count(), set_addtime); }; + + void AddEvent(BasicEvent* event, Milliseconds e_time, bool set_addtime = true); template<typename T> - is_lambda_event<T> AddEvent(T&& event, uint64 e_time, bool set_addtime = true) { AddEvent(new LambdaBasicEvent<T>(std::move(event)), e_time, set_addtime); } - void AddEventAtOffset(BasicEvent* event, Milliseconds offset) { AddEvent(event, CalculateTime(offset).count()); } - void AddEventAtOffset(BasicEvent* event, Milliseconds offset, Milliseconds offset2) { AddEvent(event, CalculateTime(randtime(offset, offset2)).count()); } + is_lambda_event<T> AddEvent(T&& event, Milliseconds e_time, bool set_addtime = true) { AddEvent(new LambdaBasicEvent<T>(std::move(event)), e_time, set_addtime); } + void AddEventAtOffset(BasicEvent* event, Milliseconds offset) { AddEvent(event, CalculateTime(offset)); } + void AddEventAtOffset(BasicEvent* event, Milliseconds offset, Milliseconds offset2) { AddEvent(event, CalculateTime(randtime(offset, offset2))); } template<typename T> is_lambda_event<T> AddEventAtOffset(T&& event, Milliseconds offset) { AddEventAtOffset(new LambdaBasicEvent<T>(std::move(event)), offset); } template<typename T> is_lambda_event<T> AddEventAtOffset(T&& event, Milliseconds offset, Milliseconds offset2) { AddEventAtOffset(new LambdaBasicEvent<T>(std::move(event)), offset, offset2); } - void ModifyEventTime(BasicEvent* event, uint64 newTime); + void ModifyEventTime(BasicEvent* event, Milliseconds newTime); Milliseconds CalculateTime(Milliseconds t_offset) const { return Milliseconds(m_time) + t_offset; } std::multimap<uint64, BasicEvent*> const& GetEvents() const { return m_events; } diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 7d26474c4c1..d1415153575 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -828,7 +828,7 @@ uint64 Spell::CalculateDelayMomentForDst(float launchDelay) const void Spell::RecalculateDelayMomentForDst() { m_delayMoment = CalculateDelayMomentForDst(0.0f); - m_caster->m_Events.ModifyEventTime(_spellEvent, GetDelayStart() + m_delayMoment); + m_caster->m_Events.ModifyEventTime(_spellEvent, Milliseconds(GetDelayStart() + m_delayMoment)); } void Spell::SelectEffectImplicitTargets(SpellEffectInfo const& spellEffectInfo, SpellImplicitTargetInfo const& targetType, uint32& processedEffectMask) @@ -7838,7 +7838,7 @@ bool SpellEvent::Execute(uint64 e_time, uint32 p_time) if (n_offset) { // re-add us to the queue - m_Spell->GetCaster()->m_Events.AddEvent(this, m_Spell->GetDelayStart() + n_offset, false); + m_Spell->GetCaster()->m_Events.AddEvent(this, Milliseconds(m_Spell->GetDelayStart() + n_offset), false); return false; // event not complete } // event complete @@ -7856,7 +7856,7 @@ bool SpellEvent::Execute(uint64 e_time, uint32 p_time) else ASSERT(n_offset == m_Spell->GetDelayMoment()); // re-plan the event for the delay moment - m_Spell->GetCaster()->m_Events.AddEvent(this, e_time + m_Spell->GetDelayMoment(), false); + m_Spell->GetCaster()->m_Events.AddEvent(this, Milliseconds(e_time + m_Spell->GetDelayMoment()), false); return false; // event not complete } break; @@ -7870,7 +7870,7 @@ bool SpellEvent::Execute(uint64 e_time, uint32 p_time) } // spell processing not complete, plan event on the next update interval - m_Spell->GetCaster()->m_Events.AddEvent(this, e_time + 1, false); + m_Spell->GetCaster()->m_Events.AddEvent(this, Milliseconds(e_time + 1), false); return false; // event not complete } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp index 45dadc8122d..0ba329d82a5 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp @@ -243,7 +243,7 @@ class ActivateLivingConstellation : public BasicEvent return true; // delete event _owner->CastSpell(nullptr, SPELL_TRIGGER_3_ADDS, TRIGGERED_FULL_MASK); - _owner->m_Events.AddEvent(this, execTime + urand(45000, 50000)); + _owner->m_Events.AddEvent(this, Milliseconds(execTime) + randtime(45s, 50s)); return false; } @@ -275,7 +275,7 @@ class SummonUnleashedDarkMatter : public BasicEvent bool Execute(uint64 execTime, uint32 /*diff*/) override { _caster->CastSpell(nullptr, SPELL_SUMMON_UNLEASHED_DARK_MATTER, TRIGGERED_FULL_MASK); - _caster->m_Events.AddEvent(this, execTime + 30000); + _caster->m_Events.AddEvent(this, Milliseconds(execTime) + 30s); return false; } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp index 06ae5f3ac0f..2d523415e21 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp @@ -392,7 +392,7 @@ class TrashJumpEvent : public BasicEvent case 0: _owner->CastSpell(nullptr, SPELL_LEAP); ++_stage; - _owner->m_Events.AddEvent(this, eventTime + 2000); + _owner->m_Events.AddEvent(this, Milliseconds(eventTime) + 2s); return false; case 1: _owner->SetReactState(REACT_AGGRESSIVE); @@ -423,7 +423,7 @@ class LightningFieldEvent : public BasicEvent if (instance->GetBossState(BOSS_THORIM) == IN_PROGRESS) { _owner->CastSpell(nullptr, SPELL_LIGHTNING_FIELD); - _owner->m_Events.AddEvent(this, eventTime + 1000); + _owner->m_Events.AddEvent(this, Milliseconds(eventTime) + 1s); return false; } } |