diff --git a/src/game/client/swarm/gameui/swarm/basemodpanel.cpp b/src/game/client/swarm/gameui/swarm/basemodpanel.cpp index 4779610f0..78005ead7 100644 --- a/src/game/client/swarm/gameui/swarm/basemodpanel.cpp +++ b/src/game/client/swarm/gameui/swarm/basemodpanel.cpp @@ -1422,6 +1422,11 @@ void CBaseModPanel::OnLevelLoadingStarted( char const *levelName, bool bShowProg pLoadingProgress->SetLoadingType( type ); pLoadingProgress->SetProgress( 0.0f ); + if ( ISteamTimeline *pTimeline = SteamTimeline() ) + { + pTimeline->SetTimelineGameMode( k_ETimelineGameMode_LoadingScreen ); + } + m_LevelLoading = true; } @@ -1474,6 +1479,11 @@ void CBaseModPanel::OnLevelLoadingFinished( KeyValues *kvEvent ) pLoadingProgress->Close(); } + if ( ISteamTimeline *pTimeline = SteamTimeline() ) + { + pTimeline->SetTimelineGameMode( bError ? k_ETimelineGameMode_Menus : k_ETimelineGameMode_Staging ); + } + m_LevelLoading = false; CBaseModFrame *pFrame = CBaseModPanel::GetSingleton().GetWindow( WT_GENERICCONFIRMATION ); diff --git a/src/game/shared/swarm/asw_gamerules.cpp b/src/game/shared/swarm/asw_gamerules.cpp index 701b98bfc..0aca4d62c 100644 --- a/src/game/shared/swarm/asw_gamerules.cpp +++ b/src/game/shared/swarm/asw_gamerules.cpp @@ -1500,6 +1500,11 @@ CAlienSwarm::~CAlienSwarm() GameTimescale()->SetDesiredTimescale( 1.0f ); engine->SetPitchScale( 1.0f ); + + if ( ISteamTimeline *pTimeline = SteamTimeline() ) + { + pTimeline->SetTimelineGameMode( k_ETimelineGameMode_Menus ); + } } float CAlienSwarm::GetMarineDeathCamInterp( bool bIgnoreCvar ) @@ -1588,6 +1593,11 @@ void CAlienSwarm::OnDataChanged( DataUpdateType_t updateType ) g_ReactiveDropWorkshop.OnMissionStart(); } + if ( ISteamTimeline *pTimeline = SteamTimeline() ) + { + pTimeline->SetTimelineGameMode( GetGameState() == ASW_GS_INGAME ? k_ETimelineGameMode_Playing : k_ETimelineGameMode_Staging ); + } + g_ReactiveDropWorkshop.CheckForRequiredAddons(); g_RD_Rich_Presence.UpdatePresence();