From 687c1e94141dcc10ae60be9b92095a9ed0eb95d6 Mon Sep 17 00:00:00 2001 From: fallenoak Date: Fri, 10 Oct 2025 00:17:30 -0500 Subject: [PATCH] feat(client): implement more of ClientServices::RealmEnumCallback --- src/client/ClientServices.cpp | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/src/client/ClientServices.cpp b/src/client/ClientServices.cpp index cb26ef3..33ce847 100644 --- a/src/client/ClientServices.cpp +++ b/src/client/ClientServices.cpp @@ -474,21 +474,35 @@ void ClientServices::RealmEnumCallback(uint32_t a2) { if (a2 == 1) { connection->Complete(0, 23); + return; } if (a2 == 2 || a2 == 3 || a2 == 4) { connection->Complete(0, 37); - return; - } - - // TODO statusCop checks - - if (ClientServices::LoginConnection()->GetLoginServerType() == 1) { - // TODO Battlenet logic return; } - ClientServices::ConnectToSelectedServer(); + if (connection->m_statusCop == COP_CONNECT /* TODO && !connection->byte2F5A */) { + if (ClientServices::LoginConnection()->GetLoginServerType() == 1) { + if ( ClientServices::s_selectRealmInfoValid || ClientServices::SetSelectedRealmInfo(0)) { + // TODO connection->byte2F5A = 1; + + // TODO ClientServices::LoginConnection()->JoinRealm(); + } else { + connection->Complete(0, 39); + } + } else { + // TODO connection->byte2F5A = 1; + + ClientServices::ConnectToSelectedServer(); + } + + return; + } + + if (connection->m_statusCop == COP_GET_REALMS) { + connection->Complete(1, 36); + } }