From ff6e2167d4d4a81b21443f1439dd8907bd915421 Mon Sep 17 00:00:00 2001 From: Tleety Date: Thu, 3 Mar 2016 11:25:06 +0100 Subject: [PATCH] Some new events and changes to ScoreSystem --- include/Engine/Network/EPlayerConnected.h | 17 + include/Engine/Network/Server.h | 1 + include/Game/Systems/ScoreScreenSystem.h | 8 + resources/Schema/Components/ScoreIdentity.xsd | 44 +- resources/Schema/Components/ScoreScreen.xsd | 16 +- resources/Schema/Entities/CP_Rocky.xml | 2105 ++++++++--------- resources/Schema/Entities/ScoreIdentity.xml | 98 + src/Engine/Network/Server.cpp | 5 + src/Game/Game.cpp | 2 + src/Game/Systems/ScoreScreenSystem.cpp | 39 +- 10 files changed, 1251 insertions(+), 1084 deletions(-) create mode 100644 include/Engine/Network/EPlayerConnected.h create mode 100644 resources/Schema/Entities/ScoreIdentity.xml diff --git a/include/Engine/Network/EPlayerConnected.h b/include/Engine/Network/EPlayerConnected.h new file mode 100644 index 00000000..8c12dd3d --- /dev/null +++ b/include/Engine/Network/EPlayerConnected.h @@ -0,0 +1,17 @@ +#ifndef Events_PlayerConnected +#define Events_PlayerConnected + +#include "Core/EventBroker.h" + +namespace Events +{ + +struct PlayerConnected : public Event +{ + std::string PlayerName = ""; + int PlayerID = -1; +}; + +} +#endif // !Events_PlayerConnected + diff --git a/include/Engine/Network/Server.h b/include/Engine/Network/Server.h index 7bcefc65..6ccbb4bd 100644 --- a/include/Engine/Network/Server.h +++ b/include/Engine/Network/Server.h @@ -21,6 +21,7 @@ #include "Core/EEntityDeleted.h" #include "Core/EComponentDeleted.h" #include "Core/EAmmoPickup.h" +#include "Network/EPlayerConnected.h" class Server : public Network { diff --git a/include/Game/Systems/ScoreScreenSystem.h b/include/Game/Systems/ScoreScreenSystem.h index ec95d6a2..7f7c4064 100644 --- a/include/Game/Systems/ScoreScreenSystem.h +++ b/include/Game/Systems/ScoreScreenSystem.h @@ -2,8 +2,12 @@ #define ScoreScreenSystem_h__ #include "Core/System.h" +#include "Core/ResourceManager.h" +#include "Core/EntityFile.h" #include "Core/EPlayerDeath.h" #include "Core/EPlayerSpawned.h" +#include "Network/EPlayerConnected.h" +#include "Network/EPlayerDisconnected.h" #include "GLM.h" class ScoreScreenSystem : public PureSystem @@ -17,6 +21,10 @@ public: bool OnPlayerDeath(const Events::PlayerDeath& e); EventRelay m_EPlayerSpawned; bool OnPlayerSpawn(const Events::PlayerSpawned& e); + EventRelay m_EPlayerConnected; + bool OnPlayerConnected(const Events::PlayerConnected& e); + EventRelay m_EPlayerDisconnected; + bool OnPlayerDisconnected(const Events::PlayerDisconnected& e); private: struct PlayerData { diff --git a/resources/Schema/Components/ScoreIdentity.xsd b/resources/Schema/Components/ScoreIdentity.xsd index 5ab80c22..d1a85bee 100644 --- a/resources/Schema/Components/ScoreIdentity.xsd +++ b/resources/Schema/Components/ScoreIdentity.xsd @@ -3,24 +3,30 @@ A component tracking data for the score of a player. - - - A unique id for tracking identities - - - The Kills per death score. - - - The amount of kills. - - - The amount of deaths. - - - Ping of a player. - - - If the player is currently connected or not - + + + + A name for tracking score identities, this should be unique. + + + An id for tracking identities + + + The Kills per death score. + + + The amount of kills. + + + The amount of deaths. + + + Ping of a player. + + + If the player is currently connected or not + + + \ No newline at end of file diff --git a/resources/Schema/Components/ScoreScreen.xsd b/resources/Schema/Components/ScoreScreen.xsd index d07b4a19..c8d3fa59 100644 --- a/resources/Schema/Components/ScoreScreen.xsd +++ b/resources/Schema/Components/ScoreScreen.xsd @@ -3,11 +3,15 @@ The screen where player scores will be shown. - - The amount of score identities this scoreboard hold - - - Where the next scoreIdentity should be placed. - + + + + The amount of score identities this scoreboard hold + + + Where the next scoreIdentity should be placed. + + + \ No newline at end of file diff --git a/resources/Schema/Entities/CP_Rocky.xml b/resources/Schema/Entities/CP_Rocky.xml index 8617886f..0adcbe6e 100644 --- a/resources/Schema/Entities/CP_Rocky.xml +++ b/resources/Schema/Entities/CP_Rocky.xml @@ -29,6 +29,26 @@ + + + + + Models/Props/Walls/SciFiWallSmall1.mesh + + + + + + + + + + Models/Props/Walls/SciFiWallSmall2.mesh + + + + + @@ -62,26 +82,6 @@ - - - - - Models/Props/Walls/SciFiWallSmall1.mesh - - - - - - - - - - Models/Props/Walls/SciFiWallSmall2.mesh - - - - - @@ -116,7 +116,6 @@ - Models/Core/UnitCube.mesh @@ -132,8 +131,8 @@ - - + + @@ -599,6 +598,36 @@ + + + + + 6 + Models/Props/Stones/ShinyStoneCrystalRed.mesh + + + + + + + + + + + + + + 6 + Models/Props/Stones/ShinyStoneCrystalRed.mesh + + + + + + + + + @@ -775,36 +804,6 @@ - - - - - 6 - Models/Props/Stones/ShinyStoneCrystalRed.mesh - - - - - - - - - - - - - - 6 - Models/Props/Stones/ShinyStoneCrystalRed.mesh - - - - - - - - - @@ -828,11 +827,11 @@ 2 - + - + @@ -849,7 +848,7 @@ - + @@ -875,11 +874,11 @@ 2 - + - + @@ -896,7 +895,7 @@ - + @@ -922,11 +921,11 @@ 2 - + - + @@ -943,7 +942,7 @@ - + @@ -969,11 +968,11 @@ 2 - + - + @@ -990,7 +989,7 @@ - + @@ -1016,11 +1015,11 @@ 2 - + - + @@ -1037,7 +1036,7 @@ - + @@ -1063,11 +1062,11 @@ 2 - + - + @@ -1084,7 +1083,7 @@ - + @@ -1110,11 +1109,11 @@ 2 - + - + @@ -1131,7 +1130,7 @@ - + @@ -2379,11 +2378,11 @@ 2 - + - + @@ -2400,7 +2399,7 @@ - + @@ -2426,11 +2425,11 @@ 2 - + - + @@ -2447,7 +2446,7 @@ - + @@ -2694,6 +2693,679 @@ + + + + + + + + + + Models/Props/Stones/MediumStone2.mesh + + + + + + + + + + + + + + Models/Props/Stones/MediumStone1.mesh + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + + + Models/Props/Stones/BigStone.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + + + Models/Props/Stones/MediumStone2.mesh + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + Models/Props/Stones/MediumStone1.mesh + + + + + + + + + + + + + Models/Props/Stones/MediumStone2.mesh + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + + + Models/Props/Stones/BigStone.mesh + + + + + + + + + + + + + Models/Props/Stones/BigStone.mesh + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + + + + Models/Props/Stones/MediumStone1.mesh + + + + + + + + + + + + Models/Props/Stones/BigStone.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/MediumStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/MediumStone2.mesh + + + + + + + + + + + + + + Models/Props/Stones/MediumStone1.mesh + + + + + + + + + + + + + Models/Props/Stones/BigStone.mesh + + + + + + + + + + + + + + Models/Props/Stones/MediumStone2.mesh + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/BigStone.mesh + + + + + + + + + + + + + Models/Props/Stones/BigStone.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/BigStone.mesh + + + + + + + + + + + + + Models/Props/Stones/BigStone.mesh + + + + + + + + + + + + + Models/Props/Stones/BigStone.mesh + + + + + + + + + + + + + Models/Props/Stones/MediumStone2.mesh + + + + + + + + + + + + + + + + + + + + + Models/Props/Pillars/SciFiBridgePillar1.mesh + + + + + + + + + + + + + + Models/Props/Bridges/SciFiBridge1Blue.mesh + + + + + + + + + + + + Models/Props/Pillars/SciFiBridgePillar1.mesh + + + + + + + + + + + + + + + Models/Props/Bridges/SciFiBridge1Blue.mesh + + + + + + + + + + + + + + Models/Props/Bridges/SciFiBridge1Blue.mesh + + + + + + + + + + + + Models/Props/Bridges/SciFiBridgeDefense.mesh + + + + + + + + + + + + Models/Props/Bridges/SciFiBridgeDefense.mesh + + + + + + + + + + + Models/Props/Bridges/SciFiBridgeDefense.mesh + + + + + + + + + + + Models/Props/Bridges/SciFiBridgeDefense.mesh + + + + + + + + + + + + + + + + + + Models/Props/Bridges/SciFiBridgeDefense.mesh + + + + + + + + + + + + Models/Props/Bridges/SciFiBridgeDefense.mesh + + + + + + + + + + + Models/Props/Bridges/SciFiBridgeDefense.mesh + + + + + + + + + + + Models/Props/Bridges/SciFiBridgeDefense.mesh + + + + + + + + + + + + + + + + + + + + + + + + + + + Models/Props/SciFiHolder1.mesh + + + + + + + + + + + + + Models/Props/SciFiHolder1.mesh + + + + + + + + + + + + + + Models/Core/UnitPlane.mesh + + true + + + + + + + + + @@ -3234,147 +3906,6 @@ - - - - Models/Props/PickUps/PickUpHolder.mesh - - - - - - - - - - - - 2 - - - - - - - - - - - - - - 8 - - - - Models/Props/PickUps/HealthPickUp.mesh - - - - - - - - - - - - - - - - - Models/Props/PickUps/PickUpHolder.mesh - - - - - - - - - - - - 2 - - - - - - - - - - - - - - 8 - - - - Models/Props/PickUps/HealthPickUp.mesh - - - - - - - - - - - - - - - - - Models/Props/PickUps/PickUpHolder.mesh - - - - - - - - - - - - 2 - - - - - - - - - - - - - - 8 - - - - Models/Props/PickUps/AmmoPickUp.mesh - - - - - - - - - - - - - @@ -3391,11 +3922,11 @@ 2 - + - + @@ -3412,7 +3943,7 @@ - + @@ -3428,55 +3959,8 @@ Models/Props/PickUps/PickUpHolder.mesh - - - - - - - - - - 2 - - - - - - - - - - - - - - 8 - - - - Models/Props/PickUps/HealthPickUp.mesh - - - - - - - - - - - - - - - - - Models/Props/PickUps/PickUpHolder.mesh - - - - + + @@ -3485,11 +3969,11 @@ 2 - + - + @@ -3506,7 +3990,7 @@ - + @@ -3532,11 +4016,11 @@ 2 - + - + @@ -3553,7 +4037,195 @@ - + + + + + + + + + + + + + + Models/Props/PickUps/PickUpHolder.mesh + + + + + + + + + + + + 2 + + + + + + + + + + + + + + 8 + + + + Models/Props/PickUps/AmmoPickUp.mesh + + + + + + + + + + + + + + + + + Models/Props/PickUps/PickUpHolder.mesh + + + + + + + + + + + + 2 + + + + + + + + + + + + + + 8 + + + + Models/Props/PickUps/HealthPickUp.mesh + + + + + + + + + + + + + + + + + Models/Props/PickUps/PickUpHolder.mesh + + + + + + + + + + + + 2 + + + + + + + + + + + + + + 8 + + + + Models/Props/PickUps/HealthPickUp.mesh + + + + + + + + + + + + + + + + + Models/Props/PickUps/PickUpHolder.mesh + + + + + + + + + + + + 2 + + + + + + + + + + + + + + 8 + + + + Models/Props/PickUps/HealthPickUp.mesh + + + + @@ -3565,679 +4237,6 @@ - - - - - - - - - - Models/Props/Stones/MediumStone2.mesh - - - - - - - - - - - - - - Models/Props/Stones/BigStone.mesh - - - - - - - - - - - - - Models/Props/Stones/MediumStone2.mesh - - - - - - - - - - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - - - - - - Models/Props/Stones/MediumStone1.mesh - - - - - - - - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - - - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - - - - - - - - Models/Props/Stones/MediumStone1.mesh - - - - - - - - - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - - - - - Models/Props/Stones/MediumStone1.mesh - - - - - - - - - - - - - Models/Props/Stones/BigStone.mesh - - - - - - - - - - - - - Models/Props/Stones/BigStone.mesh - - - - - - - - - - - - - Models/Props/Stones/BigStone.mesh - - - - - - - - - - - - Models/Props/Stones/MediumStone2.mesh - - - - - - - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - - - - - - - Models/Props/Stones/BigStone.mesh - - - - - - - - - - - - - - Models/Props/Stones/BigStone.mesh - - - - - - - - - - - - - Models/Props/Stones/MediumStone2.mesh - - - - - - - - - - - - - Models/Props/Stones/MediumStone2.mesh - - - - - - - - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - - - - - - - - Models/Props/Stones/MediumStone2.mesh - - - - - - - - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - - - - - - - Models/Props/Stones/BigStone.mesh - - - - - - - - - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - - - - - - Models/Props/Stones/BigStone.mesh - - - - - - - - - - - - - Models/Props/Stones/BigStone.mesh - - - - - - - - - - - - - Models/Props/Stones/MediumStone1.mesh - - - - - - - - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - - - - - - Models/Props/Stones/MediumStone2.mesh - - - - - - - - - - - - - - Models/Props/Stones/BigStone.mesh - - - - - - - - - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - - - - - - - - - - - - - - - - Models/Props/Bridges/SciFiBridge1Blue.mesh - - - - - - - - - - - - - - Models/Props/Bridges/SciFiBridge1Blue.mesh - - - - - - - - - - - - Models/Props/Bridges/SciFiBridgeDefense.mesh - - - - - - - - - - - - Models/Props/Bridges/SciFiBridgeDefense.mesh - - - - - - - - - - - Models/Props/Bridges/SciFiBridgeDefense.mesh - - - - - - - - - - - Models/Props/Bridges/SciFiBridgeDefense.mesh - - - - - - - - - - - - - - - - - - Models/Props/Bridges/SciFiBridgeDefense.mesh - - - - - - - - - - - - Models/Props/Bridges/SciFiBridgeDefense.mesh - - - - - - - - - - - Models/Props/Bridges/SciFiBridgeDefense.mesh - - - - - - - - - - - Models/Props/Bridges/SciFiBridgeDefense.mesh - - - - - - - - - - - - - - - - - - - - Models/Props/Bridges/SciFiBridge1Blue.mesh - - - - - - - - - - - - Models/Props/Pillars/SciFiBridgePillar1.mesh - - - - - - - - - - - - - - - Models/Props/Pillars/SciFiBridgePillar1.mesh - - - - - - - - - - - - - - - - - - - - - Models/Props/SciFiHolder1.mesh - - - - - - - - - - - - - Models/Props/SciFiHolder1.mesh - - - - - - - - - - - - - - Models/Core/UnitPlane.mesh - - true - - - - - - - - - @@ -4486,6 +4485,76 @@ + + + + + Schema/Entities/PlayerRed.xml + + + + + + + + + + + + + + + + Models/Characters/Assault/AssaultTPose.mesh + false + + + + + + + + + + + + Models/Characters/Assault/AssaultTPose.mesh + false + + + + + + + + + + + + Models/Characters/Assault/AssaultTPose.mesh + false + + + + + + + + + + + + Models/Characters/Assault/AssaultTPose.mesh + false + + + + + + + + + @@ -4510,7 +4579,7 @@ false - + @@ -4523,7 +4592,7 @@ false - + @@ -4561,37 +4630,6 @@ - - - - 1 - - - - - - - - - 10 - - - - - - - - - - - 10 - - - - - - - @@ -4603,14 +4641,34 @@ + + + + 1 + + + + + - + 10 - + + + + + + + + + 10 + + + @@ -4629,81 +4687,22 @@ - 10 - + - - - - - - - Schema/Entities/PlayerRed.xml - - - - - - - - - - - - + - - - Models/Characters/Assault/AssaultTPose.mesh - false - + + + 10 + - - - - - - - - - - Models/Characters/Assault/AssaultTPose.mesh - false - - - - - - - - - - - - Models/Characters/Assault/AssaultTPose.mesh - false - - - - - - - - - - - - Models/Characters/Assault/AssaultTPose.mesh - false - - - + diff --git a/resources/Schema/Entities/ScoreIdentity.xml b/resources/Schema/Entities/ScoreIdentity.xml new file mode 100644 index 00000000..7d1e2437 --- /dev/null +++ b/resources/Schema/Entities/ScoreIdentity.xml @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + Simon needs to push shit shit so i can write text from Component + Fonts/DroidSans.ttf,64 + + + + + + + + + + + ID + Fonts/DroidSans.ttf,64 + + + + + + + + + + + DickButt + Fonts/DroidSans.ttf,64 + + + + + + + + + + + 5 + Fonts/DroidSans.ttf,64 + + + + + + + + + + + 12 + Fonts/DroidSans.ttf,64 + + + + + + + + + + + 0.42 + Fonts/DroidSans.ttf,64 + + + + + + + + + + + 84 + Fonts/DroidSans.ttf,64 + + + + + + + + + + diff --git a/src/Engine/Network/Server.cpp b/src/Engine/Network/Server.cpp index 68c00fbe..71889379 100644 --- a/src/Engine/Network/Server.cpp +++ b/src/Engine/Network/Server.cpp @@ -363,6 +363,11 @@ void Server::parseTCPConnect(Packet & packet) m_ConnectedPlayers.at(playerID).TCPAddress = m_Address; m_ConnectedPlayers.at(playerID).TCPPort = m_Port; + Events::PlayerConnected e; + e.PlayerID = playerID; + e.PlayerName = m_ConnectedPlayers.at(playerID).Name; + m_EventBroker->Publish(e); + LOG_INFO("parseTCPConnect: Spectator \"%s\" connected on IP: %s", m_ConnectedPlayers.at(playerID).Name.c_str(), m_ConnectedPlayers.at(playerID).TCPAddress.to_string().c_str()); diff --git a/src/Game/Game.cpp b/src/Game/Game.cpp index ab4b9652..e2055574 100644 --- a/src/Game/Game.cpp +++ b/src/Game/Game.cpp @@ -32,6 +32,7 @@ #include "Game/Systems/KillFeedSystem.h" #include "Game/Systems/BoostSystem.h" #include "Game/Systems/BoostIconsHUDSystem.h" +#include "Game/Systems/ScoreScreenSystem.h" #include "GUI/ButtonSystem.h" #include "GUI/MainMenuSystem.h" @@ -151,6 +152,7 @@ Game::Game(int argc, char* argv[]) m_SystemPipeline->AddSystem(updateOrderLevel, m_Renderer); m_SystemPipeline->AddSystem(updateOrderLevel, m_Renderer); m_SystemPipeline->AddSystem(updateOrderLevel); + m_SystemPipeline->AddSystem(updateOrderLevel); // Populate Octree with collidables ++updateOrderLevel; m_SystemPipeline->AddSystem(updateOrderLevel, m_OctreeCollision, "Collidable"); diff --git a/src/Game/Systems/ScoreScreenSystem.cpp b/src/Game/Systems/ScoreScreenSystem.cpp index c66bdb2d..01a03b52 100644 --- a/src/Game/Systems/ScoreScreenSystem.cpp +++ b/src/Game/Systems/ScoreScreenSystem.cpp @@ -7,11 +7,14 @@ ScoreScreenSystem::ScoreScreenSystem(SystemParams params) { EVENT_SUBSCRIBE_MEMBER(m_EPlayerDeath, &ScoreScreenSystem::OnPlayerDeath); EVENT_SUBSCRIBE_MEMBER(m_EPlayerSpawned, &ScoreScreenSystem::OnPlayerSpawn); + EVENT_SUBSCRIBE_MEMBER(m_EPlayerConnected, &ScoreScreenSystem::OnPlayerConnected); + EVENT_SUBSCRIBE_MEMBER(m_EPlayerDisconnected, &ScoreScreenSystem::OnPlayerDisconnected); } void ScoreScreenSystem::UpdateComponent(EntityWrapper& entity, ComponentWrapper& capturePoint, double dt) { - if(!entity.Valid() || !entity.HasComponent("ScoreScreen")){ + //TODO: Check team al + if(!entity.HasComponent("ScoreScreen")){ return; } @@ -28,7 +31,20 @@ void ScoreScreenSystem::UpdateComponent(EntityWrapper& entity, ComponentWrapper& } if(found == false) { //There is no entry for this player, create one. + auto entityFile = ResourceManager::Load("Schema/Entities/ScoreIdentity.xml"); + EntityWrapper scoreIdentity = entityFile->MergeInto(m_World); + auto cScoreIdentity = scoreIdentity["ScoreIdentity"]; + auto data = it->second; + std::printf("\n\n"); + std::printf(data.Name.c_str()); + std::printf("\n\n"); + (std::string&)cScoreIdentity["Name"] = data.Name; + (int&)cScoreIdentity["ID"] = data.ID; + (int&)cScoreIdentity["Ping"] = 1337; + + m_World->SetName(scoreIdentity.ID, data.Name); + m_World->SetParent(scoreIdentity.ID, entity.ID); } } //For each scoreboard, go through children and see if they have all of the ones needed. @@ -37,16 +53,17 @@ void ScoreScreenSystem::UpdateComponent(EntityWrapper& entity, ComponentWrapper& //Just add a new component to the scorescreen entity, the "ScoreIdentity" component. } -void ScoreScreenSystem::OnPlayerDeath(const Events::PlayerDeath& e) +bool ScoreScreenSystem::OnPlayerDeath(const Events::PlayerDeath& e) { //When player die, add it to his score, and when possible the player who killed him. + return 0; } -void ScoreScreenSystem::OnPlayerSpawn(const Events::PlayerSpawned& e) +bool ScoreScreenSystem::OnPlayerSpawn(const Events::PlayerSpawned& e) { //When a player spawn, add a new entry to the score screen. if(!e.Player.Valid()) { - return; + return 0; } EntityWrapper entity = e.Player; @@ -58,7 +75,7 @@ void ScoreScreenSystem::OnPlayerSpawn(const Events::PlayerSpawned& e) data.Name = e.PlayerName; data.Player = e.Player; if(!entity.HasComponent("Team")) { - return; + return 0; } data.Team = (int)entity["Team"]["Team"]; @@ -66,5 +83,15 @@ void ScoreScreenSystem::OnPlayerSpawn(const Events::PlayerSpawned& e) m_PlayerIdentities.insert(list); m_PlayerCounter++; } - + return 0; +} + +bool ScoreScreenSystem::OnPlayerConnected(const Events::PlayerConnected& e) +{ + return 0; +} + +bool ScoreScreenSystem::OnPlayerDisconnected(const Events::PlayerDisconnected& e) +{ + return 0; }