Index: orxonox/trunk/src/util/loading/game_loader.cc
===================================================================
--- orxonox/trunk/src/util/loading/game_loader.cc	(revision 4495)
+++ orxonox/trunk/src/util/loading/game_loader.cc	(revision 4496)
@@ -252,5 +252,5 @@
   // free the XML data
   delete XMLDoc;
-	
+
   return c;
 }
Index: orxonox/trunk/src/util/loading/load_param.cc
===================================================================
--- orxonox/trunk/src/util/loading/load_param.cc	(revision 4495)
+++ orxonox/trunk/src/util/loading/load_param.cc	(revision 4496)
@@ -26,9 +26,26 @@
    \param paramName: The name of the parameter loaded.
    \param paramCount: how many parameters this loading-function takes
+   \param multi: if false LoadParam assumes only one occurence of this parameter in root, if true it assumes multiple occurences.
    \param ...: the parameter information
 */
-BaseLoadParam::BaseLoadParam(const TiXmlElement* root, BaseObject* object, const char* paramName, int paramCount, ...)
-{
-  this->loadString = grabParameter(root, paramName);
+BaseLoadParam::BaseLoadParam(const TiXmlElement* root, BaseObject* object, const char* paramName,
+			     int paramCount, bool multi, ...)
+{
+  this->loadString = NULL;
+
+  if (likely(!multi))
+    this->loadString = grabParameter(root, paramName);
+  else
+    {
+      printf("paramName:::::%s\n", root->Value());
+      if (!strcmp(root->Value(), paramName))
+	{
+	  const TiXmlNode* val = root->FirstChild();
+	  if( val->ToText())
+	    this->loadString = val->Value();
+	}
+    }
+  if (loadString)
+    printf("%s\n", loadString);
 
   this->paramDesc = NULL;
@@ -43,5 +60,5 @@
 
       va_list types;
-      va_start (types, paramCount);
+      va_start (types, multi);
       for(int i = 0; i < paramCount; i++)
 	{
Index: orxonox/trunk/src/util/loading/load_param.h
===================================================================
--- orxonox/trunk/src/util/loading/load_param.h	(revision 4495)
+++ orxonox/trunk/src/util/loading/load_param.h	(revision 4496)
@@ -73,6 +73,6 @@
 */
 #define LoadParam1(type1) \
- LoadParam(const TiXmlElement* root, const char* paramName, T* pt2Object, void(T::*function)(type1##_TYPE)) \
-   : BaseLoadParam(root, pt2Object, paramName, 1, type1##_NAME)		\
+ LoadParam(const TiXmlElement* root, const char* paramName, T* pt2Object, void(T::*function)(type1##_TYPE), bool multi = false) \
+   : BaseLoadParam(root, pt2Object, paramName, 1, multi, type1##_NAME)		\
     { \
       if (loadString != NULL && root != NULL) \
@@ -90,6 +90,6 @@
 */
 #define LoadParam2(type1, type2) \
- LoadParam(const TiXmlElement* root, const char* paramName, T* pt2Object, void(T::*function)(type1##_TYPE, type2##_TYPE)) \
-   : BaseLoadParam(root, pt2Object, paramName, 2, type1##_NAME, type2##_NAME) \
+ LoadParam(const TiXmlElement* root, const char* paramName, T* pt2Object, void(T::*function)(type1##_TYPE, type2##_TYPE), bool multi = false) \
+   : BaseLoadParam(root, pt2Object, paramName, 2, multi, type1##_NAME, type2##_NAME) \
     { \
       if (loadString != NULL && root != NULL) \
@@ -115,6 +115,6 @@
 */
 #define LoadParam3(type1, type2, type3) \
- LoadParam(const TiXmlElement* root, const char* paramName, T* pt2Object, void(T::*function)(type1##_TYPE, type2##_TYPE, type3##_TYPE))\
-   : BaseLoadParam(root, pt2Object, paramName, 3, type1##_NAME, type2##_NAME, type3##_NAME) \
+ LoadParam(const TiXmlElement* root, const char* paramName, T* pt2Object, void(T::*function)(type1##_TYPE, type2##_TYPE, type3##_TYPE), bool multi = false)\
+   : BaseLoadParam(root, pt2Object, paramName, 3, multi, type1##_NAME, type2##_NAME, type3##_NAME) \
     { \
       if (loadString != NULL && root != NULL) \
@@ -141,6 +141,6 @@
 */
 #define LoadParam4(type1, type2, type3, type4) \
- LoadParam(const TiXmlElement* root, const char* paramName, T* pt2Object, void(T::*function)(type1##_TYPE, type2##_TYPE, type3##_TYPE, type4##_TYPE)) \
-   : BaseLoadParam(root, pt2Object, paramName, 4, type1##_NAME, type2##_NAME, type3##_NAME, type2##_NAME, type4##_NAME) \
+ LoadParam(const TiXmlElement* root, const char* paramName, T* pt2Object, void(T::*function)(type1##_TYPE, type2##_TYPE, type3##_TYPE, type4##_TYPE), bool multi = false) \
+   : BaseLoadParam(root, pt2Object, paramName, 4, multi, type1##_NAME, type2##_NAME, type3##_NAME, type2##_NAME, type4##_NAME) \
     { \
       if (loadString != NULL && root != NULL) \
@@ -168,6 +168,6 @@
 */
 #define LoadParam5(type1, type2, type3, type4, type5) \
- LoadParam(const TiXmlElement* root, const char* paramName, T* pt2Object, void(T::*function)(type1##_TYPE, type2##_TYPE, type3##_TYPE, type4##_TYPE, type5##_TYPE)) \
-   : BaseLoadParam(root, pt2Object, paramName, 5, type1##_NAME, type2##_NAME, type3##_NAME, type2##_NAME, type4##_NAME, type5##_NAME) \
+ 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) \
+   : BaseLoadParam(root, pt2Object, paramName, 5, multi, type1##_NAME, type2##_NAME, type3##_NAME, type2##_NAME, type4##_NAME, type5##_NAME) \
     { \
       if (loadString != NULL && root != NULL) \
@@ -221,8 +221,8 @@
 
  private:
-  static bool                         parametersDescription;  //!< if parameter-description should be enabled.
-  static tList<LoadClassDescription>* classList;              //!< a list, that holds all the loadable classes. (after one instance has been loaded)
-  char*                               className;              //!< name of the class
-  tList<LoadParamDescription>*        paramList;              //!< List of parameters this class knows.
+  static bool                          parametersDescription;  //!< if parameter-description should be enabled.
+  static tList<LoadClassDescription>*  classList;              //!< a list, that holds all the loadable classes. (after one instance has been loaded)
+  char*                                className;              //!< name of the class
+  tList<LoadParamDescription>*         paramList;              //!< List of parameters this class knows.
 };
 
@@ -234,5 +234,5 @@
 
  protected:
-  BaseLoadParam(const TiXmlElement* root, BaseObject* object, const char* paramName, int paramCount, ...);
+  BaseLoadParam(const TiXmlElement* root, BaseObject* object, const char* paramName, int paramCount, bool multi, ...);
 
  protected:
