Artic Base: Implement DLC support and other fixes

This commit is contained in:
PabloMK7 2024-07-09 20:17:28 +02:00
parent 1e2be72e5e
commit 194f5273ad
15 changed files with 984 additions and 235 deletions

View file

@ -197,7 +197,8 @@ bool Client::Connect() {
shutdown(main_socket, SHUT_RDWR);
closesocket(main_socket);
LOG_ERROR(Network, "Incompatible server version: {}", version_value);
SignalCommunicationError();
SignalCommunicationError("\nIncompatible Artic Base Server version.\nCheck for updates "
"to Artic Base Server or Citra.");
return false;
}
} else {
@ -369,11 +370,11 @@ std::optional<Client::Response> Client::Send(Request& request) {
return std::optional<Client::Response>(std::move(resp.response));
}
void Client::SignalCommunicationError() {
void Client::SignalCommunicationError(const std::string& msg) {
StopImpl(true);
LOG_CRITICAL(Network, "Communication error");
if (communication_error_callback)
communication_error_callback();
communication_error_callback(msg);
}
void Client::PingFunction() {

View file

@ -80,7 +80,7 @@ public:
StopImpl(false);
}
void SetCommunicationErrorCallback(const std::function<void()>& callback) {
void SetCommunicationErrorCallback(const std::function<void(const std::string&)>& callback) {
communication_error_callback = callback;
}
@ -98,7 +98,7 @@ public:
}
private:
static constexpr const int SERVER_VERSION = 0;
static constexpr const int SERVER_VERSION = 1;
std::string address;
u16 port;
@ -109,8 +109,8 @@ private:
return currRequestID++;
}
void SignalCommunicationError();
std::function<void()> communication_error_callback;
void SignalCommunicationError(const std::string& msg = "");
std::function<void(const std::string&)> communication_error_callback;
std::function<void(u64)> report_artic_event_callback;