Index: /trunk/src/lib/graphics/render2D/element_2d.cc
===================================================================
--- /trunk/src/lib/graphics/render2D/element_2d.cc	(revision 7197)
+++ /trunk/src/lib/graphics/render2D/element_2d.cc	(revision 7198)
@@ -143,5 +143,5 @@
   LoadParam(root, "bind-node", this, Element2D, setBindNode)
       .describe("sets a node, this 2D-Element should be shown upon (name of the node)")
-      .defaultValues(1, NULL);
+      .defaultValues(NULL);
 
   LoadParam(root, "visibility", this, Element2D, setVisibility)
Index: /trunk/src/lib/lang/class_list.cc
===================================================================
--- /trunk/src/lib/lang/class_list.cc	(revision 7197)
+++ /trunk/src/lib/lang/class_list.cc	(revision 7198)
@@ -31,5 +31,5 @@
 SHELL_COMMAND_STATIC(debug, ClassList, ClassList::debugS)
     ->describe("Shows all registered classes, if param1: is a valid ClassName only values of this class are shown. param2: how much output")
-    ->defaultValues(2, NULL, 1);
+    ->defaultValues(NULL, 1);
 #endif
 
Index: /trunk/src/lib/particles/box_emitter.cc
===================================================================
--- /trunk/src/lib/particles/box_emitter.cc	(revision 7197)
+++ /trunk/src/lib/particles/box_emitter.cc	(revision 7198)
@@ -78,5 +78,5 @@
   LoadParam(root, "size", this, BoxEmitter, setSize)
   .describe("The Size of the BoxEmitter: x, y, z")
-  .defaultValues(3, 1.0f,1.0f,1.0f);
+  .defaultValues(1.0f,1.0f,1.0f);
 }
 
Index: /trunk/src/lib/particles/dot_particles.cc
===================================================================
--- /trunk/src/lib/particles/dot_particles.cc	(revision 7197)
+++ /trunk/src/lib/particles/dot_particles.cc	(revision 7198)
@@ -31,5 +31,5 @@
 
 SHELL_COMMAND(texture, DotParticles, setMaterialTexture)
-    ->defaultValues(1, "maps/evil-flower.png");
+    ->defaultValues("maps/evil-flower.png");
 
 using namespace std;
Index: /trunk/src/lib/particles/model_particles.cc
===================================================================
--- /trunk/src/lib/particles/model_particles.cc	(revision 7197)
+++ /trunk/src/lib/particles/model_particles.cc	(revision 7198)
@@ -31,5 +31,5 @@
 
 SHELL_COMMAND(texture, ModelParticles, setMaterialTexture)
-->defaultValues(1, "maps/evil-flower.png");
+->defaultValues("maps/evil-flower.png");
 
 using namespace std;
Index: /trunk/src/lib/particles/particle_system.cc
===================================================================
--- /trunk/src/lib/particles/particle_system.cc	(revision 7197)
+++ /trunk/src/lib/particles/particle_system.cc	(revision 7198)
@@ -128,5 +128,5 @@
   LoadParam(root, "precache", this, ParticleSystem, precache)
       .describe("Precaches the ParticleSystem for %1 seconds, %2 times per Second")
-      .defaultValues(2, 1, 25);
+      .defaultValues(1, 25);
 }
 
Index: /trunk/src/lib/particles/plane_emitter.cc
===================================================================
--- /trunk/src/lib/particles/plane_emitter.cc	(revision 7197)
+++ /trunk/src/lib/particles/plane_emitter.cc	(revision 7198)
@@ -78,5 +78,5 @@
   LoadParam(root, "size", this, PlaneEmitter, setSize)
   .describe("The Size of the PlaneEmitter: x, y")
-  .defaultValues(2, 1.0f,1.0f);
+  .defaultValues(1.0f,1.0f);
 }
 
Index: /trunk/src/lib/particles/sprite_particles.cc
===================================================================
--- /trunk/src/lib/particles/sprite_particles.cc	(revision 7197)
+++ /trunk/src/lib/particles/sprite_particles.cc	(revision 7198)
@@ -31,5 +31,5 @@
 
 SHELL_COMMAND(texture, SpriteParticles, setMaterialTexture)
-    ->defaultValues(1, "maps/evil-flower.png");
+    ->defaultValues("maps/evil-flower.png");
 
 using namespace std;
Index: /trunk/src/lib/physics/fields/field.cc
===================================================================
--- /trunk/src/lib/physics/fields/field.cc	(revision 7197)
+++ /trunk/src/lib/physics/fields/field.cc	(revision 7198)
@@ -62,5 +62,5 @@
   LoadParam(root, "magnitude", this, Field, setMagnitude)
       .describe("sets the magnitude of this Field")
-      .defaultValues(1, 1);
+      .defaultValues(1);
 
   LoadParam(root, "attenuation", this, Field, setAttenuation)
Index: /trunk/src/lib/shell/shell.cc
===================================================================
--- /trunk/src/lib/shell/shell.cc	(revision 7197)
+++ /trunk/src/lib/shell/shell.cc	(revision 7198)
@@ -43,16 +43,16 @@
 SHELL_COMMAND(textsize, Shell, setTextSize)
     ->describe("Sets the size of the Text size, linespacing")
-    ->defaultValues(1, 15, 0);
+    ->defaultValues(15, 0);
 SHELL_COMMAND(textcolor, Shell, setTextColor)
     ->describe("Sets the Color of the Shells Text (red, green, blue, alpha)")
-    ->defaultValues(4, SHELL_DEFAULT_TEXT_COLOR);
+    ->defaultValues(SHELL_DEFAULT_TEXT_COLOR);
 SHELL_COMMAND(backgroundcolor, Shell, setBackgroundColor)
     ->describe("Sets the Color of the Shells Background (red, green, blue, alpha)")
-    ->defaultValues(4, SHELL_DEFAULT_BACKGROUND_COLOR);
+    ->defaultValues(SHELL_DEFAULT_BACKGROUND_COLOR);
 SHELL_COMMAND(backgroundimage, Shell, setBackgroundImage)
     ->describe("sets the background image to load for the Shell");
 SHELL_COMMAND(font, Shell, setFont)
     ->describe("Sets the font of the Shell")
-    ->defaultValues(1, SHELL_DEFAULT_FONT);
+    ->defaultValues(SHELL_DEFAULT_FONT);
 
 /**
Index: /trunk/src/lib/shell/shell_command.cc
===================================================================
--- /trunk/src/lib/shell/shell_command.cc	(revision 7197)
+++ /trunk/src/lib/shell/shell_command.cc	(revision 7198)
@@ -292,21 +292,19 @@
 
 /**
- * sets default Values of the Commands
- * @param count how many default Values to set.
- * @param ... the default Values in order. They will be cast to the right type
- * @returns itself
- *
- * Be aware, that when you use this Function, you !!MUST!! match the input as
- * count, [EXACTLY THE SAME AS IF YOU WOULD CALL THE FUNCTION UP TO count ARGUMENTS]
- */
-ShellCommand* ShellCommand::defaultValues(unsigned int count, ...)
+ * @brief set the default values of the executor
+ * @param value0 the first default value
+ * @param value1 the second default value
+ * @param value2 the third default value
+ * @param value3 the fourth default value
+ * @param value4 the fifth default value
+ */
+ShellCommand* ShellCommand::defaultValues(const MultiType& value0, const MultiType& value1,
+                                          const MultiType& value2, const MultiType& value3,
+                                          const MultiType& value4)
 {
   if (this == NULL)
     return NULL;
 
-  va_list values;
-  va_start(values, count);
-
-  this->executor->defaultValues(count, values);
+  this->executor->defaultValues(value0, value1, value2, value3, value4);
 
   return this;
Index: /trunk/src/lib/shell/shell_command.h
===================================================================
--- /trunk/src/lib/shell/shell_command.h	(revision 7197)
+++ /trunk/src/lib/shell/shell_command.h	(revision 7198)
@@ -65,5 +65,7 @@
     ShellCommand* describe(const char* description);
     ShellCommand* setAlias(const char* alias);
-    ShellCommand* defaultValues(unsigned int count, ...);
+    ShellCommand* defaultValues(const MultiType& value0 = MT_NULL, const MultiType& value1 = MT_NULL,
+                                const MultiType& value2 = MT_NULL, const MultiType& value3 = MT_NULL,
+                                const MultiType& value4 = MT_NULL);
 
     static ShellCommand* registerCommand(const char* commandName, const char* className, const Executor& executor);
Index: /trunk/src/lib/util/executor/executor.cc
===================================================================
--- /trunk/src/lib/util/executor/executor.cc	(revision 7197)
+++ /trunk/src/lib/util/executor/executor.cc	(revision 7198)
@@ -55,5 +55,4 @@
   for (unsigned int i = 0; i < FUNCTOR_MAX_ARGUMENTS; i++)
   {
-    printf("%d ", i);
     if (this->defaultValue[i] == MT_NULL)
     {
@@ -61,8 +60,5 @@
       break;
     }
-
   }
-  printf("%d\n", this->paramCount);
-
   assert (paramCount <= FUNCTOR_MAX_ARGUMENTS);
 }
@@ -85,60 +81,41 @@
 }
 
-
-
 /**
- * sets default Values of the Commands
- * @param count how many default Values to set.
- * @param ... the default Values in order. They will be cast to the right type
+ * @brief set the default values of the executor
+ * @param value0 the first default value
+ * @param value1 the second default value
+ * @param value2 the third default value
+ * @param value3 the fourth default value
+ * @param value4 the fifth default value
  * @returns itself
- *
- * Be aware, that when you use this Function, you !!MUST!! match the input as
- * count, [EXACTLY THE SAME AS IF YOU WOULD CALL THE FUNCTION UP TO count ARGUMENTS]
  */
-Executor* Executor::defaultValues(unsigned int count, ...)
-{
-  va_list values;
-  va_start(values, count);
-
-  this->defaultValues(count, values);
-}
-
-Executor* Executor::defaultValues(unsigned int count, va_list values)
+Executor* Executor::defaultValues(const MultiType& value0,
+                                  const MultiType& value1,
+                                  const MultiType& value2,
+                                  const MultiType& value3,
+                                  const MultiType& value4)
 {
   if (this == NULL)
     return NULL;
-  if (count == 0)
-    return this;
-  if (count > this->paramCount)
-    count = this->paramCount;
 
+  const MultiType* value[5];
+  value[0] = &value0;
+  value[1] = &value1;
+  value[2] = &value2;
+  value[3] = &value3;
+  value[4] = &value4;
 
-  for (unsigned int i = 0; i < count; i++)
+  for (unsigned int i = 0; i < this->paramCount; i++)
   {
-    switch (this->defaultValue[i].getType())
+    if (*value[i] != MT_NULL)
     {
-      case MT_BOOL:
-        this->defaultValue[i].setInt(va_arg(values, int));
-        break;
-      case MT_CHAR:
-        this->defaultValue[i].setChar((char)va_arg(values, int));
-        break;
-      case MT_STRING:
-        this->defaultValue[i].setString(va_arg(values, char*));
-        break;
-      case MT_INT:
-        this->defaultValue[i].setInt(va_arg(values, int));
-        break;
-        /*      case MT_UINT:
-                this->defaultValue[i].setInt((int)va_arg(values, unsigned int));
-                break;*/
-      case MT_FLOAT:
-        this->defaultValue[i].setFloat(va_arg(values, double));
-        break;
-        /*      case MT_LONG:
-                this->defaultValue[i].setInt((int) va_arg(values, long));
-                break;*/
-      default:
-        break;
+      if (this->defaultValue[i].getType() == value[i]->getType())
+      {
+        this->defaultValue[i] = *value[i];
+      }
+      else
+      {
+        PRINTF(1)("Unable to set this Value, as it is not of type %s\n", MultiType::MultiTypeToString(this->defaultValue[i].getType()));
+      }
     }
   }
Index: /trunk/src/lib/util/executor/executor.h
===================================================================
--- /trunk/src/lib/util/executor/executor.h	(revision 7197)
+++ /trunk/src/lib/util/executor/executor.h	(revision 7198)
@@ -45,6 +45,7 @@
     virtual Executor* clone () const = 0;
 
-    Executor* defaultValues(unsigned int count, va_list values);
-    Executor* defaultValues(unsigned int count, ...);
+    Executor* defaultValues(const MultiType& value0 = MT_NULL, const MultiType& value1 = MT_NULL,
+                            const MultiType& value2 = MT_NULL, const MultiType& value3 = MT_NULL,
+                            const MultiType& value4 = MT_NULL);
 
     /** executes a Command @param object the object to apply this to @param parameters the parameters the command takes */
@@ -59,8 +60,6 @@
 
   protected:
-    Executor(const MultiType& param0 = MT_NULL,
-             const MultiType& param1 = MT_NULL,
-             const MultiType& param2 = MT_NULL,
-             const MultiType& param3 = MT_NULL,
+    Executor(const MultiType& param0 = MT_NULL, const MultiType& param1 = MT_NULL,
+             const MultiType& param2 = MT_NULL, const MultiType& param3 = MT_NULL,
              const MultiType& param4 = MT_NULL);
 
Index: /trunk/src/lib/util/loading/load_param.cc
===================================================================
--- /trunk/src/lib/util/loading/load_param.cc	(revision 7197)
+++ /trunk/src/lib/util/loading/load_param.cc	(revision 7198)
@@ -63,5 +63,5 @@
     if (likely(this->object != NULL) &&
         ( this->loadString != NULL ||
-         ((this->executor->getType() & Executor_NoLoadString) == Executor_NoLoadString)))
+          ((this->executor->getType() & Executor_NoLoadString) == Executor_NoLoadString)))
     {
       PRINTF(4)("Loading '%s' with Parameters '%s' onto: '%s'(%s)\n", this->paramName, this->loadString, this->object->getName(), this->object->getClassName());
@@ -73,15 +73,17 @@
 
 /**
- * set the default values of the executor
- * @param count how many default values to set.
- * @param ... the default values !! must be at least count parameters!!
- */
-CLoadParam& CLoadParam::defaultValues(unsigned int count, ...)
-{
-  va_list values;
-  va_start(values, count);
-
-  assert(executor != NULL);
-  this->executor->defaultValues(count, values);
+ * @brief set the default values of the executor
+ * @param value0 the first default value
+ * @param value1 the second default value
+ * @param value2 the third default value
+ * @param value3 the fourth default value
+ * @param value4 the fifth default value
+ */
+CLoadParam& CLoadParam::defaultValues(const MultiType& value0, const MultiType& value1,
+                                      const MultiType& value2, const MultiType& value3,
+                                      const MultiType& value4)
+{
+  assert(this->executor != NULL);
+  this->executor->defaultValues(value0, value1, value2, value3, value4);
 
   return *this;
@@ -97,7 +99,7 @@
 {
   if (LoadClassDescription::parametersDescription && this->paramDesc && !this->paramDesc->getDescription())
-    {
-      this->paramDesc->setDescription(descriptionText);
-    }
+  {
+    this->paramDesc->setDescription(descriptionText);
+  }
   return *this;
 }
@@ -239,8 +241,8 @@
   node = element->FirstChild();
   while( node != NULL)
-    {
-      if( node->ToText()) return node->Value();
-      node = node->NextSibling();
-    }
+  {
+    if( node->ToText()) return node->Value();
+    node = node->NextSibling();
+  }
   return NULL;
 }
Index: /trunk/src/lib/util/loading/load_param.h
===================================================================
--- /trunk/src/lib/util/loading/load_param.h	(revision 7197)
+++ /trunk/src/lib/util/loading/load_param.h	(revision 7198)
@@ -91,5 +91,7 @@
 
     CLoadParam& describe(const char* descriptionText);
-    CLoadParam& defaultValues(unsigned int count, ...);
+    CLoadParam& defaultValues(const MultiType& value0 = MT_NULL, const MultiType& value1 = MT_NULL,
+                              const MultiType& value2 = MT_NULL, const MultiType& value3 = MT_NULL,
+                              const MultiType& value4 = MT_NULL);
     CLoadParam& attribute(const char* attributeName, const Executor& executor);
 
Index: /trunk/src/util/object_manager.cc
===================================================================
--- /trunk/src/util/object_manager.cc	(revision 7197)
+++ /trunk/src/util/object_manager.cc	(revision 7198)
@@ -27,5 +27,5 @@
 using namespace std;
 SHELL_COMMAND(debug, ObjectManager, debug)
-    ->defaultValues(2, NULL, 0);
+    ->defaultValues("", 0);
 
 /**
Index: /trunk/src/world_entities/environments/water.cc
===================================================================
--- /trunk/src/world_entities/environments/water.cc	(revision 7197)
+++ /trunk/src/world_entities/environments/water.cc	(revision 7198)
@@ -71,13 +71,13 @@
   LoadParam(root, "size", this, Water, setSize)
   .describe("the size of the WaterSurface")
-  .defaultValues(2, 1.0f, 1.0f);
+  .defaultValues(1.0f, 1.0f);
 
   LoadParam(root, "resolution", this, Water, setResolution)
   .describe("sets the resolution of the water surface")
-  .defaultValues(2, 10, 10);
+  .defaultValues(10, 10);
 
   LoadParam(root, "height", this, Water, setHeight)
   .describe("the height of the Waves")
-  .defaultValues(1, 0.5f);
+  .defaultValues(0.5f);
 }
 
Index: /trunk/src/world_entities/spawning_point.cc
===================================================================
--- /trunk/src/world_entities/spawning_point.cc	(revision 7197)
+++ /trunk/src/world_entities/spawning_point.cc	(revision 7198)
@@ -76,5 +76,5 @@
   LoadParam(root, "frequency", this, SpawningPoint, setSpawningFrequency)
   .describe("sets the frequency of the spawning point")
-  .defaultValues(1, 1.0f);
+  .defaultValues(1.0f);
 
 
@@ -82,10 +82,10 @@
   LoadParam(root, "randomseed", this, SpawningPoint, setPositionSeed)
       .describe("sets the random position seed (variance in the spawning location around the position)")
-      .defaultValues(1, 0.0f);
+      .defaultValues(0.0f);
 
   /* now load the seed */
 /*  LoadParam(root, "classid", this, SpawningPoint, setSpawningEntity)
       .describe("sets the class id of the entity to spawn")
-      .defaultValues(1, CL_WORLD_ENTITY);*/
+      .defaultValues(CL_WORLD_ENTITY);*/
 }
 
Index: /trunk/src/world_entities/test_entity.cc
===================================================================
--- /trunk/src/world_entities/test_entity.cc	(revision 7197)
+++ /trunk/src/world_entities/test_entity.cc	(revision 7198)
@@ -73,5 +73,5 @@
   LoadParam(root, "md2animation", this, TestEntity, setAnim)
       .describe("sets the animation of the md2 model")
-      .defaultValues(1, 1);
+      .defaultValues(1);
 
 }
Index: /trunk/src/world_entities/world_entity.cc
===================================================================
--- /trunk/src/world_entities/world_entity.cc	(revision 7197)
+++ /trunk/src/world_entities/world_entity.cc	(revision 7198)
@@ -36,5 +36,5 @@
 SHELL_COMMAND(model, WorldEntity, loadModel)
 ->describe("sets the Model of the WorldEntity")
-->defaultValues(2, "models/ships/fighter.obj", 1.0);
+->defaultValues("models/ships/fighter.obj", 1.0);
 
 SHELL_COMMAND(debugEntity, WorldEntity, debugWE);
@@ -99,18 +99,18 @@
   LoadParam(root, "md2texture", this, WorldEntity, loadMD2Texture)
   .describe("the fileName of the texture, that should be loaded onto this world-entity. (must be relative to the data-dir)")
-  .defaultValues(1, NULL);
+  .defaultValues("");
 
   // Model Loading
   LoadParam(root, "model", this, WorldEntity, loadModel)
   .describe("the fileName of the model, that should be loaded onto this world-entity. (must be relative to the data-dir)")
-  .defaultValues(3, NULL, 1.0f, 0);
+  .defaultValues("", 1.0f, 0);
 
   LoadParam(root, "maxHealth", this, WorldEntity, setHealthMax)
   .describe("The Maximum health that can be loaded onto this entity")
-  .defaultValues(1, 1.0f);
+  .defaultValues(1.0f);
 
   LoadParam(root, "health", this, WorldEntity, setHealth)
   .describe("The Health the WorldEntity has at this moment")
-  .defaultValues(1, 1.0f);
+  .defaultValues(1.0f);
 }
 
@@ -438,17 +438,17 @@
 void WorldEntity::setHealthWidgetVisibilit(bool visibility)
 {
-    if (visibility)
-    {
-      if (this->healthWidget != NULL)
-        this->healthWidget->show();
-      else
-      {
-        this->createHealthWidget();
-        this->updateHealthWidget();
-        this->healthWidget->show();
-      }
-    }
-    else if (this->healthWidget != NULL)
-      this->healthWidget->hide();
+  if (visibility)
+  {
+    if (this->healthWidget != NULL)
+      this->healthWidget->show();
+    else
+    {
+      this->createHealthWidget();
+      this->updateHealthWidget();
+      this->healthWidget->show();
+    }
+  }
+  else if (this->healthWidget != NULL)
+    this->healthWidget->hide();
 }
 
@@ -595,5 +595,5 @@
   {
     SYNCHELP_WRITE_STRING("");
-}*/
+  }*/
 
   return SYNCHELP_WRITE_N;
