Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Mar 11, 2005, 10:25:27 AM (19 years ago)
Author:
chris
Message:

orxonox/branches/levelloader: Finished implementation of LevelFactory and associated, only thing left to do is testing

File:
1 edited

Legend:

Unmodified
Added
Removed
  • orxonox/branches/levelloader/src/levelfactory.h

    r3482 r3496  
    1111#include "xmlparser/tinystr.h"
    1212#include "base_object.h"
     13#include "orxonox.h"
     14#include "world.h"
     15
     16class LoadParameters;
    1317
    1418#define FACTORY_ADD(CLASS) class CLASSFactory : public ObjectFactory { \
    1519 public:        \
    16   CLASSFactory (){setNext( NULL); setClassname = "CLASS"; initialize()}; \
     20  CLASSFactory (){setNext( NULL); setClassname = "CLASS"; initialize();} \
    1721  ~CLASSFactory (); \
    1822 private: \
    19         BaseObject* fabricateObject( void* data) { return new CLASS( data)}; \
     23        BaseObject* fabricateObject( LoadParameters* data) { return new CLASS( data);} \
    2024}; \
    2125CLASSFactory global_CLASSFactory();
     
    3135  ~ObjectFactory ();
    3236
    33         BaseObject* load( char* name, void* data);
     37        BaseObject* load( char* name, LoadParameters* data);
    3438        void initialize();
    3539  void registerFactory( ObjectFactory* factory);
    3640        void setClassname(char* name) {classname = name};
     41        char* getClassname() {return classname};
    3742        void setNext( ObjectFactory* factory);
    3843       
    3944 private:
    40         virtual BaseObject* fabricateObject( void* data);
     45        virtual BaseObject* fabricateObject( LoadParameters* data);
    4146        char* classname;
    4247       
     
    6873};
    6974
     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*/
     81class 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
    70100#endif /* _LEVELFACTORY_H */
Note: See TracChangeset for help on using the changeset viewer.