/* orxonox - the future of 3D-vertical-scrollers Copyright (C) 2004 orx This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ### File Specific: main-programmer: Benjamin Grauer co-programmer: ... */ /*! * @file load_param_xml.h * A Class and macro-functions, that makes our lives easy to load-in parameters from XML */ #ifndef _LOAD_PARAM_XML_H #define _LOAD_PARAM_XML_H #include "load_param.h" #include "executor/executor_xml.h" #define LoadParamXML(ROOT, PARAMETER_NAME, OBJECT, CLASS, FUNCTION) \ XmlLoadParam(ROOT, PARAMETER_NAME, OBJECT, new ExecutorXML(&CLASS::FUNCTION, ROOT, PARAMETER_NAME), false) #define LoadParamXML_CYCLE(ROOT, PARAMETER_NAME, OBJECT, CLASS, FUNCTION) \ XmlLoadParam(ROOT, PARAMETER_NAME, OBJECT, new ExecutorXML(&CLASS::FUNCTION, ROOT, PARAMETER_NAME), true) class XmlLoadParam : public LoadParamBase { public: XmlLoadParam(const TiXmlElement* root, const std::string& paramName, BaseObject* object, Executor* executor, bool inLoadCycle = false); virtual ~XmlLoadParam(); XmlLoadParam& describe(const std::string& descriptionText) { LoadParamBase::describe(descriptionText); return *this; }; private: Executor* executor; }; #endif /* _LOAD_PARAM_XML_H */