Index: orxonox/branches/heightMap/src/lib/Makefile.in
===================================================================
--- orxonox/branches/heightMap/src/lib/Makefile.in	(revision 4122)
+++ orxonox/branches/heightMap/src/lib/Makefile.in	(revision 4165)
@@ -113,4 +113,5 @@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
 SET_MAKE = @SET_MAKE@
@@ -182,7 +183,7 @@
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  src/lib/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  src/lib/Makefile'; \
 	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  src/lib/Makefile
+	  $(AUTOMAKE) --foreign  src/lib/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
Index: orxonox/branches/heightMap/src/lib/coord/p_node.cc
===================================================================
--- orxonox/branches/heightMap/src/lib/coord/p_node.cc	(revision 4122)
+++ orxonox/branches/heightMap/src/lib/coord/p_node.cc	(revision 4165)
@@ -99,5 +99,4 @@
   this->parent = parent; 
   this->objectName = NULL;
-  this->time = 1.0; /* set time to 1 to make divisions by zero impossible */
 }
 
@@ -281,22 +280,4 @@
 }
 
-
-
-/**
-   \brief this calculates the current movement speed of the node
-*/
-float PNode::getSpeed() const
-{
-  return (this->absCoordinate - this->lastAbsCoordinate).len() / this->time;
-}
-
-/**
-   \returns the Velocity of the PNode
-*/
-Vector PNode::getVelocity() const
-{
-  return (this->absCoordinate - this->lastAbsCoordinate) / this->time;
-}
-
 /**
    \brief adds a child and makes this node to a parent
@@ -424,5 +405,5 @@
 {
   this->lastAbsCoordinate = this->absCoordinate;
-  this->time = dt;
+
   PRINTF(4)("PNode::update - %s - (%f, %f, %f)\n", this->objectName, this->absCoordinate.x, this->absCoordinate.y, this->absCoordinate.z);
 
@@ -499,4 +480,5 @@
   delete iterator;
 
+  this->velocity = (this->absCoordinate - this->lastAbsCoordinate) / dt;
   this->timeStamp = timeStamp;
   this->bRelCoorChanged = false;
Index: orxonox/branches/heightMap/src/lib/coord/p_node.h
===================================================================
--- orxonox/branches/heightMap/src/lib/coord/p_node.h	(revision 4122)
+++ orxonox/branches/heightMap/src/lib/coord/p_node.h	(revision 4165)
@@ -69,6 +69,8 @@
   void shiftDir (const Quaternion& shift);
 
-  float getSpeed() const;
-  Vector getVelocity() const;
+  /** \returns the Speed of the Node */
+  inline float getSpeed() const {return this->velocity.len()/1000;} //! \FIX THIS SHOULD NOT BE /1000
+  /** \returns the Velocity of the Node */
+  inline const Vector& getVelocity() const {return this->velocity;}
 
   void addChild (PNode* pNode, int parentingMode = DEFAULT_MODE);
@@ -110,7 +112,6 @@
   void init(PNode* parent);
 
+  Vector velocity;          //!< Saves the velocity.
   Vector lastAbsCoordinate; //!< this is used for speedcalculation, it stores the last coordinate
-  Vector diffCoordinate;    //!< this is stored here for performance reasons, difference to the last vector
-  float time;                //!< time since last update
 };
 
Index: orxonox/branches/heightMap/src/lib/graphics/Makefile.in
===================================================================
--- orxonox/branches/heightMap/src/lib/graphics/Makefile.in	(revision 4122)
+++ orxonox/branches/heightMap/src/lib/graphics/Makefile.in	(revision 4165)
@@ -113,4 +113,5 @@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
 SET_MAKE = @SET_MAKE@
@@ -176,7 +177,7 @@
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  src/lib/graphics/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  src/lib/graphics/Makefile'; \
 	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  src/lib/graphics/Makefile
+	  $(AUTOMAKE) --foreign  src/lib/graphics/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
Index: orxonox/branches/heightMap/src/lib/graphics/graphics_engine.cc
===================================================================
--- orxonox/branches/heightMap/src/lib/graphics/graphics_engine.cc	(revision 4122)
+++ orxonox/branches/heightMap/src/lib/graphics/graphics_engine.cc	(revision 4165)
@@ -31,4 +31,7 @@
 {
   this->setClassName ("GraphicsEngine");
+
+  this->fullscreen = false;
+
   this->initVideo();
 
@@ -140,10 +143,15 @@
 int GraphicsEngine::setResolution(int width, int height, int bpp)
 {
+  Uint32 fullscreenFlag;
   this->resolutionX = width;
   this->resolutionY = height;
   this->bitsPerPixel = bpp;
+  if (this->fullscreen)
+    fullscreenFlag = SDL_FULLSCREEN;
+  else
+    fullscreenFlag = 0;
   
   printf ("ok\n");
-  if((this->screen = SDL_SetVideoMode(this->resolutionX, this->resolutionY, this->bitsPerPixel, this->videoFlags)) == NULL)
+  if((this->screen = SDL_SetVideoMode(this->resolutionX, this->resolutionY, this->bitsPerPixel, this->videoFlags | fullscreenFlag)) == NULL)
     {
       PRINTF(1)("Could not SDL_SetVideoMode(%d, %d, %d, %d): %s\n", this->resolutionX, this->resolutionY, this->bitsPerPixel, this->videoFlags, SDL_GetError());
@@ -151,5 +159,10 @@
       //    return -1;
     }
-
+}
+
+void GraphicsEngine::setFullscreen(bool fullscreen)
+{
+  this->fullscreen = fullscreen;
+  this->setResolution(this->resolutionX, this->resolutionY, this->bitsPerPixel);
 }
 
@@ -257,5 +270,5 @@
   /* Check if our resolution is restricted */
   if(this->videoModes == (SDL_Rect **)-1){
-    PRINTF(1)("All resolutions available.\n");
+    PRINTF(2)("All resolutions available.\n");
   }
   else{
@@ -263,5 +276,5 @@
     PRINT(0)("Available Resoulution Modes are\n");
     for(int i = 0; this->videoModes[i]; ++i)
-      PRINT(0)(" |  %d x %d\n", this->videoModes[i]->w, this->videoModes[i]->h);
+      PRINT(4)(" |  %d x %d\n", this->videoModes[i]->w, this->videoModes[i]->h);
   }
   
Index: orxonox/branches/heightMap/src/lib/graphics/graphics_engine.h
===================================================================
--- orxonox/branches/heightMap/src/lib/graphics/graphics_engine.h	(revision 4122)
+++ orxonox/branches/heightMap/src/lib/graphics/graphics_engine.h	(revision 4165)
@@ -26,4 +26,5 @@
   int setGLattribs(void);
   int setResolution(int width, int height, int bpp);
+  void setFullscreen(bool fullscreen = false);
   /** \returns the x resolution */
   inline int getResolutionX(void) {return this->resolutionX;}
Index: orxonox/branches/heightMap/src/lib/graphics/importer/Makefile.in
===================================================================
--- orxonox/branches/heightMap/src/lib/graphics/importer/Makefile.in	(revision 4122)
+++ orxonox/branches/heightMap/src/lib/graphics/importer/Makefile.in	(revision 4165)
@@ -150,4 +150,5 @@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
 SET_MAKE = @SET_MAKE@
@@ -247,7 +248,7 @@
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  src/lib/graphics/importer/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  src/lib/graphics/importer/Makefile'; \
 	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  src/lib/graphics/importer/Makefile
+	  $(AUTOMAKE) --foreign  src/lib/graphics/importer/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
Index: orxonox/branches/heightMap/src/lib/graphics/importer/material.cc
===================================================================
--- orxonox/branches/heightMap/src/lib/graphics/importer/material.cc	(revision 4122)
+++ orxonox/branches/heightMap/src/lib/graphics/importer/material.cc	(revision 4165)
@@ -45,12 +45,7 @@
   this->setTransparency(1.0);
 
-
   this->diffuseTexture = NULL;
   this->ambientTexture = NULL;
   this->specularTexture = NULL;
-
-  this->diffuseTextureSet = false;
-  this->ambientTextureSet = false;
-  this->specularTextureSet = false;
 
   this->setName(mtlName);
@@ -107,5 +102,5 @@
     glShadeModel(GL_SMOOTH);
 
-  if (this->diffuseTextureSet)
+  if (this->diffuseTexture)
     {
       glEnable(GL_TEXTURE_2D);
@@ -300,10 +295,8 @@
 {
   PRINTF(4)("setting Diffuse Map %s\n", dMap);
-  //    diffuseTexture = new Texture();
-  //    this->diffuseTextureSet = diffuseTexture->loadImage(dMap);
 
   //! \todo check if RESOURCE MANAGER is availiable
   //! \todo Textures from .mtl-file need special care.
-  this->diffuseTextureSet = this->diffuseTexture = (Texture*)ResourceManager::getInstance()->load(dMap, IMAGE);
+  this->diffuseTexture = (Texture*)ResourceManager::getInstance()->load(dMap, IMAGE);
 }
 
Index: orxonox/branches/heightMap/src/lib/graphics/importer/material.h
===================================================================
--- orxonox/branches/heightMap/src/lib/graphics/importer/material.h	(revision 4122)
+++ orxonox/branches/heightMap/src/lib/graphics/importer/material.h	(revision 4165)
@@ -67,9 +67,4 @@
   Texture* ambientTexture; //!< The ambient texture of the Material.
   Texture* specularTexture;//!< The specular texture of the Material.
-  
-  bool diffuseTextureSet; //!< Chekcs if the diffuse texture is Set.
-  bool ambientTextureSet; //!< Chekcs if the ambient texture is Set.
-  bool specularTextureSet;//!< Chekcs if the specular texture is Set.
-
 };
 #endif
Index: orxonox/branches/heightMap/src/lib/graphics/particles/particle_system.cc
===================================================================
--- orxonox/branches/heightMap/src/lib/graphics/particles/particle_system.cc	(revision 4122)
+++ orxonox/branches/heightMap/src/lib/graphics/particles/particle_system.cc	(revision 4165)
@@ -40,4 +40,5 @@
    this->particleType = type;
    this->particles = NULL;
+   this->deadList = NULL;
    this->setConserve(.8);
    this->setLifeSpan(.1);
@@ -57,4 +58,20 @@
   // delete what has to be deleted here
    ParticleEngine::getInstance()->removeSystem(this);
+
+   // deleting all the living Particles
+   while (this->particles)
+     {
+       Particle* tmpDelPart = this->particles;
+       this->particles = this->particles->next;
+       delete tmpDelPart;
+     }
+
+   // deleting all the dead particles
+   while (this->deadList)
+     {
+       Particle* tmpDelPart = this->deadList;
+       this->deadList = this->deadList->next;
+       delete tmpDelPart;
+     }
 }
 
@@ -199,5 +216,6 @@
 	    {
 	      prevPart->next = tickPart->next;
-	      delete tickPart;
+	      tickPart->next = this->deadList;
+	      this->deadList = tickPart;
 	      tickPart = prevPart->next;
 	    }
@@ -206,5 +224,6 @@
 	      prevPart = NULL;
 	      this->particles = tickPart->next;
-	      delete tickPart;
+	      tickPart->next = this->deadList;
+	      this->deadList = tickPart;
 	      tickPart = this->particles;
 	    }
@@ -266,5 +285,11 @@
       if (unlikely(particles == NULL))
 	{
-	  this->particles = new Particle;
+	  if (likely(deadList != NULL))
+	    {
+	      this->particles = this->deadList;
+	      deadList = deadList->next;
+	    }
+	  else
+	    this->particles = new Particle;
 	  this->particles->next = NULL;
 	}
@@ -272,5 +297,12 @@
       else
 	{
-	  Particle* tmpPart = new Particle;
+	  Particle* tmpPart;
+	  if (likely(deadList != NULL))
+	    {
+	      tmpPart = this->deadList;
+	      deadList = deadList->next;
+	    }
+	  else
+	    tmpPart = new Particle;
 	  tmpPart->next = this->particles;
 	  this->particles = tmpPart;
@@ -300,3 +332,11 @@
   PRINT(0)("  ParticleSystem %s\n", this->name);
   PRINT(0)("  ParticleCount: %d, maximumCount: %d :: filled %d%%\n", this->count, this->maxCount, 100*this->count/this->maxCount);
-}
+  if (deadList)
+    {
+      PRINT(0)("  - ParticleDeadList is used: ");
+      int i = 1;
+      Particle* tmpPart = this->deadList;
+      while (tmpPart = tmpPart->next) ++i;
+      PRINT(0)("count: %d\n", i);
+    }
+}
Index: orxonox/branches/heightMap/src/lib/graphics/particles/particle_system.h
===================================================================
--- orxonox/branches/heightMap/src/lib/graphics/particles/particle_system.h	(revision 4122)
+++ orxonox/branches/heightMap/src/lib/graphics/particles/particle_system.h	(revision 4165)
@@ -92,4 +92,5 @@
   Material* material;        //!< A Material for all the Particles.
   Particle* particles;       //!< A list of particles of this System.
+  Particle* deadList;        //!< A list of dead Particles in the System.
 
   GLuint* glID;              //!< A List of different gl-List-ID's
Index: orxonox/branches/heightMap/src/lib/gui/Makefile.in
===================================================================
--- orxonox/branches/heightMap/src/lib/gui/Makefile.in	(revision 4122)
+++ orxonox/branches/heightMap/src/lib/gui/Makefile.in	(revision 4165)
@@ -113,4 +113,5 @@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
 SET_MAKE = @SET_MAKE@
@@ -178,7 +179,7 @@
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  src/lib/gui/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  src/lib/gui/Makefile'; \
 	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  src/lib/gui/Makefile
+	  $(AUTOMAKE) --foreign  src/lib/gui/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
Index: orxonox/branches/heightMap/src/lib/gui/console/Makefile.in
===================================================================
--- orxonox/branches/heightMap/src/lib/gui/console/Makefile.in	(revision 4122)
+++ orxonox/branches/heightMap/src/lib/gui/console/Makefile.in	(revision 4165)
@@ -132,4 +132,5 @@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
 SET_MAKE = @SET_MAKE@
@@ -204,7 +205,7 @@
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  src/lib/gui/console/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  src/lib/gui/console/Makefile'; \
 	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  src/lib/gui/console/Makefile
+	  $(AUTOMAKE) --foreign  src/lib/gui/console/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
Index: orxonox/branches/heightMap/src/lib/gui/gui/Makefile.in
===================================================================
--- orxonox/branches/heightMap/src/lib/gui/gui/Makefile.in	(revision 4122)
+++ orxonox/branches/heightMap/src/lib/gui/gui/Makefile.in	(revision 4165)
@@ -150,4 +150,5 @@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
 RANLIB = @RANLIB@
 SET_MAKE = @SET_MAKE@
@@ -264,7 +265,7 @@
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  src/lib/gui/gui/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  src/lib/gui/gui/Makefile'; \
 	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  src/lib/gui/gui/Makefile
+	  $(AUTOMAKE) --foreign  src/lib/gui/gui/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
Index: orxonox/branches/heightMap/src/lib/gui/gui/gui.cc
===================================================================
--- orxonox/branches/heightMap/src/lib/gui/gui/gui.cc	(revision 4122)
+++ orxonox/branches/heightMap/src/lib/gui/gui/gui.cc	(revision 4165)
@@ -53,5 +53,6 @@
 {
   Window* orxonoxGUI = NULL;
-
+  executable = NULL;
+  
   initGUI(argc, argv);
 
@@ -80,13 +81,12 @@
       Box* optionBoxR = new Box('v');
       {
-	exec = new GuiExec();
-	optionBoxR->fill(exec->getWidget());
-	
 	flags = new GuiFlags();
-	
 	optionBoxR->fill(flags->getWidget());
 	
 	update = new GuiUpdate();
 	optionBoxR->fill(update->getWidget());
+
+	exec = new GuiExec();
+	optionBoxR->fill(exec->getWidget());
       }
       windowBox->fill(optionBoxR);
@@ -94,4 +94,6 @@
     orxonoxGUI->fill(windowBox);
   }
+
+
   // Reading Values from File
   exec->setConfDir(GUI_DEFAULT_CONF_DIR);
@@ -116,6 +118,13 @@
     }
 #endif /* HAVE_CURL */
+}
 
+/**
+   \brief starts the OrxonoxGUI
+*/
+void Gui::startGui(void)
+{
   mainloopGUI();
+  
 #ifndef HAVE_GTK2
   GuiExec::startOrxonox(NULL, exec);
@@ -123,4 +132,12 @@
 }
 
+void Gui::printHelp()
+{
+  Window::mainWindow->walkThrough(Widget::printHelp, 1);
+}
+
+/**
+   \brief a bool that knows if orxonox should be started
+*/
 bool Gui::startOrxonox = false;
 
Index: orxonox/branches/heightMap/src/lib/gui/gui/gui.h
===================================================================
--- orxonox/branches/heightMap/src/lib/gui/gui/gui.h	(revision 4122)
+++ orxonox/branches/heightMap/src/lib/gui/gui/gui.h	(revision 4165)
@@ -26,4 +26,7 @@
   ~Gui(void);
 
+  void startGui(void);
+  void printHelp(void);
+
   static bool startOrxonox;
 };
Index: orxonox/branches/heightMap/src/lib/gui/gui/gui_audio.cc
===================================================================
--- orxonox/branches/heightMap/src/lib/gui/gui/gui_audio.cc	(revision 4122)
+++ orxonox/branches/heightMap/src/lib/gui/gui/gui_audio.cc	(revision 4165)
@@ -47,4 +47,6 @@
       enableSound = new CheckButton(CONFIG_NAME_DISABLE_AUDIO);
       enableSound->setFlagName ("no-sound", 0);
+      enableSound->setDescription("Disables Sound", "Check this to disable Sound in Orxonox");
+      enableSound->setDefaultValue(0);
       enableSound->saveability();
       audioBox->fill(enableSound);
@@ -53,4 +55,5 @@
       musicVolume = new Slider("Music Volume", 0, 100);
       musicVolume->setFlagName("music-volume", "m", 80);
+      musicVolume->setDescription("Sets the volume of the ingame music");
       musicVolume->saveability();
       audioBox->fill (musicVolume);
@@ -59,4 +62,5 @@
       effectsVolume = new Slider ("Effects Volume", 0, 100);
       effectsVolume->setFlagName ("effects-volume", "e", 80);
+      effectsVolume->setDescription("Sets the volune of the ingame SoundEffects");
       effectsVolume->saveability();
       audioBox->fill (effectsVolume);
Index: orxonox/branches/heightMap/src/lib/gui/gui/gui_exec.cc
===================================================================
--- orxonox/branches/heightMap/src/lib/gui/gui/gui_exec.cc	(revision 4122)
+++ orxonox/branches/heightMap/src/lib/gui/gui/gui_exec.cc	(revision 4165)
@@ -70,11 +70,48 @@
       execBox->fill(this->saveSettings);
 
-      verboseMode = new Menu(CONFIG_NAME_VERBOSE_MODE, "nothing", "error", "warning", "info", "lastItem");
+#ifdef DEBUG
+      verboseMode = new Menu(CONFIG_NAME_VERBOSE_MODE, "nothing",
+#if DEBUG >=1
+			     "error",
+#endif
+#if DEBUG >=2
+			     "warning",
+#endif
+#if DEBUG >=3
+			     "info",
+#endif
+#if DEBUG >=4
+			     "debug",
+#endif
+#if DEBUG >=5
+			     "heavydebug",
+#endif
+			     "lastItem");
       verboseMode->setFlagName("verbose", "v", 2);
+      verboseMode->setDescription("Sets the Output Mode", "This Enables Outbug messages\n"
+				  "0: nothing will be displayed, but stuff one cannot do without (eg.GUI)\n"
+#if DEBUG >=1
+				  "1: error: outputs all the above and errors"
+#endif
+#if DEBUG >=2
+				  "2: warning: outputs all the above plus warnings"
+#endif
+#if DEBUG >=3
+				  "3: info: outputs all the above plus Information"
+#endif
+#if DEBUG >=4
+				  "4: debug: displays all the above plus debug information"
+#endif
+#if DEBUG >=5
+				  "5: heavydebug: displays all the above plus heavy debug information: WARNING: the game will run very slow with this."
+#endif
+				  );
       verboseMode->saveability();
       execBox->fill(verboseMode);
+#endif
 
       alwaysShow = new CheckButton(CONFIG_NAME_ALWAYS_SHOW_GUI);
       alwaysShow->setFlagName("gui", "g", 0);
+      alwaysShow->setDescription("shows the gui when starting orxonox");
       alwaysShow->saveability();
       execBox->fill(alwaysShow);
@@ -114,5 +151,5 @@
   this->confDir = ResourceManager::homeDirCheck(confDir);
 
-  PRINTF(3)("Config Directory is: %s.\n", this->confDir);
+  PRINTF(5)("Config Directory is: %s.\n", this->confDir);
   //! \todo F** Windows-support
 #ifndef __WIN32__
@@ -135,5 +172,5 @@
   this->confFile = new char[strlen(this->confDir)+strlen(fileName)+2];
   sprintf(this->confFile, "%s/%s", this->confDir, fileName);
-  PRINTF(3)("ConfigurationFile is %s.\n", this->confFile);
+  PRINTF(5)("ConfigurationFile is %s.\n", this->confFile);
 }
 
Index: orxonox/branches/heightMap/src/lib/gui/gui/gui_flags.cc
===================================================================
--- orxonox/branches/heightMap/src/lib/gui/gui/gui_flags.cc	(revision 4122)
+++ orxonox/branches/heightMap/src/lib/gui/gui/gui_flags.cc	(revision 4165)
@@ -38,4 +38,5 @@
   this->flagsBox->fill(flagsLabel);
   this->shortFlags = new CheckButton("shortFlags");
+  this->shortFlags->setDefaultValue(0);
   this->flagsBox->fill(shortFlags);
 
Index: orxonox/branches/heightMap/src/lib/gui/gui/gui_gtk.cc
===================================================================
--- orxonox/branches/heightMap/src/lib/gui/gui/gui_gtk.cc	(revision 4122)
+++ orxonox/branches/heightMap/src/lib/gui/gui/gui_gtk.cc	(revision 4165)
@@ -312,4 +312,44 @@
 
 /** 
+    \brief This is for listing the options of "widget"
+    \param widget specifies the widget that should be listed
+    \param data A Counter, that always knows how many Options have been found yet.
+*/
+void Widget::printHelp(Widget* widget)
+{
+  int helpLen=0;
+
+  if (widget->optionType > GUI_NOTHING)
+    {
+      Option* option = (Option*)widget;
+      if (option->flagName || option->flagNameShort)
+	{
+	  PRINT(0)("  ");
+	  if (option->flagNameShort)
+	    {
+	      PRINT(0)("-%s", option->flagNameShort);
+	      helpLen += strlen(option->flagNameShort)+1;
+	    }
+	  if (option->flagName)
+	    {
+	      if (helpLen > 0)
+		{
+		  PRINT(0)("|");
+		  helpLen++;
+		}
+	      PRINT(0)("--%s:", option->flagName);
+	      helpLen += strlen(option->flagName)+2;
+	    }
+	  while ((helpLen ++) < 29)
+	    PRINT(0)(" ");
+	  if (option->shortDescription)
+	    PRINT(0)("%s\n", option->shortDescription);
+	  else
+	    PRINT(0)("\n");
+	}
+    }
+}
+
+/** 
     \brief Finds an Option by a given number(the n'th option found away from this Widget)
     \param number The Count of options to wait(by reference)
@@ -595,5 +635,5 @@
     }
   else
-    PRINTF(1)("You tried to put more than one Widget into a Container. \nNot including this item.\nThis is only possible with Boxes.\n");
+    PRINTF(2)("You tried to put more than one Widget into a Container. \nNot including this item.\nThis is only possible with Boxes.\n");
 }
 
@@ -1177,6 +1217,7 @@
   if ((this->value = atoi(tmpChar))=!0)
     this->value = 1;
-#endif /* HAVE_GTK2 */
+
   PRINT(0)("%s set to: %d\n", this->title, this->value);
+#endif /* HAVE_GTK2 */
 }
 
@@ -1262,6 +1303,7 @@
   if (this->value <= this->start)
     this->value = this->start;
-#endif /* HAVE_GTK2 */
+
   PRINT(0)("%s set to: %d\n",this->title, this->value);
+#endif /* HAVE_GTK2 */
 }
 
@@ -1370,7 +1412,7 @@
     {
       this->value = 0;
-      PRINTF(2)("Sorry, but %s has not been found in the Itemlist of %s\n", loadString, this->title);
-    }
-  PRINTF(4)( "Loading %s: setting to %d\n", this->title, this->value); 
+      PRINTF(2)("%s has not been found in the Itemlist of %s\n", loadString, this->title);
+    }
+  PRINTF(5)( "Loading %s: setting to %d\n", this->title, this->value); 
   this->redraw();
 }
@@ -1429,5 +1471,5 @@
 
 #endif /* HAVE_GTK2 */
-  PRINT(4)("%s set to: %d\n", this->title, this->value);
+  PRINT(5)("%s set to: %d\n", this->title, this->value);
 }
 
@@ -1518,5 +1560,5 @@
 void OptionLabel::load(char* loadString)
 {
-  PRINTF(4)("Loading %s: setting to %s\n", this->title, loadString); 
+  PRINTF(5)("Loading %s: setting to %s\n", this->title, loadString); 
   this->setValue(loadString);
 }
@@ -1668,5 +1710,5 @@
 #ifdef HAVE_GTK2
   gtk_progress_set_value(GTK_PROGRESS(widget), this->progress*100.0/this->totalSize);
-  PRINTF(4)("Progress: %f%%\n", this->progress*100.0/this->totalSize);
+  PRINTF(5)("Progress: %f%%\n", this->progress*100.0/this->totalSize);
 #else /* HVE_GTK2 */
   PRINT(0)("Progress: %f%%\n", this->progress*100.0/this->totalSize);
Index: orxonox/branches/heightMap/src/lib/gui/gui/gui_gtk.h
===================================================================
--- orxonox/branches/heightMap/src/lib/gui/gui/gui_gtk.h	(revision 4122)
+++ orxonox/branches/heightMap/src/lib/gui/gui/gui_gtk.h	(revision 4165)
@@ -71,4 +71,5 @@
    static void listGroups(Widget* widget);
    static void listGroups(Widget* widget, void* data);
+   static void printHelp(Widget* widget);
    Widget* findGroupByNumber(int* number, unsigned int depth);
    static void setOptions(Widget* widget);
Index: orxonox/branches/heightMap/src/lib/gui/gui/gui_update.cc
===================================================================
--- orxonox/branches/heightMap/src/lib/gui/gui/gui_update.cc	(revision 4122)
+++ orxonox/branches/heightMap/src/lib/gui/gui/gui_update.cc	(revision 4165)
@@ -55,4 +55,6 @@
   dataDirButton = new Button(CONFIG_NAME_DATADIR);
   dataDirLabel = new OptionLabel(CONFIG_NAME_DATADIR, "unknown");
+  dataDirLabel->setFlagName("data-dir", "d", 0);
+  dataDirLabel->setDescription("Sets the location of the orxonox' Data-Directory");
   dataDirLabel->saveability();
   dataDirDialog = new FileDialog("data-Repos-location");
@@ -73,4 +75,5 @@
   this->updateBox->fill(this->autoUpdate);
   this->autoUpdate->setFlagName("update", "u", 0);
+  this->autoUpdate->setDescription("Updates orxonox", "When this option is selected orxonox automatically searches for updates, and if found installs them");
   this->autoUpdate->saveability();
 
@@ -127,9 +130,9 @@
 bool GuiUpdate::getSystemInfo(void)
 {
-  PRINTF(3)("Grabbing system information\n");
+  PRINTF(5)("Grabbing system information\n");
   this->tmpDir = getenv("TMPDIR");
   if(!tmpDir)
     this->tmpDir = "/tmp";
-  PRINTF(4)("Temporary directory is: %s\n", this->tmpDir);
+  PRINTF(5)("Temporary directory is: %s\n", this->tmpDir);
 
 #ifdef __WIN32__
@@ -138,14 +141,15 @@
   this->homeDir = getenv("HOME");
 #endif
-  PRINTF(4)("Home directory is %s\n", homeDir);
-
-  this->installDataDir = "/usr/share/games/orxonox";
-  PRINTF(4)("Installation of orxonox-data will go to this directory: %s\n", this->installDataDir);
+  PRINTF(5)("Home directory is %s\n", homeDir);
+
+
+  this->installDataDir = DEFAULT_DATA_DIR;
+  PRINTF(5)("Installation of orxonox-data will go to this directory: %s\n", this->installDataDir);
 
   this->installSourceDir = "/usr/games/bin";
-  PRINTF(4)("Installation of orxonox-source will go to this directory: %s\n", this->installSourceDir);
+  PRINTF(5)("Installation of orxonox-source will go to this directory: %s\n", this->installSourceDir);
 
   this->userName = getenv("USER");
-  PRINTF(4)("Logged in username is: %s\n", this->userName);
+  PRINTF(5)("Logged in username is: %s\n", this->userName);
 }
 
@@ -153,5 +157,5 @@
 bool* GuiUpdate::checkForUpdates(void)
 {
-  PRINTF(3)("checking for new version of orxonox\n");
+  PRINTF(4)("checking for new version of orxonox\n");
   FileInfo updateFileInfo;
   updateFileInfo.fileName = "update_info";
@@ -263,5 +267,5 @@
   dataInfo->webRoot  = "http://www.orxonox.ethz.ch/files/";
   dataInfo->localRoot = "./";
-  PRINTF(3)("Preparing to download file %s.\n", dataInfo->fileName);
+  PRINTF(4)("Preparing to download file %s.\n", dataInfo->fileName);
   downloadWithStyle(dataInfo);
 }
@@ -348,5 +352,5 @@
       return false;
     }
-  PRINTF(3)("Downloading.\n");
+  PRINTF(4)("Downloading.\n");
   FileInfo* info =(FileInfo*)fileInfo;
   CURLcode res;
@@ -396,5 +400,5 @@
       return false;
     }
-  PRINTF(3)("Downloading.\n");
+  PRINTF(4)("Downloading.\n");
   FileInfo* info =(FileInfo*)fileInfo;
   CURLcode res;
@@ -464,5 +468,5 @@
     curl_easy_cleanup(curlHandle);
  
-  PRINTF(3)("Closing the downloaded file.\n");
+  PRINTF(4)("Closing the downloaded file.\n");
   fclose(info->fileHandle);
 
@@ -490,5 +494,5 @@
 gint GuiUpdate::cancelDownload(GtkWidget* w, GdkEventKey* event, void* bar)
 {
-  PRINTF(4)("Cannot cancle the Downloading process until after this File\n");
+  PRINTF(3)("Cannot cancle the Downloading process until after this File\n");
 }
 #endif /* HAVE_GTK2 */
Index: orxonox/branches/heightMap/src/lib/gui/gui/gui_video.cc
===================================================================
--- orxonox/branches/heightMap/src/lib/gui/gui/gui_video.cc	(revision 4122)
+++ orxonox/branches/heightMap/src/lib/gui/gui/gui_video.cc	(revision 4165)
@@ -51,4 +51,5 @@
       fullscreen = new CheckButton(CONFIG_NAME_FULLSCREEN);
       fullscreen->setFlagName("windowed", "q", 1);
+      fullscreen->setDescription("Starts orxonox in windowed mode");
       fullscreen->saveability();
       videoBox->fill(fullscreen);
@@ -57,7 +58,9 @@
       resolution->saveability();
       resolution->setFlagName("resolution", "r", 0);
+      resolution->setDescription("Sets the resolution of orxonox");
       videoBox->fill(resolution);
       wireframe = new CheckButton(CONFIG_NAME_WIREFRAME);
       wireframe->setFlagName("wireframe", "w", 0);
+      wireframe->setDescription("Starts orxonox in wireframe mode");
       wireframe->saveability();
       videoBox->fill(wireframe);
@@ -199,10 +202,10 @@
   else{
     /* Print valid modes */
-    PRINT(4)("Available Modes\n");
+    PRINT(5)("Available Modes\n");
     for(i = 0; modes[i] ;++i)
       {
 	if (x != modes[i]->w || y != modes[i]->h)
 	  { 
-	    PRINT(4)("  %d x %d\n", modes[i]->w, modes[i]->h);
+	    PRINTF(5)("  %d x %d\n", modes[i]->w, modes[i]->h);
 	    sprintf(tmpChar, "%dx%d", modes[i]->w, modes[i]->h);
 	    menu->addItem(tmpChar);
