From e24a84c52d87591d58d848a9c229dfc0f73911f1 Mon Sep 17 00:00:00 2001 From: stiffly Date: Thu, 11 Feb 2016 23:52:55 +0100 Subject: [PATCH] Server now deletes the player on a new player spawn. --- src/Engine/Network/Client.cpp | 5 +++-- src/Game/Systems/PlayerSpawnSystem.cpp | 9 ++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Engine/Network/Client.cpp b/src/Engine/Network/Client.cpp index d6aece06..d75b8412 100644 --- a/src/Engine/Network/Client.cpp +++ b/src/Engine/Network/Client.cpp @@ -287,7 +287,8 @@ void Client::parseSnapshot(Packet& packet) for (std::size_t i = 0; i < numInputCommands; ++i) { Events::InputCommand e; e.PlayerID = packet.ReadPrimitive(); - e.Player = EntityWrapper(m_World, m_ServerIDToClientID.at(packet.ReadPrimitive())); + EntityID player = packet.ReadPrimitive(); + e.Player = EntityWrapper(m_World, m_ServerIDToClientID.at(player)); e.Command = packet.ReadString(); e.Value = packet.ReadPrimitive(); m_EventBroker->Publish(e); @@ -349,7 +350,7 @@ void Client::parseSnapshot(Packet& packet) m_World->SetParent(localEntityID, m_ServerIDToClientID.at(serverParentID)); } } - // parseSpawnEvents(); + parseSpawnEvents(); } void Client::disconnect() diff --git a/src/Game/Systems/PlayerSpawnSystem.cpp b/src/Game/Systems/PlayerSpawnSystem.cpp index 507ed0f5..e2775280 100644 --- a/src/Game/Systems/PlayerSpawnSystem.cpp +++ b/src/Game/Systems/PlayerSpawnSystem.cpp @@ -71,18 +71,17 @@ bool PlayerSpawnSystem::OnInputCommand(const Events::InputCommand& e) bool PlayerSpawnSystem::OnPlayerSpawned(Events::PlayerSpawned& e) { // When a player is actually spawned (since the actual spawning is handled on the server) - if (!IsClient) { - return false; - } - // Check if a player already exists + // Hack should be moved. if (m_PlayerEntities.count(e.PlayerID) != 0) { // TODO: Disallow infinite respawning here if (m_PlayerEntities[e.PlayerID].Valid()) { m_World->DeleteEntity(m_PlayerEntities[e.PlayerID].ID); } } - + if (!IsClient) { + return false; + } // Store the player for future reference m_PlayerEntities[e.PlayerID] = e.Player;