//------------------------------------------------------------------------- void CGameRulesStandardState::EnterPostGameState( EPostGameState state ) { #ifndef _RELEASE if(g_pGameCVars->g_hud_postgame_debug) { CryLog("HUD PostGame - Entering new state %i from %i after %.2f seconds", (int)state, (int)m_postGameState, m_timeInCurrentPostGameState); } #endif m_timeInCurrentPostGameState = 0.f; m_postGameState = state; switch (m_postGameState) { case ePGS_FinalKillcam: { if (g_pGameCVars->kc_enableWinningKill) { CRecordingSystem* pRecordingSystem = g_pGame->GetRecordingSystem(); if (pRecordingSystem) { if(pRecordingSystem->IsPlaybackQueued()) { if(!pRecordingSystem->PlayWinningKillcam()) { CRY_ASSERT_MESSAGE(false, "There should be a Winning Kill queued up when we get here..."); } } else { CRY_ASSERT_MESSAGE(false, "There should be a Winning Kill queued up when we get here..."); } } } break; } case ePGS_HighlightReel: { bool canPlayHighlightReel = false; //Reset to standard style SHUDEvent postEvent(eHUDEvent_ResetHUDStyle); CHUDEventDispatcher::CallEvent(postEvent); CRecordingSystem* pRecordingSystem = g_pGame->GetRecordingSystem(); if (pRecordingSystem) { if (!(pRecordingSystem->IsPlayingBack() || pRecordingSystem->IsPlaybackQueued())) { canPlayHighlightReel = pRecordingSystem->PlayAllHighlights(false); #ifndef _RELEASE if(g_pGameCVars->g_hud_postgame_debug) { CryLog("HUD PostGame - Could play highlight reel = %s", canPlayHighlightReel ? "True" : "False"); } #endif } } //Change to fixed spectator mode IActor* pLocalActor = g_pGame->GetIGameFramework()->GetClientActor(); IGameRulesSpectatorModule* pSpecMod = g_pGame->GetGameRules()->GetSpectatorModule(); EntityId specEntity = 0; if(pLocalActor && pSpecMod && pSpecMod->ModeIsAvailable(pLocalActor->GetEntityId(), CActor::eASM_Fixed, &specEntity)) { pSpecMod->ChangeSpectatorMode(pLocalActor, CActor::eASM_Fixed, specEntity, true, true); } #ifndef _RELEASE else if(g_pGameCVars->g_hud_postgame_debug) { CryLog("HUD PostGame - Failed to change spectator mode when entering highlight reel"); } #endif if(canPlayHighlightReel) { m_bHasShownHighlightReel = true; } break; } case ePGS_Top3: { g_pGame->GetUI()->ActivateDefaultState(); SHUDEvent scoreboardVisibleEvent( eHUDEvent_MakeMatchEndScoreboardVisible ); scoreboardVisibleEvent.AddData(true); CHUDEventDispatcher::CallEvent(scoreboardVisibleEvent); break; } case ePGS_Scoreboard: { CryLog("HUD PostGame - Activating default state for scoreboard"); // Activating the default state while in this postgame state will cause the scoreboard to show g_pGame->GetUI()->ActivateDefaultState(); break; } } }