Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/orxonox/branches/levelLoader/src/util/loading/load_param.h @ 4241

Last change on this file since 4241 was 4241, checked in by bensch, 19 years ago

orxonox/branches/levelLoader2: imagescreen gets loaded by the new format

File size: 4.3 KB
Line 
1
2#ifndef _LOAD_PARAM_H
3#define _LOAD_PARAM_H
4
5#include "factory.h"
6#include "debug.h"
7#include "substring.h"
8
9// abstract base class
10class baseLoadParam
11{
12 public:
13  //  virtual void Call(const char* string)=0;        // call using function
14};
15
16
17// derived template class
18template<class T> class LoadParam : public baseLoadParam
19{
20 public:
21  // CONST CHAR*
22  LoadParam(const TiXmlElement* root, const char* paramName, T* pt2Object, void(T::*function)(const char*))
23    { 
24      const char* loadString = grabParameter(root, paramName);
25      if (loadString != NULL)
26        (*pt2Object.*function)(loadString);
27      else 
28        PRINTF(2)("Not loaded parameter %s of %s\n", paramName, pt2Object->getClassName());
29     
30    };
31
32  // 1. FLOAT
33  LoadParam(const TiXmlElement* root, const char* paramName, T* pt2Object, void(T::*function)(float))
34    {
35      const char* loadString = grabParameter(root, paramName);
36      if (loadString != NULL)
37        (*pt2Object.*function)(atof(loadString));
38      else 
39        PRINTF(2)("Not loaded parameter %s of %s\n", paramName, pt2Object->getClassName());
40    };
41
42  // 2. FLOAT
43  LoadParam(const TiXmlElement* root, const char* paramName, T* pt2Object, void(T::*function)(float, float))
44    {
45      const char* loadString = grabParameter(root, paramName);
46      if (loadString != NULL)
47        {
48          SubString subLoads(loadString);
49          (*pt2Object.*function)(atof(subLoads.getString(0)), atof(subLoads.getString(1)));
50        }
51      else 
52        PRINTF(2)("Not loaded parameter %s of %s\n", paramName, pt2Object->getClassName());
53    };
54
55  // 3. FLOAT
56  LoadParam(const TiXmlElement* root, const char* paramName, T* pt2Object, void(T::*function)(float, float, float))
57    {
58      const char* loadString = grabParameter(root, paramName);
59      if (loadString != NULL)
60        {
61          SubString subLoads(loadString);
62          (*pt2Object.*function)(atof(subLoads.getString(0)), atof(subLoads.getString(1)), atof(subLoads.getString(2)));
63        }
64      else 
65        PRINTF(2)("Not loaded parameter %s of %s\n", paramName, pt2Object->getClassName());
66    };
67
68  // 4. FLOAT
69  LoadParam(const TiXmlElement* root, const char* paramName, T* pt2Object, void(T::*function)(float, float, float, float))
70    {
71      const char* loadString = grabParameter(root, paramName);
72      if (loadString != NULL)
73        {
74          SubString subLoads(loadString);
75          (*pt2Object.*function)(atof(subLoads.getString(0)), atof(subLoads.getString(1)), atof(subLoads.getString(2)), atof(subLoads.getString(3)));
76        }
77      else 
78        PRINTF(2)("Not loaded parameter %s of %s\n", paramName, pt2Object->getClassName());
79    };
80
81  // 1. INT
82  LoadParam(const TiXmlElement* root, const char* paramName, T* pt2Object, void(T::*function)(int))
83    {
84      const char* loadString = grabParameter(root, paramName);
85      if (loadString != NULL)
86        (*pt2Object.*function)(atoi(loadString));
87      else 
88        PRINTF(2)("Not loaded parameter %s of %s\n", paramName, pt2Object->getClassName());
89    };
90
91  // 2. INT
92  LoadParam(const TiXmlElement* root, const char* paramName, T* pt2Object, void(T::*function)(int, int))
93    {
94      const char* loadString = grabParameter(root, paramName);
95      if (loadString != NULL)
96        {
97          SubString subLoads(loadString);
98          (*pt2Object.*function)(atoi(subLoads.getString(0)), atoi(subLoads.getString(1)));
99        }
100      else 
101        PRINTF(2)("Not loaded parameter %s of %s\n", paramName, pt2Object->getClassName());
102    };
103
104  // 3. INT
105  LoadParam(const TiXmlElement* root, const char* paramName, T* pt2Object, void(T::*function)(int, int, int))
106    {
107      const char* loadString = grabParameter(root, paramName);
108      if (loadString != NULL)
109        {
110          SubString subLoads(loadString);
111          (*pt2Object.*function)(atoi(subLoads.getString(0)), atoi(subLoads.getString(1)), atoi(subLoads.getString(2)));
112        }
113      else 
114        PRINTF(2)("Not loaded parameter %s of %s\n", paramName, pt2Object->getClassName());
115    };
116
117  // 4. INT
118  LoadParam(const TiXmlElement* root, const char* paramName, T* pt2Object, void(T::*function)(int, int, int, int))
119    {
120      const char* loadString = grabParameter(root, paramName);
121      if (loadString != NULL)
122        {
123          SubString subLoads(loadString);
124          (*pt2Object.*function)(atoi(subLoads.getString(0)), atoi(subLoads.getString(1)), atoi(subLoads.getString(2)), atoi(subLoads.getString(3)));
125        }
126      else 
127        PRINTF(2)("Not loaded parameter %s of %s\n", paramName, pt2Object->getClassName());
128    };
129
130};
131
132
133#endif /* _LOAD_PARAM_H */
Note: See TracBrowser for help on using the repository browser.