diff --git a/src/net/grunt/ClientLink.cpp b/src/net/grunt/ClientLink.cpp index 0286e7e..09fac93 100644 --- a/src/net/grunt/ClientLink.cpp +++ b/src/net/grunt/ClientLink.cpp @@ -327,6 +327,24 @@ void Grunt::ClientLink::Disconnect() { this->m_critSect.Leave(); } +void Grunt::ClientLink::GetRealmList() { + if (this->m_state != 6) { + return; + } + + CDataStoreCache<1024> realmListCmd; + + uint8_t opcode = CMD_REALM_LIST; + realmListCmd.Put(opcode); + + uint32_t padding = 0; + realmListCmd.Put(padding); + + realmListCmd.Finalize(); + + this->Send(realmListCmd); +} + void Grunt::ClientLink::LogonNewSession(const Grunt::ClientLink::Logon& logon) { this->SetState(3); diff --git a/src/net/grunt/ClientLink.hpp b/src/net/grunt/ClientLink.hpp index 2491880..dfbaf65 100644 --- a/src/net/grunt/ClientLink.hpp +++ b/src/net/grunt/ClientLink.hpp @@ -69,6 +69,7 @@ class Grunt::ClientLink : public WowConnectionResponse, Grunt::Pending, Grunt::T int32_t CmdXferInitiate(CDataStore& msg); void Connect(const char* a2); void Disconnect(); + void GetRealmList(); void LogonNewSession(const Logon& logon); void PackLogon(CDataStore& msg, const Logon& logon); void ProveVersion(const uint8_t* versionChecksum); diff --git a/src/net/login/GruntLogin.cpp b/src/net/login/GruntLogin.cpp index 2811a12..f6f1c02 100644 --- a/src/net/login/GruntLogin.cpp +++ b/src/net/login/GruntLogin.cpp @@ -79,7 +79,7 @@ void GruntLogin::GetLogonMethod() { } void GruntLogin::GetRealmList() { - // TODO + this->m_clientLink->GetRealmList(); } int32_t GruntLogin::GetServerId() {