diff --git a/src/Engine/Network/Client.cpp b/src/Engine/Network/Client.cpp index 020e0cb7..10af98b7 100644 --- a/src/Engine/Network/Client.cpp +++ b/src/Engine/Network/Client.cpp @@ -181,14 +181,13 @@ void Client::parseSpawnEvents() std::vector tempSpawn; for (int i = 0; i < m_PlayerSpawnEvents.size(); i++) { Events::PlayerSpawned e; - if (!serverClientMapsHasEntity(m_PlayerSpawnEvents.at(i).Player.ID) || - !serverClientMapsHasEntity(m_PlayerSpawnEvents.at(i).Spawner.ID)) { + if (!serverClientMapsHasEntity(m_PlayerSpawnEvents.at(i).Player.ID)) { tempSpawn.push_back(m_PlayerSpawnEvents.at(i)); continue; } e.Player = EntityWrapper(m_World, m_ServerIDToClientID.at(m_PlayerSpawnEvents.at(i).Player.ID)); - e.Spawner = EntityWrapper(m_World, m_ServerIDToClientID.at(m_PlayerSpawnEvents.at(i).Spawner.ID)); - e.PlayerID = -1; + //e.Spawner = EntityWrapper(m_World, m_ServerIDToClientID.at(m_PlayerSpawnEvents.at(i).Spawner.ID)); + e.PlayerID = -1; e.PlayerName = m_PlayerSpawnEvents.at(i).PlayerName; m_EventBroker->Publish(e); } diff --git a/src/Engine/Network/Server.cpp b/src/Engine/Network/Server.cpp index 1500377a..7bb2722c 100644 --- a/src/Engine/Network/Server.cpp +++ b/src/Engine/Network/Server.cpp @@ -165,17 +165,16 @@ void Server::addInputCommandsToPacket(Packet& packet) void Server::addChildrenToPacket(Packet & packet, EntityID entityID) { - // HACK: Only sync players for now, since the map turned out to be TOO LARGE to send in one snapshot and Simon's computer shits itself - EntityWrapper entity(m_World, entityID); - if (!entity.Valid() || !shouldSendToClient(entity)) { - return; - } - auto itPair = m_World->GetChildren(entityID); std::unordered_map worldComponentPools = m_World->GetComponentPools(); // Loop through every child for (auto it = itPair.first; it != itPair.second; it++) { EntityID childEntityID = it->second; + // HACK: Only sync players for now, since the map turned out to be TOO LARGE to send in one snapshot and Simon's computer shits itself + EntityWrapper childEntity(m_World, childEntityID); + if (!shouldSendToClient(childEntity)) { + continue; + } // Write EntityID and parentsID and Entity name packet.WritePrimitive(childEntityID); @@ -398,11 +397,9 @@ bool Server::OnPlayerSpawned(const Events::PlayerSpawned & e) bool Server::OnEntityDeleted(const Events::EntityDeleted & e) { if (!e.Cascaded) { - if (shouldSendToClient(EntityWrapper(m_World, e.DeletedEntity))) { - Packet packet = Packet(MessageType::EntityDeleted); - packet.WritePrimitive(e.DeletedEntity); - reliableBroadcast(packet); - } + Packet packet = Packet(MessageType::EntityDeleted); + packet.WritePrimitive(e.DeletedEntity); + reliableBroadcast(packet); } return false; } @@ -458,7 +455,7 @@ void Server::parseOnInputCommand(Packet& packet) e.Player = EntityWrapper(m_World, m_ConnectedPlayers.at(player).EntityID); e.Value = packet.ReadPrimitive(); m_EventBroker->Publish(e); - if (e.Command == "PrimaryFire") { + if (e.Command == "PrimaryFire" || e.Command == "Reload") { m_InputCommandsToBroadcast.push_back(e); } //LOG_INFO("Server::parseOnInputCommand: Command is %s. Value is %f. PlayerID is %i.", e.Command.c_str(), e.Value, e.PlayerID);