diff --git a/include/Core/Engine.h b/include/Core/Engine.h index a4e7b38..d3d164b 100755 --- a/include/Core/Engine.h +++ b/include/Core/Engine.h @@ -34,6 +34,7 @@ #include "CTemplate.h" #include "Core/ConfigFile.h" #include "Core/EventBroker.h" +#include "Input/InputSystem.h" #include "Rendering/CModel.h" #include "Rendering/CSprite.h" #include "Rendering/CPointLight.h" @@ -176,6 +177,9 @@ public: m_World->ComponentFactory.Register(); m_World->ComponentFactory.Register(); + //m_World->SystemFactory.Register( + // [this]() { return new Systems::InputSystem(m_World.get(), m_EventBroker); }); + //m_World->AddSystem(); m_World->SystemFactory.Register( [this]() { return new Systems::LevelSystem(m_World.get(), m_EventBroker); }); m_World->AddSystem(); @@ -257,9 +261,10 @@ public: m_LastTime = currentTime; // Update input + m_EventBroker->Swap(); m_InputManager->Update(dt); - // Swap event queues to get fresh input data in the read queue - //m_EventBroker->Swap(); + //m_EventBroker->Process(); + m_EventBroker->Swap(); //ResourceManager::Update(); if (m_GameIsRunning) { @@ -284,6 +289,7 @@ public: m_EventBroker->Process(); // Swap event queues m_EventBroker->Swap(); + m_EventBroker->Clear(); glfwPollEvents(); } diff --git a/include/Core/EventBroker.h b/include/Core/EventBroker.h index ce2a5a4..8ef1f95 100644 --- a/include/Core/EventBroker.h +++ b/include/Core/EventBroker.h @@ -121,6 +121,7 @@ public: int Process(); int Process(std::string contextTypeName); void Swap(); + void Clear(); void Unsubscribe(BaseEventRelay &relay); private: diff --git a/src/game/Core/EventBroker.cpp b/src/game/Core/EventBroker.cpp index ce91fd9..d07b95b 100644 --- a/src/game/Core/EventBroker.cpp +++ b/src/game/Core/EventBroker.cpp @@ -91,8 +91,11 @@ int dd::EventBroker::Process(std::string contextTypeName) void dd::EventBroker::Swap() { std::swap(m_EventQueueRead, m_EventQueueWrite); - m_EventQueueWrite->clear(); +} +void dd::EventBroker::Clear() +{ + m_EventQueueWrite->clear(); } void dd::EventBroker::subscribeImmediate(dd::BaseEventRelay& relay) diff --git a/src/game/Game/PadSystem.cpp b/src/game/Game/PadSystem.cpp index fb6390f..7312983 100755 --- a/src/game/Game/PadSystem.cpp +++ b/src/game/Game/PadSystem.cpp @@ -56,6 +56,7 @@ void dd::Systems::PadSystem::Initialize() cModel->ModelFile = "Models/Ship/Ship.obj"; auto pad = m_World->AddComponent(ent); + pad->SlowdownModifier = 10.f; m_World->CommitEntity(ent); m_Edge = 3.2 - (ctransform->Scale.x / 2);