Co-authored-by: Raul Gomez Rodriguez <raulalbertog@microsoft.com>
This commit is contained in:
rgomez391 2023-03-23 10:37:21 -07:00 коммит произвёл GitHub
Родитель f1a347b91f
Коммит d5841d9f5a
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
7 изменённых файлов: 22 добавлений и 2 удалений

Просмотреть файл

@ -263,6 +263,11 @@ typedef struct XblSocialManagerPresenceTitleRecord
/// </summary>
uint32_t titleId;
/// <summary>
/// The title name.
/// </summary>
char titleName[XBL_TITLE_NAME_CHAR_SIZE];
/// <summary>
/// The active state for the title.
/// </summary>

Просмотреть файл

@ -38,6 +38,7 @@ extern "C"
#define XBL_UNIQUE_MODERN_GAMERTAG_CHAR_SIZE (XBL_MODERN_GAMERTAG_CHAR_SIZE + 1 + 3 ) // modern gamertag + '#' + max suffix size for cases when MGT display length is 12. Null terminator already accoutned for in MGT
#define XBL_REAL_NAME_CHAR_SIZE (255 * 3)
#define XBL_RICH_PRESENCE_CHAR_SIZE (100 * 3)
#define XBL_TITLE_NAME_CHAR_SIZE (100 * 3)
#define XBL_XBOX_USER_ID_CHAR_SIZE (21 * 3)
#define XBL_LAST_TIME_PLAYED_CHAR_SIZE 25

Просмотреть файл

@ -390,7 +390,7 @@ MultiplayerClientManager::JoinGame(
gameSession->Join(nullptr, false);
for (const auto& memberXuid : xboxUserIds)
{
if (memberXuid == primaryContext->Xuid())
if (memberXuid != primaryContext->Xuid())
{
gameSession->AddMemberReservation(memberXuid);
}

Просмотреть файл

@ -277,6 +277,18 @@ Result<XblSocialManagerPresenceTitleRecord> PeoplehubService::DeserializePresenc
record.titleId = utils::internal_string_to_uint32(titleId);
RETURN_HR_IF_FAILED(JsonUtils::ExtractJsonBool(json, "IsPrimary", record.isPrimary));
//get titleName from Presence string: format should be "Title - Rich Presence Text"
for (int i = 0; i < XBL_TITLE_NAME_CHAR_SIZE; i++)
{
char c = record.presenceText[i];
if (c == '-' || c == '\0')
{
record.titleName[i] = '\0';
break;
}
record.titleName[i] = c;
}
return Result<XblSocialManagerPresenceTitleRecord>{ record };
}

Просмотреть файл

@ -749,6 +749,7 @@ XblSocialManagerPresenceRecord SocialGraph::ConvertPresenceRecord(
smTitleRecord.titleId = newTitleRecord.titleId;
smTitleRecord.isTitleActive = newTitleRecord.titleActive;
utils::strcpy(smTitleRecord.titleName, sizeof(smTitleRecord.titleName), newTitleRecord.titleName);
utils::strcpy(smTitleRecord.presenceText, sizeof(smTitleRecord.presenceText), newTitleRecord.richPresenceString);
smTitleRecord.isBroadcasting = newTitleRecord.broadcastRecord != nullptr;
smTitleRecord.deviceType = deviceRecord.deviceType;

Просмотреть файл

@ -9,4 +9,4 @@
//*********************************************************
#pragma once
#define XBOX_SERVICES_API_VERSION_STRING "2022.10.20221025.1"
#define XBOX_SERVICES_API_VERSION_STRING "2023.03.20230214.0"

Просмотреть файл

@ -451,6 +451,7 @@ bool ApiRunerMemHook::IsStackInXSAPI(StackInfo& stackInfo)
void ApiRunerMemHook::GetStackTrace(StackInfo &stackInfo)
{
#if HC_PLATFORM == HC_PLATFORM_WIN32 || (HC_PLATFORM == HC_PLATFORM_GDK && !_GAMING_XBOX)
std::lock_guard<std::recursive_mutex> guard(m_lock);
void* stack[TRACE_MAX_STACK_FRAMES] = { 0 };
WORD numberOfFrames = CaptureStackBackTrace(0, TRACE_MAX_STACK_FRAMES, stack, NULL);
stackInfo.stackSize = numberOfFrames < 64 ? numberOfFrames : 64;