- Timestamp:
- Nov 20, 2005, 9:12:50 PM (19 years ago)
- Location:
- trunk/src
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/lib/coord/p_node.cc
r5652 r5654 162 162 if (root != NULL) 163 163 { 164 const TiXmlElement* element = root->FirstChildElement(); 165 while (element != NULL) 164 LOAD_PARAM_START_CYCLE(root, element); 166 165 { 167 LoadParam <PNode>(element, "parent", this, &PNode::addChild, true)166 LoadParam_CYCLE(element, "parent", this, PNode, addChild) 168 167 .describe("adds a new Child to the current Node."); 169 168 170 element = element->NextSiblingElement();171 169 } 170 LOAD_PARAM_END_CYCLE(element); 172 171 } 173 172 } -
trunk/src/lib/graphics/render2D/element_2d.cc
r5652 r5654 165 165 if (root != NULL) 166 166 { 167 const TiXmlElement* element = root->FirstChildElement(); 168 while (element != NULL) 169 { 170 LoadParam<Element2D>(root, "parent", this, &Element2D::addChild2D, true) 167 LOAD_PARAM_START_CYCLE(root, element); 168 { 169 LoadParam_CYCLE(element, "parent", this, Element2D, addChild2D) 171 170 .describe("adds a new Child to the current Node."); 172 173 element = element->NextSiblingElement(); 174 } 171 } 172 LOAD_PARAM_END_CYCLE(element); 175 173 } 176 174 } -
trunk/src/lib/particles/particle_engine.cc
r5447 r5654 90 90 void ParticleEngine::loadParams(const TiXmlElement* root) 91 91 { 92 const TiXmlElement* element = root->FirstChildElement(); 93 while( element != NULL) 94 { 95 LoadParam<ParticleEngine>(element, "connect", this, &ParticleEngine::addConnection, true) 92 LOAD_PARAM_START_CYCLE(root, element); 93 { 94 LoadParam_CYCLE(element, "connect", this, ParticleEngine, addConnection) 96 95 .describe("connects an Emitter to a System (emitterName, systemName)"); 97 element = element->NextSiblingElement();98 }96 } 97 LOAD_PARAM_END_CYCLE(element); 99 98 } 100 99 -
trunk/src/lib/particles/particle_system.cc
r5652 r5654 122 122 .describe("the maximal count of Particles, that can be emitted into this system"); 123 123 124 //LoadParam<ParticleSystem>(root, "type", this, &ParticleSystem::setType);125 124 LoadParamNEW(root, "life-span", this, ParticleSystem, setLifeSpan) 126 125 .describe("sets the life-span of the Particles."); … … 132 131 .describe("sets the type of the Particles, (dot, spark, sprite or model)"); 133 132 134 const TiXmlElement* element = root->FirstChildElement(); 135 while (element != NULL) 133 LOAD_PARAM_START_CYCLE(root, element); 136 134 { 137 135 element->ToText(); 138 136 // PER-PARTICLE-ATTRIBUTES: 139 LoadParam <ParticleSystem>(element, "radius", this, &ParticleSystem::setRadius, true)137 LoadParam_CYCLE(element, "radius", this, ParticleSystem, setRadius) 140 138 .describe("The Radius of each particle over time (TimeIndex [0-1], radius at TimeIndex, randomRadius at TimeIndex)"); 141 139 142 LoadParam <ParticleSystem>(element, "mass", this, &ParticleSystem::setMass, true)140 LoadParam_CYCLE(element, "mass", this, ParticleSystem, setMass) 143 141 .describe("The Mass of each particle over time (TimeIndex: [0-1], mass at TimeIndex, randomMass at TimeIndex)"); 144 142 145 LoadParam <ParticleSystem>(element, "color", this, &ParticleSystem::setColor, true)143 LoadParam_CYCLE(element, "color", this, ParticleSystem, setColor) 146 144 .describe("The Color of each particle over time (TimeIndex: [0-1], red: [0-1], green: [0-1], blue: [0-1], alpha: [0-1])"); 147 element = element->NextSiblingElement();148 145 } 146 LOAD_PARAM_END_CYCLE(element); 149 147 150 148 } -
trunk/src/util/loading/load_param.cc
r5653 r5654 13 13 co-programmer: ... 14 14 */ 15 16 #define DEBUG_SPECIAL_MODULE DEBUG_MODULE_LOADING 15 17 16 18 #include "functor_list.h" … … 114 116 * @param executor the Executor, that executes the loading procedure. 115 117 */ 116 LoadParamBase::LoadParamBase(const TiXmlElement* root, const char* paramName, BaseObject* object, const Executor& executor) 117 { 118 this->loadString = grabParameter(root, paramName); 118 LoadParamBase::LoadParamBase(const TiXmlElement* root, const char* paramName, BaseObject* object, const Executor& executor, bool inLoadCycle) 119 { 119 120 this->paramName = paramName; 120 121 this->object = object; 121 if (root != NULL) 122 { 123 this->executor = executor.clone(); 124 } 122 this->inLoadCycle = inLoadCycle; 123 124 // determin the LoadString. 125 if (likely(!inLoadCycle)) 126 this->loadString = grabParameter(root, paramName); 125 127 else 126 128 { 127 this->executor = NULL; 129 if (!strcmp(root->Value(), paramName)) 130 { 131 const TiXmlNode* val = root->FirstChild(); 132 if( val->ToText()) 133 this->loadString = val->Value(); 134 } 135 else 136 this->loadString = NULL; 128 137 } 129 138 139 // set the Executor. 140 this->executor = executor.clone(); 130 141 } 131 142 -
trunk/src/util/loading/load_param.h
r5653 r5654 46 46 */ 47 47 #define LoadParamNEW(ROOT, PARAMETER_NAME, OBJECT, CLASS, FUNCTION) \ 48 LoadParamBase(ROOT, PARAMETER_NAME, OBJECT, ExecutorObjective<CLASS>(&CLASS::FUNCTION)) 48 LoadParamBase(ROOT, PARAMETER_NAME, OBJECT, ExecutorObjective<CLASS>(&CLASS::FUNCTION), false) 49 50 #define LoadParam_CYCLE(ROOT, PARAMETER_NAME, OBJECT, CLASS, FUNCTION) \ 51 LoadParamBase(ROOT, PARAMETER_NAME, OBJECT, ExecutorObjective<CLASS>(&CLASS::FUNCTION), true) 49 52 50 53 #define LoadParamXML(ROOT, PARAMETER_NAME, OBJECT, CLASS, FUNCTION) \ 51 LoadParamBase(ROOT, PARAMETER_NAME, OBJECT, ExecutorXML<CLASS>(&CLASS::FUNCTION, ROOT, PARAMETER_NAME)) 54 LoadParamBase(ROOT, PARAMETER_NAME, OBJECT, ExecutorXML<CLASS>(&CLASS::FUNCTION, ROOT, PARAMETER_NAME), false) 55 56 #define LoadParamXML_CYCLE(ROOT, PARAMETER_NAME, OBJECT, CLASS, FUNCTION) \ 57 LoadParamBase(ROOT, PARAMETER_NAME, OBJECT, ExecutorXML<CLASS>(&CLASS::FUNCTION, ROOT, PARAMETER_NAME), true) 58 59 60 /** 61 * this Starts a Cycle in the Loading Process 62 * be aware, that in the cycle the first parameter of load_param should because 63 * called element, and that you must say true at the Fith parameter, or it will fail 64 * also you will have to close the Cycle again with LOAD_PARAM_END_CYCLE 65 * 66 * @param ROOT The root XLM-element to search element under. 67 * @param ELEMENT the element to search 68 */ 69 #define LOAD_PARAM_START_CYCLE(ROOT, ELEMENT) \ 70 const TiXmlElement* ELEMENT; \ 71 ELEMENT= ROOT->FirstChildElement(); \ 72 while( ELEMENT != NULL) \ 73 { 74 /** 75 * closes a LoadParam Loop 76 * @see LOAD_PARAM_START_CYCLE 77 * @param ELEMENT the Element to step through. 78 */ 79 #define LOAD_PARAM_END_CYCLE(ELEMENT) \ 80 ELEMENT = ELEMENT->NextSiblingElement(); \ 81 } 82 83 52 84 53 85 … … 59 91 { 60 92 public: 61 LoadParamBase(const TiXmlElement* root, const char* paramName, BaseObject* object, const Executor& exe utor);93 LoadParamBase(const TiXmlElement* root, const char* paramName, BaseObject* object, const Executor& executor, bool inLoadCycle = false); 62 94 ~LoadParamBase(); 63 95 … … 69 101 70 102 protected: 71 bool withLoadString; //!< If we need the loadString to execute this.103 bool inLoadCycle; 72 104 Executor* executor; 73 105 BaseObject* object; … … 82 114 }; 83 115 84 85 //! macro that makes it even more easy to load a Parameter86 /**87 * @param className the name of the class to load88 * @param parameterName the name of the parameter to load as written in the XML-file89 * @param function the function to call90 */91 #define LOAD_PARAM(className, parameterName, paramFunction) \92 LoadParam<className>(root, #parameterName, this, &className::paramFunction)93 94 /**95 * this Starts a Cycle in the Loading Process96 * be aware, that in the cycle the first parameter of load_param should because97 * called element, and that you must say true at the Fith parameter, or it will fail98 * also you will have to close the Cycle again with LOAD_PARAM_END_CYCLE99 *100 * @param ROOT The root XLM-element to search element under.101 * @param ELEMENT the element to search102 */103 #define LOAD_PARAM_START_CYCLE(ROOT, ELEMENT) \104 const TiXmlElement* ELEMENT; \105 ELEMENT= ROOT->FirstChildElement(); \106 while( ELEMENT != NULL) \107 {108 /**109 * closes a LoadParam Loop110 * @see LOAD_PARAM_START_CYCLE111 * @param ELEMENT the Element to step through.112 */113 #define LOAD_PARAM_END_CYCLE(ELEMENT) \114 ELEMENT = ELEMENT->NextSiblingElement(); \115 }116 116 117 117 -
trunk/src/util/track/track_manager.cc
r5644 r5654 398 398 double x, y, z, d; 399 399 400 LOAD_PARAM_START_CYCLE(root, element) 401 402 LoadParam<TrackManager>(element, "WorkOn", this, &TrackManager::workOnS, true) 400 LOAD_PARAM_START_CYCLE(root, element); 401 { 402 403 LoadParam_CYCLE(element, "WorkOn", this, TrackManager, workOnS) 403 404 .describe("Selects a TrackElement (by name) to work on"); 404 405 405 LoadParam<TrackManager>(element, "Point", this, &TrackManager::addPoint, true)406 LoadParam_CYCLE(element, "Point", this, TrackManager, addPoint) 406 407 .describe("Adds a new Point to the currently selected TrackElement"); 407 408 408 LoadParam<TrackManager>(element, "Duration", this, &TrackManager::setDuration, true)409 LoadParam_CYCLE(element, "Duration", this, TrackManager, setDuration) 409 410 .describe("Sets the Duration of the currently selected TrackElement"); 410 411 411 LoadParam<TrackManager>(element, "HotPoint", this, &TrackManager::addHotPoint, true)412 LoadParam_CYCLE(element, "HotPoint", this, TrackManager, addHotPoint) 412 413 .describe("Sets a new Point that acts as a hot point. meaning, the curve will flow through this Point"); 413 414 414 LoadParam<TrackManager>(element, "SavePoint", this, &TrackManager::setSavePointS, true)415 LoadParam_CYCLE(element, "SavePoint", this, TrackManager, setSavePointS) 415 416 .describe("Sets the current selected Point to a Savepoint, meaning that the curve will be ended and a new one starts, and that one starts again from this point on"); 416 417 417 LoadParam<TrackManager>(element, "Fork", this, &TrackManager::forkS, true)418 LoadParam_CYCLE(element, "Fork", this, TrackManager, forkS) 418 419 .describe("Forks the Path into multiple forked Path names seperated by ','"); 419 420 420 LoadParam<TrackManager>(element, "Join", this, &TrackManager::joinS, true)421 LoadParam_CYCLE(element, "Join", this, TrackManager, joinS) 421 422 .describe("Joins multiple joining Path names seperated by ','"); 422 423 423 424 /* 424 425 426 427 425 if( !strcmp( element->Value(), "Fork")) 426 { 427 container = element->FirstChild(); 428 if( container->ToText()) 428 429 { 429 430 assert( container->Value() != NULL); … … 445 446 } 446 447 */ 447 LOAD_PARAM_END_CYCLE(element); 448 } 449 LOAD_PARAM_END_CYCLE(element); 448 450 } 449 451 -
trunk/src/world_entities/terrain.cc
r5652 r5654 106 106 LoadParamNEW(root, "vegetation", this, Terrain, loadVegetation) 107 107 .describe("the fileName of the vegetation, that should be loaded onto this terrain. (must be relative to the data-dir)") ; 108 109 //LoadParam<Terrain>(root, "DebugTerrain", );110 108 } 111 109 -
trunk/src/world_entities/weapons/weapon_manager.cc
r5653 r5654 123 123 124 124 LOAD_PARAM_START_CYCLE(root, element); 125 126 127 LoadParamXML(element, "weapons", this, WeaponManager, loadWeapons)128 .describe("loads Weapons");129 125 { 126 // CHECK IF THIS WORKS.... 127 LoadParamXML_CYCLE(element, "weapons", this, WeaponManager, loadWeapons) 128 .describe("loads Weapons"); 129 } 130 130 LOAD_PARAM_END_CYCLE(element); 131 131 }
Note: See TracChangeset
for help on using the changeset viewer.