Changeset 4496 in orxonox.OLD for orxonox/trunk/src/util
- Timestamp:
- Jun 3, 2005, 3:52:05 AM (20 years ago)
- Location:
- orxonox/trunk/src/util
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
orxonox/trunk/src/util/loading/game_loader.cc
r4487 r4496 252 252 // free the XML data 253 253 delete XMLDoc; 254 254 255 255 return c; 256 256 } -
orxonox/trunk/src/util/loading/load_param.cc
r4492 r4496 26 26 \param paramName: The name of the parameter loaded. 27 27 \param paramCount: how many parameters this loading-function takes 28 \param multi: if false LoadParam assumes only one occurence of this parameter in root, if true it assumes multiple occurences. 28 29 \param ...: the parameter information 29 30 */ 30 BaseLoadParam::BaseLoadParam(const TiXmlElement* root, BaseObject* object, const char* paramName, int paramCount, ...) 31 { 32 this->loadString = grabParameter(root, paramName); 31 BaseLoadParam::BaseLoadParam(const TiXmlElement* root, BaseObject* object, const char* paramName, 32 int paramCount, bool multi, ...) 33 { 34 this->loadString = NULL; 35 36 if (likely(!multi)) 37 this->loadString = grabParameter(root, paramName); 38 else 39 { 40 printf("paramName:::::%s\n", root->Value()); 41 if (!strcmp(root->Value(), paramName)) 42 { 43 const TiXmlNode* val = root->FirstChild(); 44 if( val->ToText()) 45 this->loadString = val->Value(); 46 } 47 } 48 if (loadString) 49 printf("%s\n", loadString); 33 50 34 51 this->paramDesc = NULL; … … 43 60 44 61 va_list types; 45 va_start (types, paramCount);62 va_start (types, multi); 46 63 for(int i = 0; i < paramCount; i++) 47 64 { -
orxonox/trunk/src/util/loading/load_param.h
r4495 r4496 73 73 */ 74 74 #define LoadParam1(type1) \ 75 LoadParam(const TiXmlElement* root, const char* paramName, T* pt2Object, void(T::*function)(type1##_TYPE) ) \76 : BaseLoadParam(root, pt2Object, paramName, 1, type1##_NAME) \75 LoadParam(const TiXmlElement* root, const char* paramName, T* pt2Object, void(T::*function)(type1##_TYPE), bool multi = false) \ 76 : BaseLoadParam(root, pt2Object, paramName, 1, multi, type1##_NAME) \ 77 77 { \ 78 78 if (loadString != NULL && root != NULL) \ … … 90 90 */ 91 91 #define LoadParam2(type1, type2) \ 92 LoadParam(const TiXmlElement* root, const char* paramName, T* pt2Object, void(T::*function)(type1##_TYPE, type2##_TYPE) ) \93 : BaseLoadParam(root, pt2Object, paramName, 2, type1##_NAME, type2##_NAME) \92 LoadParam(const TiXmlElement* root, const char* paramName, T* pt2Object, void(T::*function)(type1##_TYPE, type2##_TYPE), bool multi = false) \ 93 : BaseLoadParam(root, pt2Object, paramName, 2, multi, type1##_NAME, type2##_NAME) \ 94 94 { \ 95 95 if (loadString != NULL && root != NULL) \ … … 115 115 */ 116 116 #define LoadParam3(type1, type2, type3) \ 117 LoadParam(const TiXmlElement* root, const char* paramName, T* pt2Object, void(T::*function)(type1##_TYPE, type2##_TYPE, type3##_TYPE) )\118 : BaseLoadParam(root, pt2Object, paramName, 3, type1##_NAME, type2##_NAME, type3##_NAME) \117 LoadParam(const TiXmlElement* root, const char* paramName, T* pt2Object, void(T::*function)(type1##_TYPE, type2##_TYPE, type3##_TYPE), bool multi = false)\ 118 : BaseLoadParam(root, pt2Object, paramName, 3, multi, type1##_NAME, type2##_NAME, type3##_NAME) \ 119 119 { \ 120 120 if (loadString != NULL && root != NULL) \ … … 141 141 */ 142 142 #define LoadParam4(type1, type2, type3, type4) \ 143 LoadParam(const TiXmlElement* root, const char* paramName, T* pt2Object, void(T::*function)(type1##_TYPE, type2##_TYPE, type3##_TYPE, type4##_TYPE) ) \144 : BaseLoadParam(root, pt2Object, paramName, 4, type1##_NAME, type2##_NAME, type3##_NAME, type2##_NAME, type4##_NAME) \143 LoadParam(const TiXmlElement* root, const char* paramName, T* pt2Object, void(T::*function)(type1##_TYPE, type2##_TYPE, type3##_TYPE, type4##_TYPE), bool multi = false) \ 144 : BaseLoadParam(root, pt2Object, paramName, 4, multi, type1##_NAME, type2##_NAME, type3##_NAME, type2##_NAME, type4##_NAME) \ 145 145 { \ 146 146 if (loadString != NULL && root != NULL) \ … … 168 168 */ 169 169 #define LoadParam5(type1, type2, type3, type4, type5) \ 170 LoadParam(const TiXmlElement* root, const char* paramName, T* pt2Object, void(T::*function)(type1##_TYPE, type2##_TYPE, type3##_TYPE, type4##_TYPE, type5##_TYPE) ) \171 : BaseLoadParam(root, pt2Object, paramName, 5, type1##_NAME, type2##_NAME, type3##_NAME, type2##_NAME, type4##_NAME, type5##_NAME) \170 LoadParam(const TiXmlElement* root, const char* paramName, T* pt2Object, void(T::*function)(type1##_TYPE, type2##_TYPE, type3##_TYPE, type4##_TYPE, type5##_TYPE), bool multi = false) \ 171 : BaseLoadParam(root, pt2Object, paramName, 5, multi, type1##_NAME, type2##_NAME, type3##_NAME, type2##_NAME, type4##_NAME, type5##_NAME) \ 172 172 { \ 173 173 if (loadString != NULL && root != NULL) \ … … 221 221 222 222 private: 223 static bool parametersDescription; //!< if parameter-description should be enabled.224 static tList<LoadClassDescription>* classList; //!< a list, that holds all the loadable classes. (after one instance has been loaded)225 char* className; //!< name of the class226 tList<LoadParamDescription>* paramList; //!< List of parameters this class knows.223 static bool parametersDescription; //!< if parameter-description should be enabled. 224 static tList<LoadClassDescription>* classList; //!< a list, that holds all the loadable classes. (after one instance has been loaded) 225 char* className; //!< name of the class 226 tList<LoadParamDescription>* paramList; //!< List of parameters this class knows. 227 227 }; 228 228 … … 234 234 235 235 protected: 236 BaseLoadParam(const TiXmlElement* root, BaseObject* object, const char* paramName, int paramCount, ...);236 BaseLoadParam(const TiXmlElement* root, BaseObject* object, const char* paramName, int paramCount, bool multi, ...); 237 237 238 238 protected: -
orxonox/trunk/src/util/track/track_manager.cc
r4489 r4496 25 25 #include "text_engine.h" 26 26 #include "t_animation.h" 27 #include "load_param.h" 28 29 30 #include "tinyxml.h" 27 31 #include "substring.h" 28 #include "tinyxml.h"29 32 30 33 #include <stdarg.h> … … 409 412 while( element != NULL) 410 413 { 411 if( !strcmp( element->Value(), "Point")) 412 { 413 container = element->FirstChild(); 414 if( container->ToText()) 415 { 416 assert( container->Value() != NULL); 417 if( sscanf( container->Value(), "%lf,%lf,%lf", &x, &y, &z) == 3) 418 { 419 PRINTF(5)("Loaded Point: %lf,%lf,%lf (%s)\n", x, y, z, container->Value()); 420 addPoint( Vector( x, y, z)); 421 } 422 else 423 { 424 PRINTF(0)("Invalid Point in Track (skipped)\n"); 425 } 426 } 427 } 428 else if( !strcmp( element->Value(), "Duration")) 429 { 430 container = element->FirstChild(); 431 if( container->ToText()) 432 { 433 assert( container->Value() != NULL); 434 if( sscanf( container->Value(), "%lf", &d) == 1) 435 { 436 PRINTF(5)("Loaded Duration: %lf (%s)\n", d, container->Value()); 437 setDuration( d); 438 } 439 else 440 { 441 PRINTF(2)("Invalid Duration in Track (skipped)\n"); 442 } 443 } 444 } 445 else if( !strcmp( element->Value(), "SavePoint")) 414 LoadParam<TrackManager>(element, "Point", this, &TrackManager::addPoint, true) 415 .describe("Adds a new Point to the currently selected TrackElement"); 416 417 LoadParam<TrackManager>(element, "Duration", this, &TrackManager::setDuration, true) 418 .describe("Sets the Duration of the currently selected TrackElement"); 419 420 LoadParam<TrackManager>(element, "SavePoint", this, &TrackManager::setSavePoint, true); 421 422 /* 423 if( !strcmp( element->Value(), "SavePoint")) 446 424 { 447 425 PRINTF(5)("Loaded Savepoint\n"); 448 426 setSavePoint(); 449 427 } 450 else if( !strcmp( element->Value(), "Fork")) 428 */ 429 if( !strcmp( element->Value(), "Fork")) 451 430 { 452 431 container = element->FirstChild(); … … 526 505 newElem->startingTime = trackElem->endTime + trackElem->jumpTime; 527 506 // adds the conection Point 528 this->addPoint (trackElem->curve->getNode(trackElem->curve->getNodeCount()),507 this->addPointV(trackElem->curve->getNode(trackElem->curve->getNodeCount()), 529 508 newElem); 530 509 // add the new child to the childList. … … 600 579 601 580 /** 581 \param duration the duration of the TrackElement 582 \see void TrackManager::setDuration(float duration, TrackElement* trackElem) 583 */ 584 void TrackManager::setDuration(float duration) 585 { 586 this->setDuration(duration, NULL); 587 } 588 589 /** 602 590 \brief Sets the duration of the current path in seconds. 603 591 \param duration The duration in seconds. … … 615 603 /** 616 604 \brief adds a point to trackElem 605 \param x x coord 606 \param y y coord 607 \param z z coord 608 \param trackElem The TrackElement to add the Point to 609 */ 610 void TrackManager::addPoint(float x, float y, float z) 611 { 612 this->addPointV(Vector(x,y,z)); 613 } 614 615 /** 616 \brief adds a point to trackElem 617 617 \param newPoint The point to add. 618 618 \param trackElem The TrackElement to add the Point to 619 619 */ 620 bool TrackManager::addPoint(Vector newPoint, TrackElement* trackElem)620 void TrackManager::addPointV(Vector newPoint, TrackElement* trackElem) 621 621 { 622 622 if (!trackElem) … … 653 653 trackElem->nodeCount++; 654 654 this->initChildren(1, trackElem); 655 } 656 657 /** 658 \todo this must be better 659 */ 660 void TrackManager::setSavePoint(int isLoadable) 661 { 662 this->setSavePoint(); 655 663 } 656 664 … … 946 954 else 947 955 { 948 this->addPoint (tmpc2Point, tmpJoinElem);949 this->addPoint (tmpTangentPoint, tmpJoinElem);950 this->addPoint (tmpEndPoint, tmpJoinElem);956 this->addPointV(tmpc2Point, tmpJoinElem); 957 this->addPointV(tmpTangentPoint, tmpJoinElem); 958 this->addPointV(tmpEndPoint, tmpJoinElem); 951 959 // time all other Joins 952 960 tmpJoinElem->jumpTime = tmpLatestTime - tmpJoinElem->endTime; -
orxonox/trunk/src/util/track/track_manager.h
r4489 r4496 151 151 inline void setCurveType(CurveType curveType) { this->setCurveType (curveType, this->currentTrackElem);}; 152 152 void setCurveType(CurveType curveType, TrackElement* trackElem); 153 void setDuration(float duration, TrackElement* trackElem = NULL); 154 bool addPoint(Vector newPoint, TrackElement* trackElem = NULL); 153 void setDuration(float duration); 154 void setDuration(float duration, TrackElement* trackElem); 155 void addPoint(float x, float y, float z); 156 void addPointV(Vector newPoint, TrackElement* trackElem = NULL); 155 157 int addHotPoint(Vector newPoint, TrackElement* trackElem = NULL); 158 void setSavePoint(int isLoadable); 156 159 int setSavePoint(TrackElement* trackElem = NULL); 157 160 void fork(unsigned int count, ...);
Note: See TracChangeset
for help on using the changeset viewer.