Made the EventManager able to process Events
This commit is contained in:
@@ -27,10 +27,31 @@
|
||||
* @see EventManager.h
|
||||
*/
|
||||
#include "EventManager.h"
|
||||
#include <cstdlib>
|
||||
#include <iostream>
|
||||
|
||||
namespace OpenArena
|
||||
{
|
||||
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__
|
||||
#define __OpenArena_EventMangaer_h__
|
||||
|
||||
#include "Events/Event.h"
|
||||
#include "list.h"
|
||||
|
||||
/**
|
||||
* @file EventManager.h
|
||||
* @breif Specification of the EventManager class
|
||||
@@ -36,6 +39,10 @@ namespace OpenArena
|
||||
{
|
||||
public:
|
||||
EventManager();
|
||||
void SendEvent(Event* event);
|
||||
void RegisterEventHandler(Event::EventHandler* eventHandler);
|
||||
private:
|
||||
list<Event::EventHandler*> eventHandlers;
|
||||
};
|
||||
}
|
||||
#endif /*__OpenArena_EventMangaer_h__*/
|
||||
|
||||
Reference in New Issue
Block a user