Initial GameID/TitleID changes

This commit is contained in:
Ninetime 2024-10-22 22:20:14 -04:00
parent 431221f172
commit 5d17e30021
6 changed files with 26 additions and 6 deletions

View file

@ -478,6 +478,7 @@ table TusDeleteMultiSlotDataRequest {
table SetPresenceRequest {
title:string;
title_id:string;
status:string;
comment:string;
data:[uint8];

View file

@ -6102,13 +6102,17 @@ struct SetPresenceRequest FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table
typedef SetPresenceRequestBuilder Builder;
enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
VT_TITLE = 4,
VT_STATUS = 6,
VT_COMMENT = 8,
VT_DATA = 10
VT_TITLE_ID = 6,
VT_STATUS = 8,
VT_COMMENT = 10,
VT_DATA = 12
};
const ::flatbuffers::String *title() const {
return GetPointer<const ::flatbuffers::String *>(VT_TITLE);
}
const ::flatbuffers::String *title_id() const {
return GetPointer<const ::flatbuffers::String *>(VT_TITLE_ID);
}
const ::flatbuffers::String *status() const {
return GetPointer<const ::flatbuffers::String *>(VT_STATUS);
}
@ -6122,6 +6126,8 @@ struct SetPresenceRequest FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table
return VerifyTableStart(verifier) &&
VerifyOffset(verifier, VT_TITLE) &&
verifier.VerifyString(title()) &&
VerifyOffset(verifier, VT_TITLE_ID) &&
verifier.VerifyString(title_id()) &&
VerifyOffset(verifier, VT_STATUS) &&
verifier.VerifyString(status()) &&
VerifyOffset(verifier, VT_COMMENT) &&
@ -6139,6 +6145,9 @@ struct SetPresenceRequestBuilder {
void add_title(::flatbuffers::Offset<::flatbuffers::String> title) {
fbb_.AddOffset(SetPresenceRequest::VT_TITLE, title);
}
void add_title_id(::flatbuffers::Offset<::flatbuffers::String> title_id) {
fbb_.AddOffset(SetPresenceRequest::VT_TITLE_ID, title_id);
}
void add_status(::flatbuffers::Offset<::flatbuffers::String> status) {
fbb_.AddOffset(SetPresenceRequest::VT_STATUS, status);
}
@ -6162,6 +6171,7 @@ struct SetPresenceRequestBuilder {
inline ::flatbuffers::Offset<SetPresenceRequest> CreateSetPresenceRequest(
::flatbuffers::FlatBufferBuilder &_fbb,
::flatbuffers::Offset<::flatbuffers::String> title = 0,
::flatbuffers::Offset<::flatbuffers::String> title_id = 0,
::flatbuffers::Offset<::flatbuffers::String> status = 0,
::flatbuffers::Offset<::flatbuffers::String> comment = 0,
::flatbuffers::Offset<::flatbuffers::Vector<uint8_t>> data = 0) {
@ -6169,6 +6179,7 @@ inline ::flatbuffers::Offset<SetPresenceRequest> CreateSetPresenceRequest(
builder_.add_data(data);
builder_.add_comment(comment);
builder_.add_status(status);
builder_.add_title_id(title_id);
builder_.add_title(title);
return builder_.Finish();
}
@ -6176,16 +6187,19 @@ inline ::flatbuffers::Offset<SetPresenceRequest> CreateSetPresenceRequest(
inline ::flatbuffers::Offset<SetPresenceRequest> CreateSetPresenceRequestDirect(
::flatbuffers::FlatBufferBuilder &_fbb,
const char *title = nullptr,
const char *title_id = nullptr,
const char *status = nullptr,
const char *comment = nullptr,
const std::vector<uint8_t> *data = nullptr) {
auto title__ = title ? _fbb.CreateString(title) : 0;
auto title_id__ = title_id ? _fbb.CreateString(title_id) : 0;
auto status__ = status ? _fbb.CreateString(status) : 0;
auto comment__ = comment ? _fbb.CreateString(comment) : 0;
auto data__ = data ? _fbb.CreateVector<uint8_t>(*data) : 0;
return CreateSetPresenceRequest(
_fbb,
title__,
title_id__,
status__,
comment__,
data__);

View file

@ -881,6 +881,10 @@ namespace np
presence_self.pr_com_id = *context;
presence_self.pr_title = fmt::truncate(Emu.GetTitle(), SCE_NP_BASIC_PRESENCE_TITLE_SIZE_MAX - 1);
if (!Emu.GetTitleID().empty())
{
presence_self.pr_title_id = Emu.GetTitleID();
}
}
if (g_cfg.net.psn_status != np_psn_status::psn_rpcn || !is_psn_active)

View file

@ -509,6 +509,7 @@ namespace np
{
SceNpCommunicationId pr_com_id;
std::string pr_title;
std::string pr_title_id;
std::string pr_status;
std::string pr_comment;
std::vector<u8> pr_data;

View file

@ -2205,10 +2205,10 @@ namespace rpcn
return forge_request_with_com_id(builder, communication_id, CommandType::TusDeleteMultiSlotData, req_id);
}
bool rpcn_client::send_presence(const SceNpCommunicationId& pr_com_id, const std::string& pr_title, const std::string& pr_status, const std::string& pr_comment, const std::vector<u8>& pr_data)
bool rpcn_client::send_presence(const SceNpCommunicationId& pr_com_id, const std::string& pr_title, const std::string& pr_title_id, const std::string& pr_status, const std::string& pr_comment, const std::vector<u8>& pr_data)
{
flatbuffers::FlatBufferBuilder builder(1024);
auto req_finished = CreateSetPresenceRequest(builder, builder.CreateString(pr_title), builder.CreateString(pr_status), builder.CreateString(pr_comment), builder.CreateVector(pr_data));
auto req_finished = CreateSetPresenceRequest(builder, builder.CreateString(pr_title), builder.CreateString(pr_title_id), builder.CreateString(pr_status), builder.CreateString(pr_comment), builder.CreateVector(pr_data));
builder.Finish(req_finished);
return forge_request_with_com_id(builder, pr_com_id, CommandType::SetPresence, rpcn_request_counter.fetch_add(1));

View file

@ -515,7 +515,7 @@ namespace rpcn
bool tus_get_multiuser_data_status(u32 req_id, SceNpCommunicationId& communication_id, const std::vector<SceNpOnlineId>& targetNpIdArray, SceNpTusSlotId slotId, s32 arrayNum, bool vuser);
bool tus_get_friends_data_status(u32 req_id, SceNpCommunicationId& communication_id, SceNpTusSlotId slotId, bool includeSelf, s32 sortType, s32 arrayNum);
bool tus_delete_multislot_data(u32 req_id, SceNpCommunicationId& communication_id, const SceNpOnlineId& targetNpId, vm::cptr<SceNpTusSlotId> slotIdArray, s32 arrayNum, bool vuser);
bool send_presence(const SceNpCommunicationId& pr_com_id, const std::string& pr_title, const std::string& pr_status, const std::string& pr_comment, const std::vector<u8>& pr_data);
bool send_presence(const SceNpCommunicationId& pr_com_id, const std::string& pr_title, const std::string& pr_title_id, const std::string& pr_status, const std::string& pr_comment, const std::vector<u8>& pr_data);
bool createjoin_room_gui(u32 req_id, const SceNpCommunicationId& communication_id, const SceNpMatchingAttr* attr_list);
bool join_room_gui(u32 req_id, const SceNpRoomId& room_id);
bool leave_room_gui(u32 req_id, const SceNpRoomId& room_id);