void CEditorGame::InitActionEnums(IGameToEditorInterface* pGTE) { // init ActionFilter enums IActionMapManager* pActionMapMgr = m_pGame->GetIGameFramework()->GetIActionMapManager(); if (pActionMapMgr) { std::vector<string> filterNames; filterNames.push_back(""); // empty IActionFilterIteratorPtr pFilterIter = pActionMapMgr->CreateActionFilterIterator(); while (IActionFilter* pFilter = pFilterIter->Next()) { filterNames.push_back(pFilter->GetName()); } size_t numFilters = 0; const char** allFilters = new const char*[filterNames.size()]; std::vector<string>::const_iterator iter = filterNames.begin(); std::vector<string>::const_iterator iterEnd = filterNames.end(); while (iter != iterEnd) { allFilters[numFilters++] = iter->c_str(); ++iter; } pGTE->SetUIEnums("action_filter", allFilters, numFilters); delete[] allFilters; } }
void CEditorGame::InitActionEnums(IGameToEditorInterface* pGTE) { // init ActionFilter enums IActionMapManager* pActionMapMgr = m_pGame->GetIGameFramework()->GetIActionMapManager(); if (pActionMapMgr) { std::vector<string> filterNames; filterNames.push_back(""); // empty IActionFilterIteratorPtr pFilterIter = pActionMapMgr->CreateActionFilterIterator(); while (IActionFilter* pFilter = pFilterIter->Next()) { filterNames.push_back(pFilter->GetName()); } size_t numFilters = 0; const char** allFilters = new const char*[filterNames.size()]; std::vector<string>::const_iterator iter = filterNames.begin(); std::vector<string>::const_iterator iterEnd = filterNames.end(); while (iter != iterEnd) { allFilters[numFilters++] = iter->c_str(); ++iter; } pGTE->SetUIEnums("action_filter", allFilters, numFilters); delete[] allFilters; } // init vehicle light type enum XmlNodeRef defaultDataRef = gEnv->pSystem->LoadXmlFromFile("Scripts/Entities/Vehicles/Lights/DefaultVehicleLights.xml"); if (defaultDataRef) { if (XmlNodeRef lightDefaultsRef = defaultDataRef->findChild("Lights")) { const char** typeNames = NULL; int count = lightDefaultsRef->getChildCount() + 1; typeNames = new const char*[count]; typeNames[0] = "All"; for (int i=1; i < count; i++) { if (XmlNodeRef tableRef = lightDefaultsRef->getChild(i-1)) { typeNames[i] = tableRef->getAttr("type"); } } pGTE->SetUIEnums("vehicleLightTypes", typeNames, count); delete[] typeNames; } } }