mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-15 23:20:36 +01:00
Core/EventProcessor: std::chrono-ify the remaining public API
This commit is contained in:
committed by
Peter Keresztes Schmidt
parent
92a02a5c87
commit
1d8782e356
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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; }
|
||||
|
||||
protected:
|
||||
|
||||
@@ -851,7 +851,7 @@ uint64 Spell::CalculateDelayMomentForDst() const
|
||||
void Spell::RecalculateDelayMomentForDst()
|
||||
{
|
||||
m_delayMoment = CalculateDelayMomentForDst();
|
||||
m_caster->m_Events.ModifyEventTime(_spellEvent, GetDelayStart() + m_delayMoment);
|
||||
m_caster->m_Events.ModifyEventTime(_spellEvent, Milliseconds(GetDelayStart() + m_delayMoment));
|
||||
}
|
||||
|
||||
void Spell::SelectEffectImplicitTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType, uint32& processedEffectMask)
|
||||
@@ -7480,7 +7480,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
|
||||
@@ -7492,7 +7492,7 @@ bool SpellEvent::Execute(uint64 e_time, uint32 p_time)
|
||||
// delaying had just started, record the moment
|
||||
m_Spell->SetDelayStart(e_time);
|
||||
// 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;
|
||||
@@ -7506,7 +7506,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
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -395,7 +395,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);
|
||||
@@ -426,7 +426,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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user