Reverted last commit. Also testing to delay OnPlayerSpawn event for clients. No progress...

This commit is contained in:
stiffly
2016-02-11 21:23:53 +01:00
parent 49d4a45ef8
commit afd9e24df6
3 changed files with 54 additions and 36 deletions
+2
View File
@@ -35,6 +35,8 @@ public:
void Connect(std::string address, int port); void Connect(std::string address, int port);
void Update() override; void Update() override;
std::vector<Events::PlayerSpawned> m_PlayerSpawnEvents;
void parseSpawnEvents();
// Save for children // Save for children
std::unique_ptr<SnapshotFilter> m_SnapshotFilter = nullptr; std::unique_ptr<SnapshotFilter> m_SnapshotFilter = nullptr;
+25 -4
View File
@@ -54,7 +54,6 @@ void Client::Update()
parseMessageType(packet); parseMessageType(packet);
} }
} }
while (m_Reliable.IsSocketAvailable()) { while (m_Reliable.IsSocketAvailable()) {
// Packet will get real data in receive // Packet will get real data in receive
Packet packet(MessageType::Invalid); Packet packet(MessageType::Invalid);
@@ -177,14 +176,35 @@ void Client::parseKick()
m_IsConnected = false; m_IsConnected = false;
} }
void Client::parseSpawnEvents()
{
for (int i = 0; i < m_PlayerSpawnEvents.size(); i++) {
Events::PlayerSpawned e;
e.Player = EntityWrapper(m_World, m_ServerIDToClientID[m_PlayerSpawnEvents[i].Player.ID]);
e.Spawner = EntityWrapper(m_World, m_ServerIDToClientID[m_PlayerSpawnEvents[i].Spawner.ID]);
e.PlayerID = -1;
e.PlayerName = m_PlayerSpawnEvents[i].PlayerName;
m_EventBroker->Publish(e);
}
m_PlayerSpawnEvents.clear();
}
void Client::parsePlayersSpawned(Packet& packet) void Client::parsePlayersSpawned(Packet& packet)
{ {
//Events::PlayerSpawned e;
//e.Player = EntityWrapper(m_World, m_ServerIDToClientID[packet.ReadPrimitive<EntityID>()]);
//e.Spawner = EntityWrapper(m_World, m_ServerIDToClientID[packet.ReadPrimitive<EntityID>()]);
//e.PlayerID = -1;
//e.PlayerName = packet.ReadString();
//m_EventBroker->Publish(e);
Events::PlayerSpawned e; Events::PlayerSpawned e;
e.Player = EntityWrapper(m_World, m_ServerIDToClientID[packet.ReadPrimitive<EntityID>()]); e.Player = EntityWrapper(m_World, packet.ReadPrimitive<EntityID>());
e.Spawner = EntityWrapper(m_World, m_ServerIDToClientID[packet.ReadPrimitive<EntityID>()]); e.Spawner = EntityWrapper(m_World, packet.ReadPrimitive<EntityID>());
e.PlayerID = -1; e.PlayerID = -1;
e.PlayerName = packet.ReadString(); e.PlayerName = packet.ReadString();
m_EventBroker->Publish(e); m_PlayerSpawnEvents.push_back(e);
parseSpawnEvents();
} }
void Client::parseEntityDeletion(Packet & packet) void Client::parseEntityDeletion(Packet & packet)
@@ -322,6 +342,7 @@ void Client::parseSnapshot(Packet& packet)
m_World->SetParent(localEntityID, m_ServerIDToClientID.at(serverParentID)); m_World->SetParent(localEntityID, m_ServerIDToClientID.at(serverParentID));
} }
} }
// parseSpawnEvents();
} }
void Client::disconnect() void Client::disconnect()
+1 -6
View File
@@ -92,8 +92,7 @@ void PickingPass::Draw(RenderScene& scene)
m_PickingColorsToEntity[glm::ivec2(pickColor[0], pickColor[1])] = pickInfo; m_PickingColorsToEntity[glm::ivec2(pickColor[0], pickColor[1])] = pickInfo;
if (modelJob->Model->IsSkinned()) if (modelJob->Model->IsSkinned()) {
{
m_PickingSkinnedProgram->Bind(); m_PickingSkinnedProgram->Bind();
glUniformMatrix4fv(glGetUniformLocation(shaderSkinnedHandle, "M"), 1, GL_FALSE, glm::value_ptr(modelJob->Matrix)); glUniformMatrix4fv(glGetUniformLocation(shaderSkinnedHandle, "M"), 1, GL_FALSE, glm::value_ptr(modelJob->Matrix));
glUniformMatrix4fv(glGetUniformLocation(shaderSkinnedHandle, "V"), 1, GL_FALSE, glm::value_ptr(scene.Camera->ViewMatrix())); glUniformMatrix4fv(glGetUniformLocation(shaderSkinnedHandle, "V"), 1, GL_FALSE, glm::value_ptr(scene.Camera->ViewMatrix()));
@@ -104,11 +103,7 @@ void PickingPass::Draw(RenderScene& scene)
std::vector<glm::mat4> frameBones; std::vector<glm::mat4> frameBones;
frameBones = modelJob->Skeleton->GetBones(); frameBones = modelJob->Skeleton->GetBones();
// temp check revise later crashed client when connectiong
// frameBones.size() was 0 // Jocke
if (frameBones.size() > 0) {
glUniformMatrix4fv(glGetUniformLocation(shaderSkinnedHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0])); glUniformMatrix4fv(glGetUniformLocation(shaderSkinnedHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
}
} }
} else { } else {
m_PickingProgram->Bind(); m_PickingProgram->Bind();