Ejemplo n.º 1
0
void CallsignTagInfo::LoadFromRegistry()
{
	char szSteamClanID[120];
	szSteamClanID[0] = '\0';
	DWORD cbClanID = sizeof(szSteamClanID);

	char szSteamOfficerToken[5];
	szSteamOfficerToken[0] = '\0';
	DWORD cbSteamOfficerToken = sizeof(szSteamOfficerToken);

	HKEY hKey;
	DWORD dwType;
	if (ERROR_SUCCESS == RegOpenKeyEx(HKEY_LOCAL_MACHINE, ALLEGIANCE_REGISTRY_KEY_ROOT, 0, KEY_READ, &hKey))
	{
		RegQueryValueEx(hKey, "SteamClanID", NULL, &dwType, (BYTE *)&szSteamClanID, &cbClanID);
		RegQueryValueEx(hKey, "SteamOfficerToken", NULL, &dwType, (BYTE *)&szSteamOfficerToken, &cbSteamOfficerToken);
		RegCloseKey(hKey);
	}

	CSteamID targetGroupID(strtoull(szSteamClanID, NULL, NULL));

	CSteamID currentUser = SteamUser()->GetSteamID();

	int clanCount = SteamFriends()->GetClanCount();
	for (int i = 0; i < clanCount; i++)
	{
		if (targetGroupID == SteamFriends()->GetClanByIndex(i))
		{
			m_steamGroupID = targetGroupID.ConvertToUint64();
			break;
		}
	}

	UpdateStringValues(szSteamOfficerToken);
}
Ejemplo n.º 2
0
/* <f1608> ../engine/sv_steam3.cpp:805 */
const char *Steam_GetCommunityName()
{
    if (SteamFriends())
        return SteamFriends()->GetPersonaName();

    return NULL;
}
//-----------------------------------------------------------------------------
// Purpose: 
//-----------------------------------------------------------------------------
bool CAvatarImage::SetAvatarSteamID( CSteamID steamIDUser )
{
	ClearAvatarSteamID();
#ifndef NO_STEAM
	if ( SteamFriends() && SteamUtils() )
	{
		int iAvatar = SteamFriends()->GetFriendAvatar( steamIDUser );

		/*
		// See if it's in our list already
		*/

		uint32 wide, tall;
		if ( SteamUtils()->GetImageSize( iAvatar, &wide, &tall ) )
		{
			int cubImage = wide * tall * 4;
			byte *rgubDest = (byte*)_alloca( cubImage );
			SteamUtils()->GetImageRGBA( iAvatar, rgubDest, cubImage );
			InitFromRGBA( rgubDest, wide, tall );

			/*
			// put it in the list
			RGBAImage *pRGBAImage = new RGBAImage( rgubDest, wide, tall );
			int iImageList = m_pImageList->AddImage( pRGBAImage );
			m_mapAvatarToIImageList.Insert( iAvatar, iImageList );
			*/
		}
	}
#endif
	return m_bValid;
}
Ejemplo n.º 4
0
tstring TPortal_GetPlayerNickname()
{
	if (!SteamFriends())
		return "";

	const char* pszNickname = SteamFriends()->GetPersonaName();

	return tstring(pszNickname);
}
Ejemplo n.º 5
0
void SteamCallbackManager::onLobbyCreated(LobbyCreated_t* pCallback) {
    if (pCallback->m_eResult == k_EResultOK) {
        qDebug() << "Inviting steam friends" << pCallback->m_ulSteamIDLobby;

        auto url = SteamFriends()->GetFriendRichPresence(SteamUser()->GetSteamID(), "connect");
        SteamMatchmaking()->SetLobbyData(pCallback->m_ulSteamIDLobby, "connect", url);
        SteamFriends()->ActivateGameOverlayInviteDialog(pCallback->m_ulSteamIDLobby);
    }
}
Ejemplo n.º 6
0
tstring TPortal_GetPlayerNickname()
{
	if (!SteamFriends())
		return _T("";

	const char* pszNickname = SteamFriends()->GetPersonaName();

	return convertstring<char, tchar>(pszNickname);
}
Ejemplo n.º 7
0
void SteamClient::updateLocation(QString status, QUrl locationUrl) {
    if (!initialized) {
        return;
    }

    auto connectStr = locationUrl.isEmpty() ? "" : CONNECT_PREFIX + locationUrl.toString() + CONNECT_SUFFIX;

    SteamFriends()->SetRichPresence("status", status.toLocal8Bit().data());
    SteamFriends()->SetRichPresence("connect", connectStr.toLocal8Bit().data());
}
Ejemplo n.º 8
0
// this one probably will be called by some callbacks
void Steam::updateGroupList()
{
	if ( SteamFriends() == NULL ) { return; }
	groupList.clear();
	int list_size = SteamFriends()->GetClanCount();
	for(int i=0;i<list_size;i++)
	{
		CSteamID g_steam_id = SteamFriends()->GetClanByIndex(i);
		Ref<_SteamGroup> next_group = memnew( _SteamGroup(g_steam_id) );
		groupList.push_back(next_group);
	}
}
Ejemplo n.º 9
0
int32 UAdvancedFriendsLibrary::GetFriendSteamLevel(APlayerController *PlayerController, const FBPUniqueNetId UniqueNetId)
{

	if (!PlayerController)
	{
		UE_LOG(AdvancedFriendsLog, Warning, TEXT("IsAFriend Had a bad Player Controller!"));
		return 0;
	}

	if (!UniqueNetId.IsValid() || !UniqueNetId.UniqueNetId->IsValid())
	{
		UE_LOG(AdvancedFriendsLog, Warning, TEXT("IsAFriend Had a bad UniqueNetId!"));
		return 0;
	}

	if (SteamAPI_Init())
	{
		uint64 id = *((uint64*)UniqueNetId.UniqueNetId->GetBytes());

		return SteamFriends()->GetFriendSteamLevel(id);
	}

	return 0;


}
Ejemplo n.º 10
0
bool CSteamCtx::Connect (CString *retsError)

//  Connect
//
//  Connect to Steam.

    {
    if (m_bConnected)
        return true;

	//	Boot up steam

	if (!SteamAPI_Init())
		{
        if (retsError) *retsError = CONSTLIT("Unable to initialize Steam API.");
		m_bConnected = false;
		return false;
		}

    //  We're enabled

	m_sUsername = CString(CString::csUTF8, SteamFriends()->GetPersonaName());
    m_bConnected = true;
    return true;
    }
Ejemplo n.º 11
0
Array Steam::get_recent_players()
{
	if ( SteamFriends() == NULL ) { return Array(); }
	Array uList;
	int list_size = SteamFriends()->GetCoplayFriendCount();
	for(int i=0;i<list_size;i++)
	{
		CSteamID uSteamID = SteamFriends()->GetCoplayFriend(i);
		if ( SteamFriends()->GetFriendCoplayGame(uSteamID) == get_appid() ) // played the same game
		{
			Ref<_SteamUser> nextUser = memnew( _SteamUser(uSteamID) );
			uList.push_back(nextUser);
		}
	}
	return uList;
}
FOnlineIdentitySteam::FOnlineIdentitySteam() :
	SteamUserPtr(NULL),
	SteamFriendsPtr(NULL)
{
	SteamUserPtr = SteamUser();
	SteamFriendsPtr = SteamFriends();
}
Ejemplo n.º 13
0
Ref<_SteamUser> Steam::get_user()
{
	if ( SteamFriends() != NULL && yourUser == NULL )
	{
		CSteamID cSteamID = SteamUser()->GetSteamID();
		yourUser = Ref<_SteamUser>( memnew( _SteamUser(cSteamID) ) );
	}
	return yourUser;
}
FVoiceEngineSteam::FVoiceEngineSteam(FOnlineSubsystemSteam* InSteamSubsystem) :
	SteamSubsystem(InSteamSubsystem),
	OwningUserIndex(INVALID_INDEX),
	bPendingFinalCapture(false),
	bIsCapturing(false),
	SerializeHelper(NULL)
{
	SteamUserPtr = SteamUser();
	SteamFriendsPtr = SteamFriends();
}
Ejemplo n.º 15
0
void CallsignTagInfo::UpdateStringValues(ZString selectedToken)
{
	m_isOfficer = false;
	//m_callsignTag = "";
	//m_index = 0;

	CSteamID currentUser = SteamUser()->GetSteamID();

	m_callsignTag = FixupCallsignTag(SteamFriends()->GetClanTag(m_steamGroupID));

	// If the user is on the officer's list, then they are an officer.
	int officerCount = SteamFriends()->GetClanOfficerCount(m_steamGroupID);
	for (int j = 0; j < officerCount; j++)
	{
		if (SteamFriends()->GetClanOfficerByIndex(m_steamGroupID, j) == currentUser)
		{
			m_isOfficer = true;
			break;
		}
	}

	// If the user is the group owner, then they are an officer.
	if (currentUser == SteamFriends()->GetClanOwner(m_steamGroupID))
	{
		m_isOfficer = true;
	}

	ZString groupTag = FixupCallsignTag(SteamFriends()->GetClanTag(m_steamGroupID));
	if (groupTag == "Dev" || groupTag == "Alleg")
	{
		m_isOfficer = true;
	}

	if (m_isOfficer == true)
	{
		ZString tokens = GetAvailableTokens();
		if (tokens.Find(selectedToken) >= 0)
			m_callsignToken = selectedToken;
		else
			m_callsignToken = tokens.Middle(tokens.GetLength() - 1, 1);
	}
}
Ejemplo n.º 16
0
// this one probably will be called by some callbacks
void Steam::updateFriendList(int filter)
{
	if ( SteamFriends() == NULL ) { return; }
	// default filter = lastFriendsFilter
	if ( filter == -1 ) { filter = lastFriendsFilter; }
	// if filter out of range then filter = ALL
	if ( filter<0 || filter>ALL ) { filter = ALL; }
	friendList.clear();
	int list_size = SteamFriends()->GetFriendCount(0x04); // "regular" friend 0x04 (see sdk EFriendFlags)
	for(int i=0;i<list_size;i++)
	{
		CSteamID f_steam_id = SteamFriends()->GetFriendByIndex( i, 0x04 ); // "regular" friend 0x04 (see EFriendFlags)
		int f_state = int( SteamFriends()->GetFriendPersonaState(f_steam_id) );
		if ( !(filter == ALL || filter == f_state || (filter==NOT_OFFLINE && f_state!=OFFLINE) ) ) 
			{ continue; }
		Ref<_SteamUser> new_friend = memnew( _SteamUser(f_steam_id) );
		friendList.push_back(new_friend);
	}
	lastFriendsFilter = filter;
}
Ejemplo n.º 17
0
const chowstring & SteamObject::get_user_name()
{
#ifdef CHOWDREN_ENABLE_STEAM
    if (!global_steam_obj.initialized)
        return empty_string;
    static chowstring name;
    name = SteamFriends()->GetPersonaName();
    return name;
#else
    return empty_string;
#endif
}
Ejemplo n.º 18
0
//-----------------------------------------------------------------------------
// Purpose: 
//-----------------------------------------------------------------------------
void CSteam3Client::OnPersonaUpdated( PersonaStateChange_t *pPersonaStateChanged )
{
	if ( pPersonaStateChanged->m_nChangeFlags & k_EPersonaChangeName )
	{
		if ( SteamUtils() && SteamFriends() && SteamUser() )
		{
			CSteamID steamID = SteamUser()->GetSteamID();
			IConVar *pConVar = g_pCVar->FindVar( "name" );
			UpdateNameFromSteamID( pConVar, &steamID );
		}
	}
}
Ejemplo n.º 19
0
//-----------------------------------------------------------------------------
// Purpose: Tell the server about any updates we have had client-side
//-----------------------------------------------------------------------------
bool CShip::BGetClientUpdateData( ClientSpaceWarUpdateData_t *pUpdateData  )
{
	// Limit the rate at which we send updates, even if our internal frame rate is higher
	if ( m_pGameEngine->GetGameTickCount() - m_ulLastClientUpdateTick < 1000.0f/CLIENT_UPDATE_SEND_RATE )
		return false;

	m_ulLastClientUpdateTick = m_pGameEngine->GetGameTickCount();

	// Update playername before sending
	if ( m_bIsLocalPlayer )
	{
		m_SpaceWarClientUpdateData.SetPlayerName( SteamFriends()->GetFriendPersonaName( SteamUser()->GetSteamID() ) );
	}

	memcpy( pUpdateData, &m_SpaceWarClientUpdateData, sizeof( ClientSpaceWarUpdateData_t ) );
	memset( &m_SpaceWarClientUpdateData, 0, sizeof( m_SpaceWarClientUpdateData ) );

	return true;
}
Ejemplo n.º 20
0
bool UAdvancedFriendsLibrary::RequestSteamFriendInfo(APlayerController *PlayerController, const FBPUniqueNetId UniqueNetId)
{
	if (!PlayerController)
	{
		UE_LOG(AdvancedFriendsLog, Warning, TEXT("IsAFriend Had a bad Player Controller!"));
		return false;
	}

	if (!UniqueNetId.IsValid() || !UniqueNetId.UniqueNetId->IsValid())
	{
		UE_LOG(AdvancedFriendsLog, Warning, TEXT("IsAFriend Had a bad UniqueNetId!"));
		return false;
	}

	if (SteamAPI_Init())
	{
		uint64 id = *((uint64*)UniqueNetId.UniqueNetId->GetBytes());

		return !SteamFriends()->RequestUserInformation(id, false);
	}

	return false;
}
Ejemplo n.º 21
0
SW_PY int GetPersonaState() {
	return SteamFriends()->GetPersonaState();
}
Ejemplo n.º 22
0
SW_PY const char* GetPersonaName() {
	return SteamFriends()->GetPersonaName();
}
Ejemplo n.º 23
0
// Steam Friends
SW_PY int GetFriendCount(int flag) {
	return SteamFriends()->GetFriendCount(flag);
}
Ejemplo n.º 24
0
// Cleans up all the keys
void Steam::clear_game_info()
{
	if ( SteamFriends() == NULL ) { return; }
	SteamFriends()->ClearRichPresence();
}
Ejemplo n.º 25
0
// User is in a game pressing the talk button (will suppress the microphone for all voice comms from the Steam friends UI)
void SteamFriends_SetInGameVoiceSpeaking( CSteamID steamIDUser, bool Speaking ){return SteamFriends()->SetInGameVoiceSpeaking(steamIDUser,Speaking);};
Ejemplo n.º 26
0
// Opens Steam App Store
void Steam::overlay_open_store(int app_id)
{
	if ( SteamFriends() == NULL ) { return; }
	SteamFriends()->ActivateGameOverlayToStore( AppId_t(app_id), EOverlayToStoreFlag(0) );
}
Ejemplo n.º 27
0
// Open URL using Steam overlay browser
void Steam::overlay_open_url(const String& url)
{
	if ( SteamFriends() == NULL ) { return; }
	SteamFriends()->ActivateGameOverlayToWebPage( url.utf8().get_data() );
}
Ejemplo n.º 28
0
// activates game overlay to a specific place
// valid options are
//		"steamid" - opens the overlay web browser to the specified user or groups profile
//		"chat" - opens a chat window to the specified user, or joins the group chat 
//		"jointrade" - opens a window to a Steam Trading session that was started with the ISteamEconomy/StartTrade Web API
//		"stats" - opens the overlay web browser to the specified user's stats
//		"achievements" - opens the overlay web browser to the specified user's achievements
//		"friendadd" - opens the overlay in minimal mode prompting the user to add the target user as a friend
//		"friendremove" - opens the overlay in minimal mode prompting the user to remove the target friend
//		"friendrequestaccept" - opens the overlay in minimal mode prompting the user to accept an incoming friend invite
//		"friendrequestignore" - opens the overlay in minimal mode prompting the user to ignore an incoming friend invite
void Steam::overlay_open_user(const String& url, Ref<SteamID> user)
{
	if ( SteamFriends() == NULL ) { return; }
	SteamFriends()->ActivateGameOverlayToUser( url.utf8().get_data(), user->getCSteamID() );
	//SteamFriends()->ActivateGameOverlayToUser( url.utf8().get_data(), CSteamID(uint64(steam_id)) );
}
Ejemplo n.º 29
0
bool Steam::set_game_info(const String& s_key, const String& s_value)
{
	if ( SteamFriends() == NULL ) { return false; }
	return SteamFriends()->SetRichPresence(s_key.utf8().get_data(),s_value.utf8().get_data());
}
Ejemplo n.º 30
0
// activates the game overlay, with an optional dialog to open 
// valid options are "Friends", "Community", "Players", "Settings", "OfficialGameGroup", "Stats", "Achievements"
void SteamFriends_ActivateGameOverlay( const char *Dialog ){return SteamFriends()->ActivateGameOverlay(Dialog);};