void CGameLobbyManager::DoPendingDeleteSession(CGameLobby *pLobby) { CryLog("CGameLobbyManager::DoPendingDeleteSession() pLobby:%p", pLobby); if(pLobby == m_primaryLobby) { if(m_nextLobby) { CRY_ASSERT(m_primaryLobby && m_nextLobby); SAFE_DELETE(m_primaryLobby); m_primaryLobby = m_nextLobby; m_nextLobby = NULL; m_primaryLobby->SwitchToPrimaryLobby(); SetPrivateGame(m_primaryLobby, m_primaryLobby->IsPrivateGame()); CryLog("CGameLobbyManager::DoPendingDeleteSession - Moved to next session"); } else { CryLog("CGameLobbyManager::DoPendingDeleteSession - No sessions left"); #ifdef USE_C2_FRONTEND CFlashFrontEnd *pFlashMenu = g_pGame->GetFlashMenu(); if (pFlashMenu) { // Have to go all the way back to main then forward to play_online because the stack may // not include play_online (destroyed when we do a level rotation) if (IsMultiplayer() && pFlashMenu->IsScreenInStack("game_lobby")) { if (CMPMenuHub *pMPMenu = CMPMenuHub::GetMPMenuHub()) { pMPMenu->GoToCurrentLobbyServiceScreen(); // go to correct lobby service screen - play_online or play_lan } } } #endif //#ifdef USE_C2_FRONTEND CSquadManager *pSquadManager = g_pGame->GetSquadManager(); if (pSquadManager) { pSquadManager->GameSessionIdChanged(CSquadManager::eGSC_LeftSession, CrySessionInvalidID); } SetPrivateGame(NULL, false); } } else if(pLobby == m_nextLobby) { CryLog("CGameLobbyManager::DoPendingDeleteSession - Next Lobby deleted"); SAFE_DELETE(m_nextLobby); } m_bMergingIsComplete = false; }
void CGameLobbyManager::DoPendingDeleteSession(CGameLobby *pLobby) { CryLog("CGameLobbyManager::DoPendingDeleteSession() pLobby:%p", pLobby); if(pLobby == m_primaryLobby) { if(m_nextLobby) { CRY_ASSERT(m_primaryLobby && m_nextLobby); SAFE_DELETE(m_primaryLobby); m_primaryLobby = m_nextLobby; m_nextLobby = NULL; m_primaryLobby->SwitchToPrimaryLobby(); SetPrivateGame(m_primaryLobby, m_primaryLobby->IsPrivateGame()); CryLog("CGameLobbyManager::DoPendingDeleteSession - Moved to next session"); } else { CryLog("CGameLobbyManager::DoPendingDeleteSession - No sessions left"); CSquadManager *pSquadManager = g_pGame->GetSquadManager(); if (pSquadManager) { pSquadManager->GameSessionIdChanged(CSquadManager::eGSC_LeftSession, CrySessionInvalidID); } SetPrivateGame(NULL, false); } } else if(pLobby == m_nextLobby) { CryLog("CGameLobbyManager::DoPendingDeleteSession - Next Lobby deleted"); SAFE_DELETE(m_nextLobby); } m_bMergingIsComplete = false; }