Files
SDLPongCPP/TrooperEngineDLL/TrooperEngine/EventEngine/cEventControl.cpp
T
2018-08-15 22:04:06 -04:00

123 lines
2.3 KiB
C++

#include "cEventControl.hpp"
/*** Custom Header Files ***/
#include "../InputEngine/cInput.hpp"
#include "../MathEngine/iVector/iVector2.hpp"
#include "../GUIEngine/cGUI.hpp"
using EventEngine::cEventControl;
using MathEngine::iVector2;
/*static*/ cEventControl* cEventControl::sp_inst = nullptr;
//Private
cEventControl::cEventControl()
{}
cEventControl::~cEventControl()
{
CleanUp();
for (unsigned int i = 0; i < m_children.size(); ++i) {
delete m_children[i];
m_children[i] = nullptr;
}
m_children.clear();
}
//Public
/*static*/ cEventControl& cEventControl::Inst()
{
if (sp_inst == nullptr)
sp_inst = new cEventControl();
return *sp_inst;
}
/*static*/ void cEventControl::Delete()
{
delete sp_inst;
sp_inst = nullptr;
}
//Functions
const bool cEventControl::Initialize() const
{
return true;
}
const bool cEventControl::Setup()
{
return true;
}
void cEventControl::CleanUp()
{
}
/* Checks for Events */
void cEventControl::CheckEvents()
{
SDL_Event event;
while ( SDL_PollEvent(&event)) {
std::vector<EventEngine::cEvent*>::iterator it;
for (it = m_children.begin(); it < m_children.end(); it++) {
(*it)->OnEvent(event);
}
// iVector2 location = { 0, 0 };
// switch (event.type)
// {
// case SDL_KEYUP:
// case SDL_KEYDOWN:
// case SDL_JOYAXISMOTION:
// case SDL_JOYBALLMOTION:
// case SDL_JOYHATMOTION:
// case SDL_JOYBUTTONDOWN:
// case SDL_JOYBUTTONUP:
// InputEngine::cInput::Inst().CheckInputs(event);
// break;
// case SDL_MOUSEBUTTONDOWN:
//
// SDL_GetMouseState(&location.x, &location.y);
// GUIEngine::cGUI::Inst().Event(location, GUIEngine::cGUI::eGUIEventType::MouseButton1);
// break;
// case SDL_MOUSEBUTTONUP:
// break;
// }
}
}
void cEventControl::AddEvent( EventEngine::cEvent* event )
{
m_children.push_back(event);
}
const bool cEventControl::RemoveEvent( EventEngine::cEvent* event )
{
bool rtn = false;
std::vector<EventEngine::cEvent*>::iterator it;
for (it = m_children.begin(); it < m_children.end(); it++) {
if (event == (*it)) {
m_children.erase(it);
rtn = true;
//break out of the for loop
break;
}
}
return rtn;
}
std::vector<EventEngine::cEvent*>& cEventControl::GetEvents()
{
return m_children;
}
///Sets
///Gets
/* Gets return true if Event was initialized */
const bool cEventControl::IsInit() const
{
return true;
}