Replaced Protocol::sendMessage (which was either a send or a broadcast
depending on if the caller is a client or server) with explicitly named functions.
This commit is contained in:
parent
c9d3577a13
commit
4b9d9cfc92
@ -139,7 +139,17 @@ void Protocol::sendMessageToPeersChangingToken(NetworkString *message)
|
||||
} // sendMessageToPeersChangingToken
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
void Protocol::sendMessage(NetworkString *message, bool reliable)
|
||||
/** Broadcasts a message from the server to all clients.
|
||||
*/
|
||||
void Protocol::broadcastToClients(NetworkString *message, bool reliable)
|
||||
{
|
||||
STKHost::get()->sendMessage(message, reliable);
|
||||
STKHost::get()->broadcastPacket(message, reliable);
|
||||
} // broadcastToClients
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
/** Sends a message from a client to the server.
|
||||
*/
|
||||
void Protocol::sendToServer(NetworkString *message, bool reliable)
|
||||
{
|
||||
STKHost::get()->sendToServer(message, reliable);
|
||||
} // sendMessage
|
||||
|
@ -125,8 +125,9 @@ public:
|
||||
bool checkDataSizeAndToken(Event* event, unsigned int minimum_size);
|
||||
bool isByteCorrect(Event* event, int byte_nb, int value);
|
||||
void sendMessageToPeersChangingToken(NetworkString *message);
|
||||
void sendMessage(NetworkString *message,
|
||||
bool reliable = true);
|
||||
void broadcastToClients(NetworkString *message, bool reliable=true);
|
||||
void sendToServer(NetworkString *message,
|
||||
bool reliable = true);
|
||||
void requestStart();
|
||||
void requestPause();
|
||||
void requestUnpause();
|
||||
|
@ -68,7 +68,7 @@ void ClientLobbyRoomProtocol::requestKartSelection(const std::string &kart_name)
|
||||
NetworkString *r = getNetworkString(7+kart_name.size());
|
||||
r->setToken(m_server->getClientServerToken());
|
||||
r->addUInt8(LE_KART_SELECTION).addUInt8(4).encodeString(kart_name);
|
||||
sendMessage(r, true);
|
||||
sendToServer(r, true);
|
||||
delete r;
|
||||
} // requestKartSelection
|
||||
|
||||
@ -81,7 +81,7 @@ void ClientLobbyRoomProtocol::voteMajor(uint32_t major)
|
||||
// size_token (4), token, size major(1),major
|
||||
request->addUInt8(LE_VOTE_MAJOR).addUInt8(4)
|
||||
.addUInt8(4).addUInt32(major);
|
||||
sendMessage(request, true);
|
||||
sendToServer(request, true);
|
||||
delete request;
|
||||
} // voteMajor
|
||||
|
||||
@ -94,7 +94,7 @@ void ClientLobbyRoomProtocol::voteRaceCount(uint8_t count)
|
||||
// size_token (4), token, size race count(1), count
|
||||
request->addUInt8(LE_VOTE_RACE_COUNT).addUInt8(4)
|
||||
.addUInt8(1).addUInt8(count);
|
||||
sendMessage(request, true);
|
||||
sendToServer(request, true);
|
||||
delete request;
|
||||
} // voteRaceCount
|
||||
|
||||
@ -107,7 +107,7 @@ void ClientLobbyRoomProtocol::voteMinor(uint32_t minor)
|
||||
// size_token (4), token, size minor(1),minor
|
||||
request->addUInt8(LE_VOTE_MINOR).addUInt8(4)
|
||||
.addUInt8(4).addUInt32(minor);
|
||||
sendMessage(request, true);
|
||||
sendToServer(request, true);
|
||||
delete request;
|
||||
} // voteMinor
|
||||
|
||||
@ -121,7 +121,7 @@ void ClientLobbyRoomProtocol::voteTrack(const std::string &track,
|
||||
// size_token (4), token, size track, track, size #track, #track
|
||||
request->addUInt8(LE_VOTE_TRACK).addUInt8(4)
|
||||
.encodeString(track).addUInt8(1).addUInt8(track_nb);
|
||||
sendMessage(request, true);
|
||||
sendToServer(request, true);
|
||||
delete request;
|
||||
} // voteTrack
|
||||
|
||||
@ -134,7 +134,7 @@ void ClientLobbyRoomProtocol::voteReversed(bool reversed, uint8_t track_nb)
|
||||
// size_token (4), token, size reversed(1),reversed, size #track, #track
|
||||
request->addUInt8(LE_VOTE_REVERSE).addUInt8(4)
|
||||
.addUInt8(1).addUInt8(reversed).addUInt8(1).addUInt8(track_nb);
|
||||
sendMessage(request, true);
|
||||
sendToServer(request, true);
|
||||
delete request;
|
||||
} // voteReversed
|
||||
|
||||
@ -147,7 +147,7 @@ void ClientLobbyRoomProtocol::voteLaps(uint8_t laps, uint8_t track_nb)
|
||||
// size_token (4), token, size laps(1),laps, size #track, #track
|
||||
request->addUInt8(LE_VOTE_LAPS)
|
||||
.addUInt8(1).addUInt8(laps).addUInt8(1).addUInt8(track_nb);
|
||||
sendMessage(request, true);
|
||||
sendToServer(request, true);
|
||||
} // voteLaps
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@ -265,7 +265,7 @@ void ClientLobbyRoomProtocol::update()
|
||||
// 4 (size of id), global id
|
||||
ns->addUInt8(LE_CONNECTION_REQUESTED).encodeString(name)
|
||||
.encodeString(NetworkConfig::get()->getPassword());
|
||||
sendMessage(ns);
|
||||
sendToServer(ns);
|
||||
delete ns;
|
||||
m_state = REQUESTING_CONNECTION;
|
||||
}
|
||||
|
@ -164,5 +164,5 @@ void ControllerEventsProtocol::controllerAction(Controller* controller,
|
||||
ns->addUInt8((uint8_t)(action)).addUInt32(value);
|
||||
|
||||
Log::info("ControllerEventsProtocol", "Action %d value %d", action, value);
|
||||
sendMessage(ns, false); // send message to server
|
||||
sendToServer(ns, false); // send message to server
|
||||
} // controllerAction
|
||||
|
@ -93,7 +93,7 @@ void KartUpdateProtocol::update()
|
||||
"Sending %d's positions %f %f %f",
|
||||
kart->getWorldKartId(), xyz[0], xyz[1], xyz[2]);
|
||||
}
|
||||
sendMessage(ns, /*reliable*/false);
|
||||
broadcastToClients(ns, /*reliable*/false);
|
||||
delete ns;
|
||||
}
|
||||
else
|
||||
@ -112,7 +112,7 @@ void KartUpdateProtocol::update()
|
||||
"Sending %d's positions %f %f %f",
|
||||
kart->getWorldKartId(), xyz[0], xyz[1], xyz[2]);
|
||||
}
|
||||
sendMessage(ns, /*reliable*/false);
|
||||
sendToServer(ns, /*reliable*/false);
|
||||
delete ns;
|
||||
} // if server
|
||||
} // if (current_time > time + 0.1)
|
||||
|
@ -405,7 +405,7 @@ void ServerLobbyRoomProtocol::kartDisconnected(Event* event)
|
||||
NetworkString *msg = getNetworkString(3);
|
||||
msg->addUInt8(LE_PLAYER_DISCONNECTED).addUInt8(1)
|
||||
.addUInt8(peer->getPlayerProfile()->getGlobalPlayerId());
|
||||
sendMessage(msg);
|
||||
broadcastToClients(msg);
|
||||
delete msg;
|
||||
Log::info("ServerLobbyRoomProtocol", "Player disconnected : id %d",
|
||||
peer->getPlayerProfile()->getGlobalPlayerId());
|
||||
@ -579,6 +579,7 @@ void ServerLobbyRoomProtocol::kartSelectionRequested(Event* event)
|
||||
delete answer;
|
||||
return;
|
||||
}
|
||||
|
||||
// send a kart update to everyone
|
||||
NetworkString *answer = getNetworkString(3+1+kart_name.size());
|
||||
// This message must be handled synchronously on the client.
|
||||
@ -587,7 +588,7 @@ void ServerLobbyRoomProtocol::kartSelectionRequested(Event* event)
|
||||
uint8_t player_id = peer->getPlayerProfile()->getGlobalPlayerId();
|
||||
answer->addUInt8(LE_KART_SELECTION_UPDATE).addUInt8(1).addUInt8(player_id)
|
||||
.encodeString(kart_name);
|
||||
sendMessage(answer);
|
||||
broadcastToClients(answer);
|
||||
delete answer;
|
||||
m_setup->setPlayerKart(player_id, kart_name);
|
||||
} // kartSelectionRequested
|
||||
|
@ -223,7 +223,7 @@ void StartGameProtocol::ready()
|
||||
ns->setToken(STKHost::get()->getPeers()[0]->getClientServerToken());
|
||||
ns->addUInt8(1);
|
||||
Log::info("StartGameProtocol", "Player ready, notifying server.");
|
||||
sendMessage(ns, /*reliable*/true);
|
||||
sendToServer(ns, /*reliable*/true);
|
||||
delete ns;
|
||||
m_state = READY;
|
||||
m_ready = true;
|
||||
|
@ -656,6 +656,15 @@ STKPeer* STKHost::getPeer(ENetPeer *enet_peer)
|
||||
if(m_peers[i]->isSamePeer(enet_peer))
|
||||
return m_peers[i];
|
||||
}
|
||||
|
||||
// Make sure that a client only adds one other peer (=the server).
|
||||
if(NetworkConfig::get()->isClient() && m_peers.size()>0)
|
||||
{
|
||||
Log::error("STKHost",
|
||||
"Client is adding more than one server, ignored for now.");
|
||||
}
|
||||
|
||||
|
||||
//FIXME Should we check #clients here? It might be easier to only
|
||||
// handle this at connect time, not in all getPeer calls.
|
||||
STKPeer *peer = new STKPeer(enet_peer);
|
||||
|
@ -23,8 +23,10 @@
|
||||
#define STK_HOST_HPP
|
||||
|
||||
#include "network/network.hpp"
|
||||
#include "network/network_config.hpp"
|
||||
#include "network/network_string.hpp"
|
||||
#include "network/servers_manager.hpp"
|
||||
#include "network/stk_peer.hpp"
|
||||
#include "network/transport_address.hpp"
|
||||
#include "utils/synchronised.hpp"
|
||||
|
||||
@ -40,7 +42,6 @@
|
||||
|
||||
class GameSetup;
|
||||
class NetworkConsole;
|
||||
class STKPeer;
|
||||
|
||||
class STKHost
|
||||
{
|
||||
@ -234,6 +235,12 @@ public:
|
||||
/** Returns the host id of this host. */
|
||||
uint8_t getMyHostId() const { return m_host_id; }
|
||||
// --------------------------------------------------------------------
|
||||
/** Sends a message from a client to the server. */
|
||||
void sendToServer(NetworkString *data, bool reliable = true)
|
||||
{
|
||||
assert(NetworkConfig::get()->isClient());
|
||||
m_peers[0]->sendPacket(data, reliable);
|
||||
} // sendToServer
|
||||
}; // class STKHost
|
||||
|
||||
#endif // STK_HOST_HPP
|
||||
|
Loading…
x
Reference in New Issue
Block a user