Connections and disconnections are working across different clients

This commit is contained in:
Kayne Ruse
2013-12-07 01:33:27 +11:00
parent 1c032bfc47
commit 3b05476689
5 changed files with 78 additions and 7 deletions
+6 -2
View File
@@ -66,6 +66,10 @@ InWorld::InWorld(ConfigUtility* const arg1, UDPNetworkUtility* const arg2, int*
//send it
network.Send(Channels::SERVER, &packet, sizeof(NetworkPacket));
//request a sync
packet.meta.type = NetworkPacket::Type::SYNCHRONIZE;
network.Send(Channels::SERVER, &packet, sizeof(NetworkPacket));
}
InWorld::~InWorld() {
@@ -209,8 +213,8 @@ void InWorld::HandlePlayerDelete(NetworkPacket packet) {
void InWorld::HandlePlayerUpdate(NetworkPacket packet) {
if (playerCharacters.find(packet.playerInfo.playerIndex) == playerCharacters.end()) {
//TODO: reroute to HandlePlayerNew()
throw(std::runtime_error("Cannot update non-existant players"));
HandlePlayerNew(packet);
return;
}
playerCharacters[packet.playerInfo.playerIndex].SetPosition(packet.playerInfo.position);