From 9cac9497965b79081a5d2ef7a83fadef0994ef40 Mon Sep 17 00:00:00 2001 From: fallenoak Date: Sun, 5 Oct 2025 00:01:37 -0500 Subject: [PATCH] feat(net): finish message read logic for character enumeration --- src/net/connection/RealmConnection.cpp | 16 +++++++++++----- src/net/connection/RealmConnection.hpp | 10 ++++++++++ 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/net/connection/RealmConnection.cpp b/src/net/connection/RealmConnection.cpp index a6c9158..ab6295d 100644 --- a/src/net/connection/RealmConnection.cpp +++ b/src/net/connection/RealmConnection.cpp @@ -257,11 +257,17 @@ int32_t RealmConnection::HandleCharEnum(uint32_t msgId, uint32_t time, CDataStor if (!characterLimitExceeded) { if (!msg->IsRead()) { - // TODO what are these fields? - uint32_t unknown; - for (uint32_t i = 0; i < 10; i++) { - msg->Get(unknown); - } + // Race restrictions + msg->Get(this->m_restrictHuman); + msg->Get(this->m_restrictDwarf); + msg->Get(this->m_restrictGnome); + msg->Get(this->m_restrictNightElf); + msg->Get(this->m_restrictDraenei); + msg->Get(this->m_restrictOrc); + msg->Get(this->m_restrictTroll); + msg->Get(this->m_restrictTauren); + msg->Get(this->m_restrictUndead); + msg->Get(this->m_restrictBloodElf); } if (msg->IsRead()) { diff --git a/src/net/connection/RealmConnection.hpp b/src/net/connection/RealmConnection.hpp index b7eb8a5..2b817ea 100644 --- a/src/net/connection/RealmConnection.hpp +++ b/src/net/connection/RealmConnection.hpp @@ -25,6 +25,16 @@ class RealmConnection : public NetClient { // Member variables RealmResponse* m_realmResponse; + uint32_t m_restrictHuman; + uint32_t m_restrictDwarf; + uint32_t m_restrictGnome; + uint32_t m_restrictNightElf; + uint32_t m_restrictDraenei; + uint32_t m_restrictOrc; + uint32_t m_restrictTroll; + uint32_t m_restrictTauren; + uint32_t m_restrictUndead; + uint32_t m_restrictBloodElf; TSFixedArray m_characterList; uint8_t m_authenticated = 0; uint32_t m_queuePosition = 0;