Changeset 3496 in orxonox.OLD for orxonox/branches/levelloader/src/levelfactory.h
- Timestamp:
- Mar 11, 2005, 10:25:27 AM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
orxonox/branches/levelloader/src/levelfactory.h
r3482 r3496 11 11 #include "xmlparser/tinystr.h" 12 12 #include "base_object.h" 13 #include "orxonox.h" 14 #include "world.h" 15 16 class LoadParameters; 13 17 14 18 #define FACTORY_ADD(CLASS) class CLASSFactory : public ObjectFactory { \ 15 19 public: \ 16 CLASSFactory (){setNext( NULL); setClassname = "CLASS"; initialize() };\20 CLASSFactory (){setNext( NULL); setClassname = "CLASS"; initialize();} \ 17 21 ~CLASSFactory (); \ 18 22 private: \ 19 BaseObject* fabricateObject( void* data) { return new CLASS( data)};\23 BaseObject* fabricateObject( LoadParameters* data) { return new CLASS( data);} \ 20 24 }; \ 21 25 CLASSFactory global_CLASSFactory(); … … 31 35 ~ObjectFactory (); 32 36 33 BaseObject* load( char* name, void* data);37 BaseObject* load( char* name, LoadParameters* data); 34 38 void initialize(); 35 39 void registerFactory( ObjectFactory* factory); 36 40 void setClassname(char* name) {classname = name}; 41 char* getClassname() {return classname}; 37 42 void setNext( ObjectFactory* factory); 38 43 39 44 private: 40 virtual BaseObject* fabricateObject( void* data);45 virtual BaseObject* fabricateObject( LoadParameters* data); 41 46 char* classname; 42 47 … … 68 73 }; 69 74 75 //! The LoadParameters class is designed for encapsulated interfacing between TiXML and a loading costructor 76 /** 77 This is the liaison between the ObjectFactories and their Objects. A LoadParameters object is passed to 78 the constructors of the objects when the ObjectFactory creates it. It can be easily parsed and features 79 special variable handling methods to extract numeric data from strings. 80 */ 81 class LoadParameters { 82 83 public: 84 LoadParameters() {root = NULL;} 85 LoadParameters(TiXMLElement* element) {root = element;} 86 ~LoadParameters() {} 87 88 const char* grabParameter( const char* name); 89 const char* grabParameter( const char* name, int* i); 90 const char* grabParameter( const char* name, double* d); 91 92 void setElement(TiXMLElement* element) {root = element;} 93 TiXMLElement* getElement() {return root;} 94 95 private: 96 TiXMLElement* root; 97 98 }; 99 70 100 #endif /* _LEVELFACTORY_H */
Note: See TracChangeset
for help on using the changeset viewer.