void MapLoader::extractTriggers() {
  TiXmlElement *triggerElement = rootHandle.FirstChild("trigger").ToElement();
  string triggerType("none");

  if (triggerElement) {
    do {
      TiXmlElement *triggerTypeElement;

      scene->triggers.emplace_back();
      Trigger &trigger = scene->triggers.back();

      if (triggerElement) {
        triggerElement->QueryStringAttribute("type", &trigger.type);
      }
      
      if (triggerType == "none") {
        throw std::runtime_error("Trigger must define a type attribute.");
      }

      XmlHelper::extractPosition(triggerElement, trigger.position);
      XmlHelper::extractScale(triggerElement, trigger.scale);

    } while ((triggerElement = triggerElement->NextSiblingElement()) != nullptr);
  }
}
Exemple #2
0
void CInputManager::CheckCallback()
{
    for (TCallbackMap::iterator iter = m_callBacks.begin(); iter != m_callBacks.end(); ++iter)
    {
        SKeyTriggerType triggerType(iter->first);
        if (CKeyboard::GetInstance()->GetKeyState(triggerType.m_code) == triggerType.m_state)
        {
            (*iter->second)();
        }
    }
}