Demonware stuff 4
This commit is contained in:
parent
98e95347d5
commit
58c14d1998
@ -530,6 +530,8 @@ namespace demonware
|
|||||||
utils::hook::set(0x52AB60_b, 0xC301B0);
|
utils::hook::set(0x52AB60_b, 0xC301B0);
|
||||||
utils::hook::set<uint8_t>(0x52A6D0_b, 0xC3);
|
utils::hook::set<uint8_t>(0x52A6D0_b, 0xC3);
|
||||||
utils::hook::jump(0x52B800_b, get_patching_status_stub);
|
utils::hook::jump(0x52B800_b, get_patching_status_stub);
|
||||||
|
|
||||||
|
utils::hook::set<uint8_t>(0xDC0C00_b, 0xC3); // Live_CheckForFullDisconnect
|
||||||
}
|
}
|
||||||
|
|
||||||
void pre_destroy() override
|
void pre_destroy() override
|
||||||
|
@ -11,6 +11,7 @@ namespace demonware
|
|||||||
lobby_server::lobby_server(std::string name) : tcp_server(std::move(name))
|
lobby_server::lobby_server(std::string name) : tcp_server(std::move(name))
|
||||||
{
|
{
|
||||||
this->register_service<bdAnticheat>();
|
this->register_service<bdAnticheat>();
|
||||||
|
this->register_service<bdAsyncMatchMaking>();
|
||||||
this->register_service<bdBandwidthTest>();
|
this->register_service<bdBandwidthTest>();
|
||||||
this->register_service<bdCMail>();
|
this->register_service<bdCMail>();
|
||||||
this->register_service<bdContentStreaming>();
|
this->register_service<bdContentStreaming>();
|
||||||
|
@ -35,8 +35,9 @@
|
|||||||
#include "services/bdStats3.hpp" // 91
|
#include "services/bdStats3.hpp" // 91
|
||||||
#include "services/bdPublisherVariables.hpp"// 95
|
#include "services/bdPublisherVariables.hpp"// 95
|
||||||
// AccountLinking // 86
|
// AccountLinking // 86
|
||||||
#include "services/bdPresence.hpp" //103
|
#include "services/bdPresence.hpp" // 103
|
||||||
#include "services/bdMarketingComms.hpp" //104
|
#include "services/bdMarketingComms.hpp" // 104
|
||||||
#include "services/bdUNK123.hpp" //123
|
#include "services/bdUNK123.hpp" // 123
|
||||||
#include "services/bdMatchMaking.hpp" //138
|
#include "services/bdMatchMaking.hpp" // 138
|
||||||
#include "services/bdReward.hpp" //139
|
#include "services/bdReward.hpp" // 139
|
||||||
|
#include "services/bdAsyncMatchMaking.hpp" // 145
|
||||||
|
76
src/client/game/demonware/services/bdAsyncMatchMaking.cpp
Normal file
76
src/client/game/demonware/services/bdAsyncMatchMaking.cpp
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
#include <std_include.hpp>
|
||||||
|
#include "../services.hpp"
|
||||||
|
|
||||||
|
namespace demonware
|
||||||
|
{
|
||||||
|
bdAsyncMatchMaking::bdAsyncMatchMaking() : service(145, "bdAsyncMatchMaking")
|
||||||
|
{
|
||||||
|
this->register_task(2, &bdAsyncMatchMaking::unk2);
|
||||||
|
this->register_task(3, &bdAsyncMatchMaking::unk3);
|
||||||
|
this->register_task(6, &bdAsyncMatchMaking::unk6);
|
||||||
|
this->register_task(7, &bdAsyncMatchMaking::unk7);
|
||||||
|
}
|
||||||
|
|
||||||
|
void bdAsyncMatchMaking::unk2(service_server* server, byte_buffer* /*buffer*/) const
|
||||||
|
{
|
||||||
|
// TODO:
|
||||||
|
auto reply = server->create_reply(this->task_id());
|
||||||
|
reply->send();
|
||||||
|
}
|
||||||
|
|
||||||
|
void bdAsyncMatchMaking::unk3(service_server* server, byte_buffer* /*buffer*/) const
|
||||||
|
{
|
||||||
|
// TODO:
|
||||||
|
auto reply = server->create_reply(this->task_id());
|
||||||
|
reply->send();
|
||||||
|
}
|
||||||
|
|
||||||
|
void bdAsyncMatchMaking::unk6(service_server* server, byte_buffer* /*buffer*/) const
|
||||||
|
{
|
||||||
|
class task6Result final : public bdTaskResult
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
std::string jsondata;
|
||||||
|
|
||||||
|
void serialize(byte_buffer* data) override
|
||||||
|
{
|
||||||
|
data->write_string(jsondata);
|
||||||
|
}
|
||||||
|
|
||||||
|
void deserialize(byte_buffer* data) override
|
||||||
|
{
|
||||||
|
data->read_string(&jsondata);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// TODO:
|
||||||
|
auto reply = server->create_reply(this->task_id());
|
||||||
|
|
||||||
|
rapidjson::Document response_json;
|
||||||
|
response_json.SetObject();
|
||||||
|
|
||||||
|
response_json.AddMember("matchmaking_id", 0, response_json.GetAllocator());
|
||||||
|
|
||||||
|
rapidjson::Document backoff_timing_info;
|
||||||
|
backoff_timing_info.SetObject();
|
||||||
|
response_json.AddMember("backoff_timing_info", backoff_timing_info, response_json.GetAllocator());
|
||||||
|
|
||||||
|
rapidjson::StringBuffer s_buffer{};
|
||||||
|
rapidjson::Writer<rapidjson::StringBuffer, rapidjson::Document::EncodingType, rapidjson::ASCII<>>
|
||||||
|
writer(s_buffer);
|
||||||
|
response_json.Accept(writer);
|
||||||
|
|
||||||
|
auto response = new task6Result;
|
||||||
|
response->jsondata = std::string(s_buffer.GetString(), s_buffer.GetSize());
|
||||||
|
reply->add(response);
|
||||||
|
|
||||||
|
reply->send();
|
||||||
|
}
|
||||||
|
|
||||||
|
void bdAsyncMatchMaking::unk7(service_server* server, byte_buffer* /*buffer*/) const
|
||||||
|
{
|
||||||
|
// TODO:
|
||||||
|
auto reply = server->create_reply(this->task_id());
|
||||||
|
reply->send();
|
||||||
|
}
|
||||||
|
}
|
16
src/client/game/demonware/services/bdAsyncMatchMaking.hpp
Normal file
16
src/client/game/demonware/services/bdAsyncMatchMaking.hpp
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
namespace demonware
|
||||||
|
{
|
||||||
|
class bdAsyncMatchMaking final : public service
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
bdAsyncMatchMaking();
|
||||||
|
|
||||||
|
private:
|
||||||
|
void unk2(service_server* server, byte_buffer* buffer) const;
|
||||||
|
void unk3(service_server* server, byte_buffer* buffer) const;
|
||||||
|
void unk6(service_server* server, byte_buffer* buffer) const;
|
||||||
|
void unk7(service_server* server, byte_buffer* buffer) const;
|
||||||
|
};
|
||||||
|
}
|
@ -11,11 +11,11 @@ namespace demonware
|
|||||||
{
|
{
|
||||||
bdStorage::bdStorage() : service(10, "bdStorage")
|
bdStorage::bdStorage() : service(10, "bdStorage")
|
||||||
{
|
{
|
||||||
this->register_task(20, &bdStorage::list_publisher_files);
|
this->register_task(20, &bdStorage::listAllPublisherFiles);
|
||||||
this->register_task(21, &bdStorage::get_publisher_file);
|
this->register_task(21, &bdStorage::getPublisherFile);
|
||||||
this->register_task(24, &bdStorage::set_user_file);
|
this->register_task(24, &bdStorage::uploadAndValidateFiles);
|
||||||
this->register_task(16, &bdStorage::get_user_file);
|
this->register_task(16, &bdStorage::getFiles);
|
||||||
this->register_task(12, &bdStorage::unk12);
|
this->register_task(12, &bdStorage::getFile);
|
||||||
|
|
||||||
this->map_publisher_resource("motd-.*\\.txt", DW_MOTD);
|
this->map_publisher_resource("motd-.*\\.txt", DW_MOTD);
|
||||||
// this->map_publisher_resource("ffotd-.*\\.ff", DW_FASTFILE);
|
// this->map_publisher_resource("ffotd-.*\\.ff", DW_FASTFILE);
|
||||||
@ -64,7 +64,7 @@ namespace demonware
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void bdStorage::list_publisher_files(service_server* server, byte_buffer* buffer)
|
void bdStorage::listAllPublisherFiles(service_server* server, byte_buffer* buffer)
|
||||||
{
|
{
|
||||||
uint32_t date;
|
uint32_t date;
|
||||||
uint16_t num_results, offset;
|
uint16_t num_results, offset;
|
||||||
@ -101,7 +101,7 @@ namespace demonware
|
|||||||
reply->send();
|
reply->send();
|
||||||
}
|
}
|
||||||
|
|
||||||
void bdStorage::get_publisher_file(service_server* server, byte_buffer* buffer)
|
void bdStorage::getPublisherFile(service_server* server, byte_buffer* buffer)
|
||||||
{
|
{
|
||||||
std::string unk, filename;
|
std::string unk, filename;
|
||||||
buffer->read_string(&unk);
|
buffer->read_string(&unk);
|
||||||
@ -134,7 +134,7 @@ namespace demonware
|
|||||||
return "players2/user/" + name;
|
return "players2/user/" + name;
|
||||||
}
|
}
|
||||||
|
|
||||||
void bdStorage::set_user_file(service_server* server, byte_buffer* buffer) const
|
void bdStorage::uploadAndValidateFiles(service_server* server, byte_buffer* buffer) const
|
||||||
{
|
{
|
||||||
uint64_t owner;
|
uint64_t owner;
|
||||||
uint32_t numfiles;
|
uint32_t numfiles;
|
||||||
@ -182,7 +182,7 @@ namespace demonware
|
|||||||
reply->send();
|
reply->send();
|
||||||
}
|
}
|
||||||
|
|
||||||
void bdStorage::get_user_file(service_server* server, byte_buffer* buffer) const
|
void bdStorage::getFiles(service_server* server, byte_buffer* buffer) const
|
||||||
{
|
{
|
||||||
std::string platform;
|
std::string platform;
|
||||||
uint32_t numunk;
|
uint32_t numunk;
|
||||||
@ -236,7 +236,7 @@ namespace demonware
|
|||||||
reply->send();
|
reply->send();
|
||||||
}
|
}
|
||||||
|
|
||||||
void bdStorage::unk12(service_server* server, byte_buffer* buffer) const
|
void bdStorage::getFile(service_server* server, byte_buffer* buffer) const
|
||||||
{
|
{
|
||||||
// TODO:
|
// TODO:
|
||||||
auto reply = server->create_reply(this->task_id());
|
auto reply = server->create_reply(this->task_id());
|
||||||
|
@ -16,11 +16,11 @@ namespace demonware
|
|||||||
void map_publisher_resource_variant(const std::string& expression, resource_variant resource);
|
void map_publisher_resource_variant(const std::string& expression, resource_variant resource);
|
||||||
bool load_publisher_resource(const std::string& name, std::string& buffer);
|
bool load_publisher_resource(const std::string& name, std::string& buffer);
|
||||||
|
|
||||||
void list_publisher_files(service_server* server, byte_buffer* buffer);
|
void listAllPublisherFiles(service_server* server, byte_buffer* buffer);
|
||||||
void get_publisher_file(service_server* server, byte_buffer* buffer);
|
void getPublisherFile(service_server* server, byte_buffer* buffer);
|
||||||
void set_user_file(service_server* server, byte_buffer* buffer) const;
|
void uploadAndValidateFiles(service_server* server, byte_buffer* buffer) const;
|
||||||
void get_user_file(service_server* server, byte_buffer* buffer) const;
|
void getFiles(service_server* server, byte_buffer* buffer) const;
|
||||||
void unk12(service_server* server, byte_buffer* buffer) const;
|
void getFile(service_server* server, byte_buffer* buffer) const;
|
||||||
|
|
||||||
static std::string get_user_file_path(const std::string& name);
|
static std::string get_user_file_path(const std::string& name);
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user