//------------------------------------------------------------------------- bool CCryLobbySessionHandler::ShouldCallMapCommand( const char *pLevelName, const char *pGameRules ) { bool result = false; CGameLobby* pGameLobby = g_pGame->GetGameLobby(); if (pGameLobby) { result = pGameLobby->ShouldCallMapCommand(pLevelName, pGameRules); if(result) { IPlatformOS* pPlatform = gEnv->pSystem->GetPlatformOS(); SStreamingInstallProgress progress; pPlatform->QueryStreamingInstallProgressForLevel(pLevelName, &progress); const bool bLevelReady = SStreamingInstallProgress::eState_Completed == progress.m_state; if(!bLevelReady) { // we can jump directly into MP from system game invitation avoiding frontend, so update streaming install priorities here pPlatform->SwitchStreamingInstallPriorityToLevel(pLevelName); gEnv->pSystem->GetISystemEventDispatcher()->OnSystemEvent( ESYSTEM_EVENT_LEVEL_NOT_READY, (UINT_PTR)pLevelName, 0 ); } return bLevelReady; } } return result; }
bool CGameSessionHandler::ShouldCallMapCommand( const char *pLevelName, const char *pGameRules ) { IPlatformOS* pPlatform = gEnv->pSystem->GetPlatformOS(); SStreamingInstallProgress progress; pPlatform->QueryStreamingInstallProgressForLevel(pLevelName, &progress); const bool bLevelReady = SStreamingInstallProgress::eState_Completed == progress.m_state; if(!bLevelReady) { gEnv->pSystem->GetISystemEventDispatcher()->OnSystemEvent( ESYSTEM_EVENT_LEVEL_NOT_READY, (UINT_PTR)pLevelName, 0 ); } return bLevelReady; }