diff --git a/src/network/client_network_manager.cpp b/src/network/client_network_manager.cpp index c38ba7012..b636156f4 100644 --- a/src/network/client_network_manager.cpp +++ b/src/network/client_network_manager.cpp @@ -175,13 +175,6 @@ void ClientNetworkManager::reset() } -void ClientNetworkManager::sendPacket(const NetworkString& data, bool reliable) -{ - if (STKHost::get()->getPeerCount() > 1) - Log::warn("ClientNetworkManager", "Ambiguous send of data.\n"); - STKHost::get()->getPeers()[0]->sendPacket(data, reliable); -} - STKPeer* ClientNetworkManager::getPeer() { return STKHost::get()->getPeers()[0]; diff --git a/src/network/client_network_manager.hpp b/src/network/client_network_manager.hpp index 5e5b11683..dc3d71b20 100644 --- a/src/network/client_network_manager.hpp +++ b/src/network/client_network_manager.hpp @@ -47,11 +47,6 @@ class ClientNetworkManager : public NetworkManager virtual void run(); /*! \brief Resets the network socket. */ virtual void reset(); - /*! \brief Sends a packet to the server. - * \param data : The network 8-bit string to send. - * \param reliable : If set to true, ENet will ensure that the packet is received. - */ - virtual void sendPacket(const NetworkString& data, bool reliable = true); /*! \brief Get the peer (the server) * \return The peer with whom we're connected (if it exists). NULL elseway. diff --git a/src/network/network_manager.hpp b/src/network/network_manager.hpp index c27228768..734d1ee7e 100644 --- a/src/network/network_manager.hpp +++ b/src/network/network_manager.hpp @@ -60,8 +60,6 @@ private: friend class AbstractSingleton; public: virtual void run(); - virtual void sendPacket(const NetworkString& data, - bool reliable = true) = 0; // Game related functions virtual bool isServer() = 0; diff --git a/src/network/protocol_manager.cpp b/src/network/protocol_manager.cpp index c485faf9c..6dea1c7e1 100644 --- a/src/network/protocol_manager.cpp +++ b/src/network/protocol_manager.cpp @@ -176,7 +176,7 @@ void ProtocolManager::sendMessage(Protocol* sender, const NetworkString& message NetworkString new_message(1+message.size()); new_message.ai8(sender->getProtocolType()); // add one byte to add protocol type new_message += message; - NetworkManager::getInstance()->sendPacket(new_message, reliable); + STKHost::get()->sendMessage(new_message, reliable); } // sendMessage // ---------------------------------------------------------------------------- diff --git a/src/network/stk_host.cpp b/src/network/stk_host.cpp index 268eaf94c..538637079 100644 --- a/src/network/stk_host.cpp +++ b/src/network/stk_host.cpp @@ -179,6 +179,24 @@ bool STKHost::connect(const TransportAddress& address) return true; } // connect +// -------------------------------------------------------------------- +/** Sends a message to the server if this is a client, or to all + * clients if this is the server. + * \param data Message to sent. + * \param reliable If the message is to be sent reliable. + */ +void STKHost::sendMessage(const NetworkString& data, bool reliable) +{ + if (m_is_server) + broadcastPacket(data, reliable); + else + { + if (m_peers.size() > 1) + Log::warn("ClientNetworkManager", "Ambiguous send of data."); + m_peers[0]->sendPacket(data, reliable); + } +} // sendMessage + // ---------------------------------------------------------------------------- /** \brief Starts the listening of events from ENet. * Starts a thread for receiveData that updates it as often as possible. diff --git a/src/network/stk_host.hpp b/src/network/stk_host.hpp index f824a79cb..15613d8b1 100644 --- a/src/network/stk_host.hpp +++ b/src/network/stk_host.hpp @@ -129,6 +129,7 @@ public: void reset(); bool connect(const TransportAddress& peer); + void sendMessage(const NetworkString& data, bool reliable = true); void sendPacketExcept(STKPeer* peer, const NetworkString& data, bool reliable = true);