Made the EventManager able to process Events
This commit is contained in:
@@ -27,10 +27,31 @@
|
|||||||
* @see EventManager.h
|
* @see EventManager.h
|
||||||
*/
|
*/
|
||||||
#include "EventManager.h"
|
#include "EventManager.h"
|
||||||
|
#include <cstdlib>
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
namespace OpenArena
|
namespace OpenArena
|
||||||
{
|
{
|
||||||
EventManager::EventManager()
|
EventManager::EventManager()
|
||||||
{
|
{
|
||||||
};
|
}
|
||||||
};
|
|
||||||
|
void EventManager::SendEvent(Event* event)
|
||||||
|
{
|
||||||
|
unsigned int index;
|
||||||
|
|
||||||
|
for(index=0; index < eventHandlers.Length(); index++)
|
||||||
|
{
|
||||||
|
Event::EventHandler* handler = eventHandlers[index];
|
||||||
|
if(handler->Handles(event->GetEventType()))
|
||||||
|
{
|
||||||
|
handler->HandleEvent(event);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void EventManager::RegisterEventHandler(Event::EventHandler* eventHandler)
|
||||||
|
{
|
||||||
|
eventHandlers.Insert(eventHandler);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|||||||
@@ -20,6 +20,9 @@
|
|||||||
#ifndef __OpenArena_EventMangaer_h__
|
#ifndef __OpenArena_EventMangaer_h__
|
||||||
#define __OpenArena_EventMangaer_h__
|
#define __OpenArena_EventMangaer_h__
|
||||||
|
|
||||||
|
#include "Events/Event.h"
|
||||||
|
#include "list.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @file EventManager.h
|
* @file EventManager.h
|
||||||
* @breif Specification of the EventManager class
|
* @breif Specification of the EventManager class
|
||||||
@@ -36,6 +39,10 @@ namespace OpenArena
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
EventManager();
|
EventManager();
|
||||||
|
void SendEvent(Event* event);
|
||||||
|
void RegisterEventHandler(Event::EventHandler* eventHandler);
|
||||||
|
private:
|
||||||
|
list<Event::EventHandler*> eventHandlers;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
#endif /*__OpenArena_EventMangaer_h__*/
|
#endif /*__OpenArena_EventMangaer_h__*/
|
||||||
|
|||||||
Reference in New Issue
Block a user