diff --git a/include/Engine/Network/EBecomeServer.h b/include/Engine/Network/EBecomeServer.h index fbdf3393..4a7be0c3 100644 --- a/include/Engine/Network/EBecomeServer.h +++ b/include/Engine/Network/EBecomeServer.h @@ -6,9 +6,9 @@ namespace Events { -struct BecomeServer : public Event { }; +struct BecomeServer : public Event +{ }; } - #endif diff --git a/include/Game/Game.h b/include/Game/Game.h index 40217fac..acd62d43 100644 --- a/include/Game/Game.h +++ b/include/Game/Game.h @@ -29,6 +29,7 @@ #include "Network/Network.h" #include "Network/Server.h" #include "Network/Client.h" +#include "Network/EBecomeServer.h" // Sound #include "Sound/SoundManager.h" @@ -70,6 +71,7 @@ private: bool m_IsServer = false; int parseArgs(int argc, char* argv[]); + EventRelay m_EBecomeServer; bool OnBecomeServer(const Events::BecomeServer& e); }; diff --git a/src/Game/Game.cpp b/src/Game/Game.cpp index 7f7bf736..118f21bf 100644 --- a/src/Game/Game.cpp +++ b/src/Game/Game.cpp @@ -58,7 +58,6 @@ Game::Game(int argc, char* argv[]) ResourceManager::RegisterType("EntityFile"); ResourceManager::RegisterType("EntityXMLFile"); ResourceManager::RegisterType("FontFile"); - m_Config = ResourceManager::Load("Config.ini"); ResourceManager::UseThreading = m_Config->Get("Multithreading.ResourceLoading", true); DisableMemoryPool::Value = m_Config->Get("Debug.DisableMemoryPool", false); @@ -99,21 +98,7 @@ Game::Game(int argc, char* argv[]) // Create the sound manager m_SoundManager = new SoundManager(m_World, m_EventBroker); - // Initialize network - if (m_Config->Get("Networking.StartNetwork", false)) { - if (m_IsServer) { - m_NetworkServer = new Server(m_World, m_EventBroker, m_NetworkPort); - m_Renderer->SetWindowTitle(m_Renderer->WindowTitle() + " SERVER"); - } else if (m_IsClient) { - m_NetworkClient = new Client(m_World, m_EventBroker, std::make_unique(m_EventBroker)); - m_NetworkClient->Connect(m_NetworkAddress, m_NetworkPort); - m_Renderer->SetWindowTitle(m_Renderer->WindowTitle() + " CLIENT"); - } - } else { - // If network is disabled, pretend we're a server - m_IsClient = true; - m_IsServer = true; - } + // Create Octrees // TODO: Perhaps the world bounds should be set in some non-arbitrary way instead of this. @@ -179,6 +164,8 @@ Game::Game(int argc, char* argv[]) m_SystemPipeline->AddSystem(updateOrderLevel, m_Renderer, m_RenderFrame); m_LastTime = glfwGetTime(); + EVENT_SUBSCRIBE_MEMBER(m_EBecomeServer, &Game::OnBecomeServer); + } Game::~Game() @@ -210,6 +197,7 @@ void Game::Tick() double dt = currentTime - m_LastTime; m_LastTime = currentTime; + m_EventBroker->Process(); // Handle input in a weird looking but responsive way m_EventBroker->Process(); m_EventBroker->Swap(); @@ -287,5 +275,21 @@ int Game::parseArgs(int argc, char* argv[]) bool Game::OnBecomeServer(const Events::BecomeServer& e) { - + //// Initialize network + //if (m_Config->Get("Networking.StartNetwork", false)) { + // if (m_IsServer) { + // m_NetworkServer = new Server(m_World, m_EventBroker, m_NetworkPort); + // m_Renderer->SetWindowTitle(m_Renderer->WindowTitle() + " SERVER"); + // } else if (m_IsClient) { + // m_NetworkClient = new Client(m_World, m_EventBroker, std::make_unique(m_EventBroker)); + // m_NetworkClient->Connect(m_NetworkAddress, m_NetworkPort); + // m_Renderer->SetWindowTitle(m_Renderer->WindowTitle() + " CLIENT"); + // } + //} else { + // // If network is disabled, pretend we're a server + // m_IsClient = true; + // m_IsServer = true; + //} + //printf("Event received LOL\n"); + //return false; } diff --git a/src/Game/Systems/MainMenuSystem.cpp b/src/Game/Systems/MainMenuSystem.cpp index 4d360c65..49c97030 100644 --- a/src/Game/Systems/MainMenuSystem.cpp +++ b/src/Game/Systems/MainMenuSystem.cpp @@ -45,7 +45,9 @@ bool MainMenuSystem::OnButtonPress(const Events::ButtonPressed& e) bool MainMenuSystem::OnInputCommand(const Events::InputCommand& e) { if (e.Command == "Host" && e.Value == 1) { + printf("Sending event...\n"); m_EventBroker->Publish(Events::BecomeServer()); + return true; } if (e.Command == "Play" && e.Value == 1) { auto menus = m_World->GetComponents("Menu");