mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-12-09 13:19:00 +00:00
Stub NOT_IN_PARTY behavior (#3409)
From what I can tell, this is valid behavior since a user could choose not to enter a party. This fixes a potential crash on boot in Grand Theft Auto V.
This commit is contained in:
@@ -591,6 +591,7 @@ set(NP_LIBS src/core/libraries/np_common/np_common.cpp
|
||||
src/core/libraries/np_web_api/np_web_api.h
|
||||
src/core/libraries/np_party/np_party.cpp
|
||||
src/core/libraries/np_party/np_party.h
|
||||
src/core/libraries/np_party/np_party_error.h
|
||||
src/core/libraries/np_auth/np_auth.cpp
|
||||
src/core/libraries/np_auth/np_auth.h
|
||||
)
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
#include "core/libraries/error_codes.h"
|
||||
#include "core/libraries/libs.h"
|
||||
#include "core/libraries/np_party/np_party.h"
|
||||
#include "core/libraries/np_party/np_party_error.h"
|
||||
|
||||
namespace Libraries::NpParty {
|
||||
|
||||
@@ -30,22 +31,22 @@ s32 PS4_SYSV_ABI sceNpPartyGetId() {
|
||||
|
||||
s32 PS4_SYSV_ABI sceNpPartyGetMemberInfo() {
|
||||
LOG_ERROR(Lib_NpParty, "(STUBBED) called");
|
||||
return ORBIS_OK;
|
||||
return ORBIS_NP_PARTY_ERROR_NOT_IN_PARTY;
|
||||
}
|
||||
|
||||
s32 PS4_SYSV_ABI sceNpPartyGetMemberInfoA() {
|
||||
LOG_ERROR(Lib_NpParty, "(STUBBED) called");
|
||||
return ORBIS_OK;
|
||||
return ORBIS_NP_PARTY_ERROR_NOT_IN_PARTY;
|
||||
}
|
||||
|
||||
s32 PS4_SYSV_ABI sceNpPartyGetMembers() {
|
||||
LOG_ERROR(Lib_NpParty, "(STUBBED) called");
|
||||
return ORBIS_OK;
|
||||
return ORBIS_NP_PARTY_ERROR_NOT_IN_PARTY;
|
||||
}
|
||||
|
||||
s32 PS4_SYSV_ABI sceNpPartyGetMembersA() {
|
||||
LOG_ERROR(Lib_NpParty, "(STUBBED) called");
|
||||
return ORBIS_OK;
|
||||
return ORBIS_NP_PARTY_ERROR_NOT_IN_PARTY;
|
||||
}
|
||||
|
||||
s32 PS4_SYSV_ABI sceNpPartyGetMemberSessionInfo() {
|
||||
@@ -58,8 +59,9 @@ s32 PS4_SYSV_ABI sceNpPartyGetMemberVoiceInfo() {
|
||||
return ORBIS_OK;
|
||||
}
|
||||
|
||||
s32 PS4_SYSV_ABI sceNpPartyGetState() {
|
||||
s32 PS4_SYSV_ABI sceNpPartyGetState(OrbisNpPartyState* state) {
|
||||
LOG_ERROR(Lib_NpParty, "(STUBBED) called");
|
||||
*state = OrbisNpPartyState::NotInParty;
|
||||
return ORBIS_OK;
|
||||
}
|
||||
|
||||
|
||||
@@ -11,6 +11,11 @@ class SymbolsResolver;
|
||||
|
||||
namespace Libraries::NpParty {
|
||||
|
||||
enum class OrbisNpPartyState : u16 {
|
||||
NotInParty = 2,
|
||||
InPrivateParty = 3,
|
||||
};
|
||||
|
||||
s32 PS4_SYSV_ABI sceNpPartyCheckCallback();
|
||||
s32 PS4_SYSV_ABI sceNpPartyCreate();
|
||||
s32 PS4_SYSV_ABI sceNpPartyCreateA();
|
||||
@@ -21,7 +26,7 @@ s32 PS4_SYSV_ABI sceNpPartyGetMembers();
|
||||
s32 PS4_SYSV_ABI sceNpPartyGetMembersA();
|
||||
s32 PS4_SYSV_ABI sceNpPartyGetMemberSessionInfo();
|
||||
s32 PS4_SYSV_ABI sceNpPartyGetMemberVoiceInfo();
|
||||
s32 PS4_SYSV_ABI sceNpPartyGetState();
|
||||
s32 PS4_SYSV_ABI sceNpPartyGetState(OrbisNpPartyState* state);
|
||||
s32 PS4_SYSV_ABI sceNpPartyGetStateAsUser();
|
||||
s32 PS4_SYSV_ABI sceNpPartyGetStateAsUserA();
|
||||
s32 PS4_SYSV_ABI sceNpPartyGetVoiceChatPriority();
|
||||
|
||||
8
src/core/libraries/np_party/np_party_error.h
Normal file
8
src/core/libraries/np_party/np_party_error.h
Normal file
@@ -0,0 +1,8 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "core/libraries/error_codes.h"
|
||||
|
||||
constexpr int ORBIS_NP_PARTY_ERROR_NOT_IN_PARTY = 0x80552506;
|
||||
Reference in New Issue
Block a user