void CProceduralWeaponAnimation::UpdateDebugState() { if ((g_pGameCVars->g_debugWeaponOffset==2) != m_debugInput) { IActionMapManager* pAMMgr = gEnv->pGame->GetIGameFramework()->GetIActionMapManager(); if (g_pGameCVars->g_debugWeaponOffset == 2) { if (pAMMgr) pAMMgr->AddAlwaysActionListener(m_weaponOffsetInput); m_weaponOffsetInput->SetRightDebugOffset(SWeaponOffset(m_rightOffset)); m_weaponOffsetInput->SetLeftDebugOffset(SWeaponOffset(m_leftOffset)); } else if (pAMMgr) { pAMMgr->RemoveAlwaysActionListener(m_weaponOffsetInput); } m_debugInput = (g_pGameCVars->g_debugWeaponOffset == 2); } if (g_pGameCVars->g_debugWeaponOffset) { DrawCrossHairGuideLines(); } if (m_debugInput) { m_weaponOffsetInput->Update(); } }
void CUIInput::InitEventSystem() { if ( !gEnv->pFlashUI || !g_pGame->GetIGameFramework() || !g_pGame->GetIGameFramework()->GetIActionMapManager() ) { #if !defined(EXCLUDE_SCALEFORM_SDK) assert(false); #endif return; } // set up the handlers if (s_actionHandler.GetNumHandlers() == 0) { #define ADD_HANDLER(action, func) s_actionHandler.AddHandler(actions.action, &CUIInput::func) const CGameActions& actions = g_pGame->Actions(); ADD_HANDLER(ui_toggle_pause, OnActionTogglePause); ADD_HANDLER(ui_start_pause, OnActionStartPause); ADD_HANDLER(ui_up, OnActionUp); ADD_HANDLER(ui_down, OnActionDown); ADD_HANDLER(ui_left, OnActionLeft); ADD_HANDLER(ui_right, OnActionRight); ADD_HANDLER(ui_click, OnActionClick); ADD_HANDLER(ui_back, OnActionBack); ADD_HANDLER(ui_confirm, OnActionConfirm); ADD_HANDLER(ui_reset, OnActionReset); #undef ADD_HANDLER } IActionMapManager* pAMMgr = g_pGame->GetIGameFramework()->GetIActionMapManager(); if (pAMMgr) { pAMMgr->AddAlwaysActionListener(shared_from_this()); } // ui events (sent to ui) m_pUIFunctions = gEnv->pFlashUI->CreateEventSystem( "Input", IUIEventSystem::eEST_SYSTEM_TO_UI ); m_eventSender.Init(m_pUIFunctions); { SUIEventDesc eventDesc("OnKeyboardDone", "triggered once keyboard is done"); eventDesc.AddParam<SUIParameterDesc::eUIPT_String>("String", "String of keyboard input"); m_eventSender.RegisterEvent<eUIE_OnVirtKeyboardDone>(eventDesc); } { SUIEventDesc eventDesc("OnKeyboardCancelled", "triggered once keyboard is cancelled"); m_eventSender.RegisterEvent<eUIE_OnVirtKeyboardCancelled>(eventDesc); } { SUIEventDesc eventDesc("OnExclusiveControllerDisconnected", "triggered once the exclusive controller got disconnected"); m_eventSender.RegisterEvent<eUIE_OnExclusiveControllerDisconnected>(eventDesc); } // ui events (called from ui) m_pUIEvents = gEnv->pFlashUI->CreateEventSystem( "Input", IUIEventSystem::eEST_UI_TO_SYSTEM ); m_eventDispatcher.Init(m_pUIEvents, this, "UIInput"); { SUIEventDesc eventDesc("ShowVirtualKeyboard", "Displays the virtual keyboard"); eventDesc.AddParam<SUIParameterDesc::eUIPT_String>("Title", "Title for the virtual keyboard"); eventDesc.AddParam<SUIParameterDesc::eUIPT_String>("Value", "Initial string of virtual keyboard"); eventDesc.AddParam<SUIParameterDesc::eUIPT_Int>("MaxChars", "Maximum chars"); m_eventDispatcher.RegisterEvent( eventDesc, &CUIInput::OnDisplayVirtualKeyboard ); } }