void CEditorGame::InitActionInputEnums( IGameToEditorInterface* pGTE ) { CRY_ASSERT(pGTE); IActionMapManager* pActionMapManager = g_pGame->GetIGameFramework()->GetIActionMapManager(); if (pActionMapManager) { struct SActionList : public IActionMapPopulateCallBack { explicit SActionList(int actionCount) : m_maxNumNames(actionCount) , m_nameCount(0) { m_allActionNames = new const char*[actionCount]; } ~SActionList() { SAFE_DELETE_ARRAY(m_allActionNames); } //IActionMapPopulateCallBack virtual void AddActionName( const char* const pName ) { assert(m_nameCount < m_maxNumNames); if (m_nameCount < m_maxNumNames) { m_allActionNames[m_nameCount] = pName; m_nameCount++; } } //~IActionMapPopulateCallBack const char** m_allActionNames; int m_maxNumNames; int m_nameCount; }; int actionCount = pActionMapManager->GetActionsCount(); if (actionCount > 0) { SActionList actionList(actionCount); pActionMapManager->EnumerateActions(&actionList); pGTE->SetUIEnums("input_actions", actionList.m_allActionNames, actionList.m_nameCount); } } }