#include "CorePrereqs.h"
#include "Executor.h"
Defines | |
#define | ORXONOX_SET_EVENT(classname, eventname, functionname, event) ORXONOX_SET_EVENT_GENERIC(eventcontainer##classname##functionname, classname, eventname, functionname, event, BaseObject) |
#define | ORXONOX_SET_EVENT_GENERIC(containername, classname, eventname, functionname, event, subclassname) |
#define | ORXONOX_SET_EVENT_GENERIC_TEMPLATE(containername, classname, eventname, functionname, event, subclassname,...) |
#define | ORXONOX_SET_EVENT_TEMPLATE(classname, eventname, functionname, event,...) ORXONOX_SET_EVENT_GENERIC_TEMPLATE(eventcontainer##classname##functionname, classname, eventname, functionname, event, BaseObject, __VA_ARGS__) |
#define | ORXONOX_SET_SUBCLASS_EVENT(classname, eventname, functionname, event, subclassname) ORXONOX_SET_EVENT_GENERIC(eventcontainer##classname##functionname, classname, eventname, functionname, event, subclassname) |
#define | ORXONOX_SET_SUBCLASS_EVENT_TEMPLATE(classname, eventname, functionname, event, subclassname,...) ORXONOX_SET_EVENT_GENERIC_TEMPLATE(eventcontainer##classname##functionname, classname, eventname, functionname, event, subclassname, __VA_ARGS__) |
#define ORXONOX_SET_EVENT | ( | classname, | |||
eventname, | |||||
functionname, | |||||
event | ) | ORXONOX_SET_EVENT_GENERIC(eventcontainer##classname##functionname, classname, eventname, functionname, event, BaseObject) |
#define ORXONOX_SET_EVENT_GENERIC | ( | containername, | |||
classname, | |||||
eventname, | |||||
functionname, | |||||
event, | |||||
subclassname | ) |
Value:
orxonox::EventContainer* containername = this->getEventContainer(eventname); \ if (!containername) \ { \ ExecutorMember<classname>* executor = orxonox::createExecutor(orxonox::createFunctor(&classname::functionname), std::string( #classname ) + "::" + #functionname); \ executor->setObject(this); \ containername = new orxonox::EventContainer(std::string(eventname), executor, orxonox::ClassIdentifier<subclassname>::getIdentifier()); \ this->addEventContainer(eventname, containername); \ } \ event.castedOriginator_ = dynamic_cast<subclassname*>(event.originator_); \ containername->process(this, event)
#define ORXONOX_SET_EVENT_GENERIC_TEMPLATE | ( | containername, | |||
classname, | |||||
eventname, | |||||
functionname, | |||||
event, | |||||
subclassname, | |||||
... | ) |
Value:
orxonox::EventContainer* containername = this->getEventContainer(eventname); \ if (!containername) \ { \ ExecutorMember<classname>* executor = orxonox::createExecutor(orxonox::createFunctor<classname, __VA_ARGS__ >(&classname::functionname), std::string( #classname ) + "::" + #functionname); \ executor->setObject(this); \ containername = new orxonox::EventContainer(std::string(eventname), executor, orxonox::ClassIdentifier<subclassname>::getIdentifier()); \ this->addEventContainer(eventname, containername); \ } \ event.castedOriginator_ = dynamic_cast<subclassname*>(event.originator_); \ containername->process(this, event)
#define ORXONOX_SET_EVENT_TEMPLATE | ( | classname, | |||
eventname, | |||||
functionname, | |||||
event, | |||||
... | ) | ORXONOX_SET_EVENT_GENERIC_TEMPLATE(eventcontainer##classname##functionname, classname, eventname, functionname, event, BaseObject, __VA_ARGS__) |
#define ORXONOX_SET_SUBCLASS_EVENT | ( | classname, | |||
eventname, | |||||
functionname, | |||||
event, | |||||
subclassname | ) | ORXONOX_SET_EVENT_GENERIC(eventcontainer##classname##functionname, classname, eventname, functionname, event, subclassname) |
Referenced by orxonox::QuestEffectBeacon::processEvent().
#define ORXONOX_SET_SUBCLASS_EVENT_TEMPLATE | ( | classname, | |||
eventname, | |||||
functionname, | |||||
event, | |||||
subclassname, | |||||
... | ) | ORXONOX_SET_EVENT_GENERIC_TEMPLATE(eventcontainer##classname##functionname, classname, eventname, functionname, event, subclassname, __VA_ARGS__) |