Skip to content

Commit ec83f90

Browse files
committed
ChaosMod: Improve effect condition logic
1 parent e9b45dd commit ec83f90

File tree

3 files changed

+10
-8
lines changed

3 files changed

+10
-8
lines changed

ChaosMod/Components/EffectDispatcher.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -538,9 +538,9 @@ void EffectDispatcher::DispatchRandomEffect(DispatchEffectFlags dispatchEffectFl
538538
return;
539539

540540
std::unordered_map<EffectIdentifier, EffectData, EffectsIdentifierHasher> choosableEffects;
541-
for (const auto &[effectId, effectData] : g_EnabledEffects)
542-
if (!effectData.IsMeta() && !effectData.IsUtility() && !effectData.IsHidden())
543-
choosableEffects.emplace(effectId, effectData);
541+
for (const auto &effectData : GetFilteredEnabledEffects())
542+
if (!effectData->IsMeta() && !effectData->IsUtility() && !effectData->IsHidden())
543+
choosableEffects.emplace(effectData->Id, *effectData);
544544

545545
float totalWeight = 0.f;
546546
for (const auto &[effectId, effectData] : choosableEffects)

ChaosMod/Components/EffectShortcuts.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77

88
EffectShortcuts::EffectShortcuts() : Component()
99
{
10-
for (const auto &[effectId, effectData] : g_EnabledEffects)
11-
if (effectData.ShortcutKeycode > 0 && !effectData.IsHidden())
12-
m_AvailableShortcuts[effectData.ShortcutKeycode].push_back(effectId);
10+
for (const auto &effectData : GetFilteredEnabledEffects())
11+
if (effectData->ShortcutKeycode > 0 && !effectData->IsHidden())
12+
m_AvailableShortcuts[effectData->ShortcutKeycode].push_back(effectData->Id);
1313
}
1414

1515
void EffectShortcuts::OnRun()

ChaosMod/Components/Voting.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -304,8 +304,10 @@ void Voting::OnRun()
304304

305305
bool Voting::Init()
306306
{
307-
if (std::count_if(g_EnabledEffects.begin(), g_EnabledEffects.end(),
308-
[](const auto &pair) { return !pair.second.IsExcludedFromVoting(); })
307+
const auto enabledEffects = GetFilteredEnabledEffects();
308+
309+
if (std::count_if(enabledEffects.begin(), enabledEffects.end(),
310+
[](const auto &effectData) { return !effectData->IsExcludedFromVoting(); })
309311
< 3)
310312
{
311313
ErrorOutWithMsg("You need at least 3 enabled effects (which are not excluded from voting) to enable voting."

0 commit comments

Comments
 (0)