Skip to content

Commit

Permalink
Merge pull request liyunfan1223#419 from liyunfan1223/fix-trigger
Browse files Browse the repository at this point in the history
Fix triggers bug
  • Loading branch information
liyunfan1223 authored Aug 1, 2024
2 parents 8391f65 + e1e51f5 commit 82ee478
Showing 1 changed file with 15 additions and 13 deletions.
28 changes: 15 additions & 13 deletions src/strategy/Engine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -470,7 +470,7 @@ bool Engine::HasStrategy(std::string const name)

void Engine::ProcessTriggers(bool minimal)
{
// std::unordered_map<Trigger*, Event> fires;
std::unordered_map<Trigger*, Event> fires;
for (std::vector<TriggerNode*>::iterator i = triggers.begin(); i != triggers.end(); i++)
{
TriggerNode* node = *i;
Expand All @@ -486,7 +486,10 @@ void Engine::ProcessTriggers(bool minimal)

if (!trigger)
continue;


if (fires.find(trigger) != fires.end())
continue;

if (testMode || trigger->needCheck())
{
if (minimal && node->getFirstRelevance() < 100)
Expand All @@ -500,22 +503,21 @@ void Engine::ProcessTriggers(bool minimal)
if (!event)
continue;

// fires[trigger] = event;
fires[trigger] = event;
LogAction("T:%s", trigger->getName().c_str());
MultiplyAndPush(node->getHandlers(), 0.0f, false, event, "trigger");
}
}

// for (std::vector<TriggerNode*>::iterator i = triggers.begin(); i != triggers.end(); i++)
// {
// TriggerNode* node = *i;
// Trigger* trigger = node->getTrigger();
// if (fires.find(trigger) == fires.end())
// continue;

// Event event = fires[trigger];
for (std::vector<TriggerNode*>::iterator i = triggers.begin(); i != triggers.end(); i++)
{
TriggerNode* node = *i;
Trigger* trigger = node->getTrigger();
if (fires.find(trigger) == fires.end())
continue;

// }
Event event = fires[trigger];
MultiplyAndPush(node->getHandlers(), 0.0f, false, event, "trigger");
}

for (std::vector<TriggerNode*>::iterator i = triggers.begin(); i != triggers.end(); i++)
{
Expand Down

0 comments on commit 82ee478

Please sign in to comment.