in Gems/AWSGameLift/Code/AWSGameLiftClient/Source/Activity/AWSGameLiftStartMatchmakingActivity.cpp [25:80]
Aws::GameLift::Model::StartMatchmakingRequest BuildAWSGameLiftStartMatchmakingRequest(
const AWSGameLiftStartMatchmakingRequest& startMatchmakingRequest)
{
Aws::GameLift::Model::StartMatchmakingRequest request;
if (!startMatchmakingRequest.m_configurationName.empty())
{
request.SetConfigurationName(startMatchmakingRequest.m_configurationName.c_str());
}
Aws::Vector<Aws::GameLift::Model::Player> players;
for (const AWSGameLiftPlayer& playerInfo : startMatchmakingRequest.m_players)
{
Aws::GameLift::Model::Player player;
if (!playerInfo.m_playerId.empty())
{
player.SetPlayerId(playerInfo.m_playerId.c_str());
}
// Optional attributes
if (!playerInfo.m_team.empty())
{
player.SetTeam(playerInfo.m_team.c_str());
}
if (playerInfo.m_latencyInMs.size() > 0)
{
Aws::Map<Aws::String, int> regionToLatencyMap;
AWSGameLiftActivityUtils::ConvertRegionToLatencyMap(playerInfo.m_latencyInMs, regionToLatencyMap);
player.SetLatencyInMs(AZStd::move(regionToLatencyMap));
}
if (playerInfo.m_playerAttributes.size() > 0)
{
Aws::Map<Aws::String, Aws::GameLift::Model::AttributeValue> playerAttributes;
AWSGameLiftActivityUtils::ConvertPlayerAttributes(playerInfo.m_playerAttributes, playerAttributes);
player.SetPlayerAttributes(AZStd::move(playerAttributes));
}
players.emplace_back(player);
}
if (startMatchmakingRequest.m_players.size() > 0)
{
request.SetPlayers(players);
}
// Optional attributes
if (!startMatchmakingRequest.m_ticketId.empty())
{
request.SetTicketId(startMatchmakingRequest.m_ticketId.c_str());
}
AZ_TracePrintf(AWSGameLiftStartMatchmakingActivityName,
"Built StartMatchmakingRequest with TicketId=%s, ConfigurationName=%s and PlayersCount=%d",
request.GetTicketId().c_str(),
request.GetConfigurationName().c_str(),
request.GetPlayers().size());
return request;
}