//========= Copyright Valve LLC, All rights reserved. ============ // // Purpose: Class for joining and showing clan chats // //================================================================ #include "stdafx.h" #include "clanchatroom.h" #include "BaseMenu.h" #include //----------------------------------------------------------------------------- // Purpose: Constructor //----------------------------------------------------------------------------- CClanChatRoom::CClanChatRoom( IGameEngine *pGameEngine ) : m_pGameEngine( pGameEngine ) { } //----------------------------------------------------------------------------- // Purpose: Run a frame for the CClanChatRoom //----------------------------------------------------------------------------- void CClanChatRoom::RunFrame() { } //----------------------------------------------------------------------------- // Purpose: Shows / Refreshes the chat room //----------------------------------------------------------------------------- void CClanChatRoom::Show() { // start joining a chat, if we aren't in one already if ( !m_steamIDChat.IsValid() || !m_SteamCallResultJoinChatRoom.IsActive() ) { // pick a clan to join from the users current data CSteamID steamIDBestClan; for ( int i = 0; i < SteamFriends()->GetClanCount(); i++ ) { CSteamID steamIDClan = SteamFriends()->GetClanByIndex( i ); int online, ingame, chatting; if ( SteamFriends()->GetClanActivityCounts( steamIDClan, &online, &ingame, &chatting ) ) { if ( chatting > 0 ) { steamIDBestClan = steamIDClan; break; } else if ( online ) { steamIDBestClan = steamIDClan; } } } if ( steamIDBestClan.IsValid() ) { SteamAPICall_t hCall = SteamFriends()->JoinClanChatRoom( steamIDBestClan ); m_SteamCallResultJoinChatRoom.Set( hCall, this, &CClanChatRoom::OnJoinChatRoom ); OutputDebugString( "joining clan chat...\n" ); } } } //----------------------------------------------------------------------------- // Purpose: Called when SteamFriends()->JoinClanChatRoom() returns asynchronously //----------------------------------------------------------------------------- void CClanChatRoom::OnJoinChatRoom( JoinClanChatRoomCompletionResult_t *pResult, bool bIOFailure ) { if ( pResult->m_eChatRoomEnterResponse == k_EChatRoomEnterResponseSuccess ) { // we've entered OutputDebugString( "succesfully joined clan chat\n" ); } }