void Engine::ProcessTriggers() { for (list<TriggerNode*>::iterator i = triggers.begin(); i != triggers.end(); i++) { TriggerNode* node = *i; if (!node) continue; Trigger* trigger = node->getTrigger(); if (!trigger) { trigger = aiObjectContext->GetTrigger(node->getName()); node->setTrigger(trigger); } if (!trigger) continue; if (testMode || trigger->needCheck()) { Event event = trigger->Check(); if (!event) continue; LogAction("T:%s", trigger->getName().c_str()); MultiplyAndPush(node->getHandlers(), 0.0f, false, event, "trigger"); } } for (list<TriggerNode*>::iterator i = triggers.begin(); i != triggers.end(); i++) { Trigger* trigger = (*i)->getTrigger(); if (trigger) trigger->Reset(); } }
bool Start() { stop_trigger.Reset(); return Thread::Start(); }