From f7decf41d8d0062901cd39c42a3669a80537c7df Mon Sep 17 00:00:00 2001 From: LaG1924 <12997935+LaG1924@users.noreply.github.com> Date: Thu, 3 Aug 2017 20:03:59 +0500 Subject: 2017-08-03 --- src/Event.hpp | 35 ++++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) (limited to 'src/Event.hpp') diff --git a/src/Event.hpp b/src/Event.hpp index 2d830a4..229da19 100644 --- a/src/Event.hpp +++ b/src/Event.hpp @@ -19,8 +19,10 @@ enum class EventType { ConnectionSuccessfull, GlobalAppState, Disconnect, - SendPacket, - ReceivePacket, + RequestNetworkClient, + RegisterNetworkClient, + PlayerConnected, + RemoveLoadingScreen, }; struct EchoData { @@ -36,8 +38,10 @@ struct ConnectToServerData { unsigned short port; }; -struct ConnectionSuccessfullData { +class NetworkClient; +struct ConnectionSuccessfullData { + NetworkClient *ptr; }; enum class GlobalState { @@ -65,8 +69,27 @@ struct ReceivePacketData { std::shared_ptr packet; }; +struct RequestNetworkClientData { + +}; + +struct RegisterNetworkClientData { + NetworkClient *ptr; +}; + +class GameState; + +struct PlayerConnectedData { + GameState *ptr; +}; + +struct RemoveLoadingScreenData { + +}; + using EventData = std::variant; + GlobalAppStateData, DisconnectData, SendPacketData, ReceivePacketData, RequestNetworkClientData, + RegisterNetworkClientData, PlayerConnectedData, RemoveLoadingScreenData>; struct Event { EventType type; @@ -80,10 +103,12 @@ class EventListener { std::map handlers; //TODO: There must be more elegant solution than std::variant of all data - std::mutex eventsMutex; + std::mutex handlersMutex; std::queue events; + std::mutex eventsMutex; + void PushEvent(Event event); public: -- cgit v1.2.3