From d6ce8bcfc5b87dd6c923cc6bcce4272fd836b707 Mon Sep 17 00:00:00 2001 From: quaK <38787176+Joelrau@users.noreply.github.com> Date: Wed, 21 Sep 2022 19:13:08 +0300 Subject: [PATCH] Demonware stuff 3 --- src/client/component/demonware.cpp | 6 ++--- src/client/game/demonware/data_types.hpp | 3 ++- .../game/demonware/servers/lobby_server.cpp | 25 ++++++++++--------- src/client/game/demonware/services.hpp | 1 + .../demonware/services/bdMarketingComms.cpp | 1 + .../game/demonware/services/bdUNK123.cpp | 18 +++++++++++++ .../game/demonware/services/bdUNK123.hpp | 13 ++++++++++ 7 files changed, 51 insertions(+), 16 deletions(-) create mode 100644 src/client/game/demonware/services/bdUNK123.cpp create mode 100644 src/client/game/demonware/services/bdUNK123.hpp diff --git a/src/client/component/demonware.cpp b/src/client/component/demonware.cpp index 9422fa7d..b8553791 100644 --- a/src/client/component/demonware.cpp +++ b/src/client/component/demonware.cpp @@ -527,9 +527,9 @@ namespace demonware utils::hook::call(0x1245472_b, return_true); // bdRSAKey::verifySignatureSHA256 // Skip update check in Live_SyncOnlineDataFlags - utils::hook::set(0x14052AB60, 0xC301B0); - utils::hook::set(0x14052A6D0, 0xC3); - utils::hook::jump(0x14052B800, get_patching_status_stub); + utils::hook::set(0x52AB60_b, 0xC301B0); + utils::hook::set(0x52A6D0_b, 0xC3); + utils::hook::jump(0x52B800_b, get_patching_status_stub); } void pre_destroy() override diff --git a/src/client/game/demonware/data_types.hpp b/src/client/game/demonware/data_types.hpp index eb2fc703..234414dc 100644 --- a/src/client/game/demonware/data_types.hpp +++ b/src/client/game/demonware/data_types.hpp @@ -144,8 +144,9 @@ namespace demonware } }; - struct bdFileQueryResult final : public bdTaskResult + class bdFileQueryResult final : public bdTaskResult { + public: uint64_t user_id; std::string platform; std::string filename; diff --git a/src/client/game/demonware/servers/lobby_server.cpp b/src/client/game/demonware/servers/lobby_server.cpp index f26f3629..8b3065c9 100644 --- a/src/client/game/demonware/servers/lobby_server.cpp +++ b/src/client/game/demonware/servers/lobby_server.cpp @@ -17,26 +17,27 @@ namespace demonware this->register_service(); this->register_service(); this->register_service(); + this->register_service(); this->register_service(); - this->register_service(); + this->register_service(); + this->register_service(); + this->register_service(); + this->register_service(); + this->register_service(); + this->register_service(); + this->register_service(); + this->register_service(); + this->register_service(); + this->register_service(); this->register_service(); this->register_service(); this->register_service(); this->register_service(); + this->register_service(); this->register_service(); - this->register_service(); - this->register_service(); - this->register_service(); this->register_service(); + this->register_service(); this->register_service(); - this->register_service(); - this->register_service(); - this->register_service(); - this->register_service(); - this->register_service(); - this->register_service(); - this->register_service(); - this->register_service(); }; void lobby_server::send_reply(reply* data) diff --git a/src/client/game/demonware/services.hpp b/src/client/game/demonware/services.hpp index 05c75d77..37d6701f 100644 --- a/src/client/game/demonware/services.hpp +++ b/src/client/game/demonware/services.hpp @@ -37,5 +37,6 @@ // AccountLinking // 86 #include "services/bdPresence.hpp" //103 #include "services/bdMarketingComms.hpp" //104 +#include "services/bdUNK123.hpp" //123 #include "services/bdMatchMaking.hpp" //138 #include "services/bdReward.hpp" //139 diff --git a/src/client/game/demonware/services/bdMarketingComms.cpp b/src/client/game/demonware/services/bdMarketingComms.cpp index d273c4d9..0bfc2635 100644 --- a/src/client/game/demonware/services/bdMarketingComms.cpp +++ b/src/client/game/demonware/services/bdMarketingComms.cpp @@ -28,6 +28,7 @@ namespace demonware void bdMarketingComms::unk6(service_server* server, byte_buffer* buffer) const { + // TODO: server->create_reply(this->task_id(), game::BD_NO_FILE)->send(); } } diff --git a/src/client/game/demonware/services/bdUNK123.cpp b/src/client/game/demonware/services/bdUNK123.cpp new file mode 100644 index 00000000..4853f3d8 --- /dev/null +++ b/src/client/game/demonware/services/bdUNK123.cpp @@ -0,0 +1,18 @@ +#include +#include "../services.hpp" + +#include "game/game.hpp" + +namespace demonware +{ + bdUNK123::bdUNK123() : service(123, "bdUNK123") + { + this->register_task(1, &bdUNK123::unk1); + } + + void bdUNK123::unk1(service_server* server, byte_buffer* /*buffer*/) const + { + // TODO: + server->create_reply(this->task_id(), game::BD_NO_FILE)->send(); + } +} diff --git a/src/client/game/demonware/services/bdUNK123.hpp b/src/client/game/demonware/services/bdUNK123.hpp new file mode 100644 index 00000000..04e4f0a6 --- /dev/null +++ b/src/client/game/demonware/services/bdUNK123.hpp @@ -0,0 +1,13 @@ +#pragma once + +namespace demonware +{ + class bdUNK123 final : public service + { + public: + bdUNK123(); + + private: + void unk1(service_server* server, byte_buffer* buffer) const; + }; +}