From 17349153c5be76a2638fbdcfc1660d9b0fa44dba Mon Sep 17 00:00:00 2001 From: Salanto <62221668+Salanto@users.noreply.github.com> Date: Sat, 7 Feb 2026 22:46:02 +0100 Subject: [PATCH] Move PR/PU register step to RD packet Under complaint of Omni that this step preceeds the ASS packet and thus makes loading that media a pain in the ass for WebAO it was moved here. Should it be in a better place? Yes. Am I paid enough to code that place today? No. --- src/packet/packet_rd.cpp | 1 + src/server.cpp | 6 +++++- src/server.h | 5 +++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/packet/packet_rd.cpp b/src/packet/packet_rd.cpp index aabf20b5..e6cae789 100644 --- a/src/packet/packet_rd.cpp +++ b/src/packet/packet_rd.cpp @@ -63,5 +63,6 @@ void PacketRD::handlePacket(AreaData *area, AOClient &client) const } emit client.joined(); area->addClient(-1, client.clientId()); + client.getServer()->getPlayerStateObserver()->registerClient(&client); client.arup(client.ARUPType::PLAYER_COUNT, true); // Tell everyone there is a new player } diff --git a/src/server.cpp b/src/server.cpp index 2a3260e6..57ab9584 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -153,7 +153,6 @@ void Server::clientConnected() int user_id = m_available_ids.pop(); AOClient *client = new AOClient(this, l_socket, l_socket, user_id, music_manager); m_clients_ids.insert(user_id, client); - m_player_state_observer.registerClient(client); int multiclient_count = 1; bool is_at_multiclient_limit = false; @@ -277,6 +276,11 @@ QHostAddress Server::parseToIPv4(QHostAddress f_remote_ip) return l_remote_ip; } +PlayerStateObserver *Server::getPlayerStateObserver() +{ + return &m_player_state_observer; +} + void Server::reloadSettings() { ConfigManager::reloadSettings(); diff --git a/src/server.h b/src/server.h index 6f94a38d..f0f8d2c5 100644 --- a/src/server.h +++ b/src/server.h @@ -336,6 +336,11 @@ class Server : public QObject */ QHostAddress parseToIPv4(QHostAddress f_remote_ip); + /** + * @brief Returns a raw-pointer of the curr + */ + PlayerStateObserver *getPlayerStateObserver(); + public slots: /** * @brief Convenience class to call a reload of available configuraiton elements.