mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Core/Scripts: Add start/fail asset values from criteria to valid game event ids
Closes #29447
This commit is contained in:
@@ -4539,11 +4539,21 @@ CriteriaList const& CriteriaMgr::GetScenarioCriteriaByTypeAndScenario(CriteriaTy
|
||||
return EmptyCriteriaList;
|
||||
}
|
||||
|
||||
std::unordered_map<int32, CriteriaList> const& CriteriaMgr::GetCriteriaByStartEvent(CriteriaStartEvent startEvent) const
|
||||
{
|
||||
return _criteriasByStartEvent[size_t(startEvent)];
|
||||
}
|
||||
|
||||
CriteriaList const* CriteriaMgr::GetCriteriaByStartEvent(CriteriaStartEvent startEvent, int32 asset) const
|
||||
{
|
||||
return Trinity::Containers::MapGetValuePtr(_criteriasByStartEvent[size_t(startEvent)], asset);
|
||||
}
|
||||
|
||||
std::unordered_map<int32, CriteriaList> const& CriteriaMgr::GetCriteriaByFailEvent(CriteriaFailEvent failEvent) const
|
||||
{
|
||||
return _criteriasByFailEvent[size_t(failEvent)];
|
||||
}
|
||||
|
||||
CriteriaList const* CriteriaMgr::GetCriteriaByFailEvent(CriteriaFailEvent failEvent, int32 asset) const
|
||||
{
|
||||
return Trinity::Containers::MapGetValuePtr(_criteriasByFailEvent[size_t(failEvent)], asset);
|
||||
|
||||
@@ -349,8 +349,10 @@ public:
|
||||
return itr != _criteriaTreeByCriteria.end() ? &itr->second : nullptr;
|
||||
}
|
||||
|
||||
std::unordered_map<int32, CriteriaList> const& GetCriteriaByStartEvent(CriteriaStartEvent startEvent) const;
|
||||
CriteriaList const* GetCriteriaByStartEvent(CriteriaStartEvent startEvent, int32 asset) const;
|
||||
|
||||
std::unordered_map<int32, CriteriaList> const& GetCriteriaByFailEvent(CriteriaFailEvent failEvent) const;
|
||||
CriteriaList const* GetCriteriaByFailEvent(CriteriaFailEvent failEvent, int32 asset) const;
|
||||
|
||||
CriteriaDataSet const* GetCriteriaDataSet(Criteria const* Criteria) const
|
||||
|
||||
@@ -259,6 +259,7 @@ TC_GAME_API extern DB2Storage<SummonPropertiesEntry> sSummonPrope
|
||||
TC_GAME_API extern DB2Storage<TalentEntry> sTalentStore;
|
||||
TC_GAME_API extern DB2Storage<TaxiNodesEntry> sTaxiNodesStore;
|
||||
TC_GAME_API extern DB2Storage<TaxiPathEntry> sTaxiPathStore;
|
||||
TC_GAME_API extern DB2Storage<TaxiPathNodeEntry> sTaxiPathNodeStore;
|
||||
TC_GAME_API extern DB2Storage<TraitCondEntry> sTraitCondStore;
|
||||
TC_GAME_API extern DB2Storage<TraitCostEntry> sTraitCostStore;
|
||||
TC_GAME_API extern DB2Storage<TraitCurrencyEntry> sTraitCurrencyStore;
|
||||
|
||||
@@ -5873,26 +5873,18 @@ void ObjectMgr::LoadEventSet()
|
||||
}
|
||||
|
||||
// Load all possible event ids from spells
|
||||
for (SpellNameEntry const* spellNameEntry : sSpellNameStore)
|
||||
if (SpellInfo const* spell = sSpellMgr->GetSpellInfo(spellNameEntry->ID, DIFFICULTY_NONE))
|
||||
for (SpellEffectInfo const& spellEffectInfo : spell->GetEffects())
|
||||
if (spellEffectInfo.IsEffect(SPELL_EFFECT_SEND_EVENT))
|
||||
if (spellEffectInfo.MiscValue)
|
||||
_eventStore.insert(spellEffectInfo.MiscValue);
|
||||
for (SpellEffectEntry const* spellEffect : sSpellEffectStore)
|
||||
if (spellEffect->Effect == SPELL_EFFECT_SEND_EVENT && spellEffect->EffectMiscValue[0])
|
||||
_eventStore.insert(spellEffect->EffectMiscValue[0]);
|
||||
|
||||
// Load all possible event ids from taxi path nodes
|
||||
for (size_t path_idx = 0; path_idx < sTaxiPathNodesByPath.size(); ++path_idx)
|
||||
for (TaxiPathNodeEntry const* node : sTaxiPathNodeStore)
|
||||
{
|
||||
for (size_t node_idx = 0; node_idx < sTaxiPathNodesByPath[path_idx].size(); ++node_idx)
|
||||
{
|
||||
TaxiPathNodeEntry const* node = sTaxiPathNodesByPath[path_idx][node_idx];
|
||||
if (node->ArrivalEventID)
|
||||
_eventStore.insert(node->ArrivalEventID);
|
||||
|
||||
if (node->ArrivalEventID)
|
||||
_eventStore.insert(node->ArrivalEventID);
|
||||
|
||||
if (node->DepartureEventID)
|
||||
_eventStore.insert(node->DepartureEventID);
|
||||
}
|
||||
if (node->DepartureEventID)
|
||||
_eventStore.insert(node->DepartureEventID);
|
||||
}
|
||||
|
||||
// Load all possible event ids from criterias
|
||||
@@ -5914,6 +5906,14 @@ void ObjectMgr::LoadEventSet()
|
||||
for (ScenarioEntry const* scenario : sScenarioStore)
|
||||
for (CriteriaType criteriaType : eventCriteriaTypes)
|
||||
addCriteriaEventsToStore(sCriteriaMgr->GetScenarioCriteriaByTypeAndScenario(criteriaType, scenario->ID));
|
||||
|
||||
for (auto const& [gameEventId, _] : sCriteriaMgr->GetCriteriaByStartEvent(CriteriaStartEvent::SendEvent))
|
||||
if (gameEventId)
|
||||
_eventStore.insert(gameEventId);
|
||||
|
||||
for (auto const& [gameEventId, _] : sCriteriaMgr->GetCriteriaByFailEvent(CriteriaFailEvent::SendEvent))
|
||||
if (gameEventId)
|
||||
_eventStore.insert(gameEventId);
|
||||
}
|
||||
|
||||
void ObjectMgr::LoadEventScripts()
|
||||
|
||||
Reference in New Issue
Block a user