From 48dc644076afdd1d861e8d849b47b35063331d2f Mon Sep 17 00:00:00 2001 From: fallenoak Date: Fri, 10 Oct 2025 13:04:19 -0500 Subject: [PATCH] feat(client): implement more of ClientServices::RealmEnumCallback --- src/client/ClientServices.cpp | 8 ++++---- src/net/connection/ClientConnection.cpp | 2 ++ src/net/connection/ClientConnection.hpp | 1 + 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/client/ClientServices.cpp b/src/client/ClientServices.cpp index 33ce847..220601a 100644 --- a/src/client/ClientServices.cpp +++ b/src/client/ClientServices.cpp @@ -484,17 +484,17 @@ void ClientServices::RealmEnumCallback(uint32_t a2) { return; } - if (connection->m_statusCop == COP_CONNECT /* TODO && !connection->byte2F5A */) { + if (connection->m_statusCop == COP_CONNECT && !connection->byte2F5A) { if (ClientServices::LoginConnection()->GetLoginServerType() == 1) { - if ( ClientServices::s_selectRealmInfoValid || ClientServices::SetSelectedRealmInfo(0)) { - // TODO connection->byte2F5A = 1; + if (ClientServices::s_selectRealmInfoValid || ClientServices::SetSelectedRealmInfo(0)) { + connection->byte2F5A = 1; // TODO ClientServices::LoginConnection()->JoinRealm(); } else { connection->Complete(0, 39); } } else { - // TODO connection->byte2F5A = 1; + connection->byte2F5A = 1; ClientServices::ConnectToSelectedServer(); } diff --git a/src/net/connection/ClientConnection.cpp b/src/net/connection/ClientConnection.cpp index e0a74b0..28b9a96 100644 --- a/src/net/connection/ClientConnection.cpp +++ b/src/net/connection/ClientConnection.cpp @@ -53,6 +53,8 @@ void ClientConnection::Complete(int32_t result, int32_t errorCode) { void ClientConnection::Connect() { // TODO + this->byte2F5A = 0; + this->Initiate(COP_CONNECT, 7, nullptr); if (this->m_connected) { diff --git a/src/net/connection/ClientConnection.hpp b/src/net/connection/ClientConnection.hpp index 0af46fc..f96a16f 100644 --- a/src/net/connection/ClientConnection.hpp +++ b/src/net/connection/ClientConnection.hpp @@ -17,6 +17,7 @@ class ClientConnection : public RealmConnection { int32_t m_statusResult = 1; WOWCS_OPS m_statusCop = COP_NONE; int32_t m_errorCode = 0; + uint8_t byte2F5A = 0; void (*m_cleanup)() = nullptr; // Virtual member functions