CUIMultiPlayer::CUIMultiPlayer() : m_pUIEvents(NULL) , m_pUIFunctions(NULL) { if (!gEnv->pFlashUI) return; // event descriptions SUIEventDesc evtEnteredGame("EnteredGame", "EnteredGame", ""); SUIEventDesc evtPlayerJoined("PlayerJoined", "PlayerJoined", ""); evtPlayerJoined.Params.push_back(SUIParameterDesc("ID", "ID", "")); evtPlayerJoined.Params.push_back(SUIParameterDesc("Name", "Name", "")); SUIEventDesc evtPlayerLeaved("PlayerLeaved", "PlayerLeaved", ""); evtPlayerLeaved.Params.push_back(SUIParameterDesc("ID", "ID", "")); evtPlayerLeaved.Params.push_back(SUIParameterDesc("Name", "Name", "")); SUIEventDesc evtPlayerKilled("PlayerKilled", "PlayerKilled", ""); evtPlayerKilled.Params.push_back(SUIParameterDesc("ID", "ID", "")); evtPlayerKilled.Params.push_back(SUIParameterDesc("Name", "Name", "")); evtPlayerKilled.Params.push_back(SUIParameterDesc("ShooterID", "ShooterID", "")); evtPlayerKilled.Params.push_back(SUIParameterDesc("ShooterName", "ShooterName", "")); // events to send from this class to UI flowgraphs m_pUIFunctions = gEnv->pFlashUI->CreateEventSystem("MP", IUIEventSystem::eEST_SYSTEM_TO_UI); m_EventMap[EUIE_EnteredGame] = m_pUIFunctions->RegisterEvent(evtEnteredGame); m_EventMap[EUIE_PlayerJoined] = m_pUIFunctions->RegisterEvent(evtPlayerJoined); m_EventMap[EUIE_PlayerLeaved] = m_pUIFunctions->RegisterEvent(evtPlayerLeaved); m_EventMap[EUIE_PlayerKilled] = m_pUIFunctions->RegisterEvent(evtPlayerKilled); // event descriptions SUIEventDesc evtRequestPlayers("GetPlayers", "GetPlayers", ""); // events that can be sent from UI flowgraphs to this class m_pUIEvents = gEnv->pFlashUI->CreateEventSystem("MP", IUIEventSystem::eEST_UI_TO_SYSTEM); s_EventDispatcher.RegisterEvent(m_pUIEvents, evtRequestPlayers, &CUIMultiPlayer::RequestPlayers); m_pUIEvents->RegisterListener(this); }
//-------------------------------------------------------------------------------------------- CUIObjectives::CUIObjectives() { if ( gEnv->pFlashUI ) { // events that be fired to the UI m_pUIOEvt = gEnv->pFlashUI->CreateEventSystem( "UIObjectives", IUIEventSystem::eEST_SYSTEM_TO_UI ); { SUIEventDesc evtDesc( "ObjectiveAdded", "ObjectiveAdded", "Mission objective added" ); evtDesc.Params.push_back( SUIParameterDesc( "ObjectiveID", "MissionID", "ID of the mission" ) ); evtDesc.Params.push_back( SUIParameterDesc( "Name", "Name", "Name of the mission" ) ); evtDesc.Params.push_back( SUIParameterDesc( "Desc", "Desc", "Description of the mission" ) ); evtDesc.Params.push_back( SUIParameterDesc( "State", "State", "State of the objective" ) ); m_EventMap[ eUIOE_ObjectiveAdded ] = m_pUIOEvt->RegisterEvent( evtDesc ); } { SUIEventDesc evtDesc( "ObjectiveRemoved", "ObjectiveRemoved", "Mission objective removed" ); evtDesc.Params.push_back( SUIParameterDesc( "ObjectiveID", "MissionID", "ID of the mission" ) ); m_EventMap[ eUIOE_ObjectiveRemoved ] = m_pUIOEvt->RegisterEvent( evtDesc ); } { SUIEventDesc evtDesc( "ObjectivesReset", "ObjectivesReset", "All mission objectives reset" ); m_EventMap[ eUIOE_ObjectivesReset ] = m_pUIOEvt->RegisterEvent( evtDesc ); } { SUIEventDesc evtDesc( "ObjectiveStateChanged", "ObjectiveStateChanged", "Objective status changed" ); evtDesc.Params.push_back( SUIParameterDesc( "ObjectiveID", "MissionID", "ID of the mission" ) ); evtDesc.Params.push_back( SUIParameterDesc( "State", "State", "State of the objective" ) ); m_EventMap[ eUIOE_ObjectiveStateChanged ] = m_pUIOEvt->RegisterEvent( evtDesc ); } // event system to receive events from UI m_pUIOFct = gEnv->pFlashUI->CreateEventSystem( "UIObjectives", IUIEventSystem::eEST_UI_TO_SYSTEM ); m_pUIOFct->RegisterListener( this ); { SUIEventDesc evtDesc( "RequestObjectives", "RequestObjectives", "Request all mission objectives (force to call ObjectiveAdded for each objective)" ); s_EventDispatcher.RegisterEvent( m_pUIOFct, evtDesc, &CUIObjectives::OnRequestMissionObjectives ); } } UpdateObjectiveInfo(); }
CUISettings::CUISettings() : m_pUIEvents(NULL) , m_pUIFunctions(NULL) { if (!gEnv->pFlashUI) return; // CVars m_pRXVar = gEnv->pConsole->GetCVar("r_Width"); m_pRYVar = gEnv->pConsole->GetCVar("r_Height"); m_pFSVar = gEnv->pConsole->GetCVar("r_Fullscreen"); m_pMusicVar = gEnv->pConsole->GetCVar("s_MusicVolume"); m_pSFxVar = gEnv->pConsole->GetCVar("s_SFXVolume"); m_pVideoVar = gEnv->pConsole->GetCVar("sys_flash_video_soundvolume"); assert(m_pRXVar && m_pRYVar && m_pFSVar && m_pMusicVar && m_pSFxVar && m_pVideoVar); if (!(m_pRXVar && m_pRYVar && m_pFSVar && m_pMusicVar && m_pSFxVar && m_pVideoVar)) return; m_Resolutions.push_back(std::make_pair(1024,768)); m_Resolutions.push_back(std::make_pair(1280,720)); m_Resolutions.push_back(std::make_pair(1280,1050)); m_Resolutions.push_back(std::make_pair(1680,1050)); m_Resolutions.push_back(std::make_pair(1920,1080)); // event descriptions SUIEventDesc evtResChanged("ResChanged", "OnResChanged", "Triggered on resolution change"); evtResChanged.Params.push_back(SUIParameterDesc("ResX", "ResX", "Screen X resolution")); evtResChanged.Params.push_back(SUIParameterDesc("ResY", "ResY", "Screen Y resolution")); evtResChanged.Params.push_back(SUIParameterDesc("FullScreen", "FullScreen", "Fullscreen")); SUIEventDesc evtSoundChanged("SoundChanged", "OnSoundChanged", "Triggered if sound volume changed"); evtSoundChanged.Params.push_back(SUIParameterDesc("Music", "Music", "Music volume")); evtSoundChanged.Params.push_back(SUIParameterDesc("SFx", "SFx", "SFx volume")); evtSoundChanged.Params.push_back(SUIParameterDesc("Video", "Video", "Video volume")); SUIEventDesc evtGetRes("OnResolutions", "OnResolutions", "Triggered if resolutions were requested.\n Will return comma separated string (UI array) with all resolutions (x1,y1,x2,y2,...)", true); // events to send from this class to UI flowgraphs m_pUIFunctions = gEnv->pFlashUI->CreateEventSystem("Settings", IUIEventSystem::eEST_SYSTEM_TO_UI); m_EventMap[EUIE_ResolutionChanged] = m_pUIFunctions->RegisterEvent(evtResChanged); m_EventMap[EUIE_SoundSettingsChanged] = m_pUIFunctions->RegisterEvent(evtSoundChanged); m_EventMap[EUIE_OnGetResolutions] = m_pUIFunctions->RegisterEvent(evtGetRes); // override descriptions evtResChanged.sDisplayName = "SetResolution"; evtResChanged.sDesc = "Call this to set resolution"; evtSoundChanged.sDisplayName = "SetSound"; evtSoundChanged.sDesc = "Call this to set sound settings"; evtGetRes.sDisplayName = "GetResolutionList"; evtGetRes.sDesc = "Trigger this node to get all resolutions. This will trigger the \"Events:Settings:OnResolutions\" node."; evtGetRes.IsDynamic = false; // events that can be sent from UI flowgraphs to this class m_pUIEvents = gEnv->pFlashUI->CreateEventSystem("Settings", IUIEventSystem::eEST_UI_TO_SYSTEM); s_EventDispatcher.RegisterEvent(m_pUIEvents, evtResChanged, &CUISettings::OnSetResolution); s_EventDispatcher.RegisterEvent(m_pUIEvents, evtSoundChanged, &CUISettings::OnSetSoundSettings); s_EventDispatcher.RegisterEvent(m_pUIEvents, evtGetRes, &CUISettings::OnGetResolutions); m_pUIEvents->RegisterListener(this); // register as IGameFrameworkListener gEnv->pGame->GetIGameFramework()->RegisterListener(this, "CUISettings", FRAMEWORKLISTENERPRIORITY_HUD); }