Index: code/branches/hud/src/orxonox/OrxonoxPrereqs.h
===================================================================
--- code/branches/hud/src/orxonox/OrxonoxPrereqs.h	(revision 1613)
+++ code/branches/hud/src/orxonox/OrxonoxPrereqs.h	(revision 1614)
@@ -130,4 +130,12 @@
 }
 
+namespace Ogre
+{
+    // some got forgotten in OgrePrerequisites
+    class BorderPanelOverlayElement;
+    class PanelOverlayElement;
+    class TextAreaOverlayElement;
+}
+
 
 #endif /* _OrxonoxPrereqs_H__ */
Index: code/branches/hud/src/orxonox/Radar.cc
===================================================================
--- code/branches/hud/src/orxonox/Radar.cc	(revision 1613)
+++ code/branches/hud/src/orxonox/Radar.cc	(revision 1614)
@@ -23,5 +23,5 @@
  *      Reto Grieder
  *   Co-authors:
- *      ...
+ *      Felix Schulthess
  *
  */
@@ -38,13 +38,9 @@
 #include "objects/SpaceShip.h"
 #include "core/CoreIncludes.h"
+#include "RadarListener.h"
 //#include "core/ConfigValueIncludes.h"
 
 namespace orxonox
 {
-    RadarListener::RadarListener()
-    {
-        RegisterRootObject(RadarListener);
-    }
-
     SetConsoleCommand(Radar, cycleNavigationFocus, true).setAccessLevel(AccessLevel::User);
     SetConsoleCommand(Radar, releaseNavigationFocus, true).setAccessLevel(AccessLevel::User);
@@ -86,11 +82,4 @@
     }
 
-    /*void Radar::unregisterObject(RadarViewable* object)
-    {
-        if (this->focus_ == object)
-            this->focus_ = 0;
-        // TODO: check for focus
-    }*/
-
     const RadarViewable* Radar::getFocus()
     {
@@ -119,4 +108,6 @@
         for (Iterator<RadarListener> itListener = ObjectList<RadarListener>::begin(); itListener; ++itListener)
         {
+            (*itListener)->radarTick(dt);
+
             for (Iterator<RadarViewable> itElement = ObjectList<RadarViewable>::begin(); itElement; ++itElement)
             {
@@ -124,9 +115,4 @@
                     (*itListener)->displayObject(*itElement, *itElement == this->focus_);
             }
-
-            (*itListener)->radarTick(dt);
-
-            if (this->focus_ == 0)
-                (*itListener)->hideMarker();
         }
     }
@@ -190,4 +176,15 @@
     }
 
+    void Radar::listObjects() const
+    {
+        COUT(3) << "List of RadarObjects:\n";
+        // iterate through all Radar Objects
+        unsigned int i = 0;
+        for (Iterator<RadarViewable> it = ObjectList<RadarViewable>::start(); it; ++it, ++i)
+        {
+            COUT(3) << i++ << ": " << (*it)->getWorldPosition() << std::endl;
+        }
+    }
+
 
     /*static*/ Radar& Radar::getInstance()
Index: code/branches/hud/src/orxonox/Radar.h
===================================================================
--- code/branches/hud/src/orxonox/Radar.h	(revision 1613)
+++ code/branches/hud/src/orxonox/Radar.h	(revision 1614)
@@ -23,5 +23,5 @@
  *      Reto Grieder
  *   Co-authors:
- *      ...
+ *      Felix Schulthess
  *
  */
@@ -37,4 +37,5 @@
 #include "OrxonoxPrereqs.h"
 
+#include <map>
 #include <string>
 #include "core/Iterator.h"
@@ -45,16 +46,4 @@
 namespace orxonox
 {
-    class _OrxonoxExport RadarListener : virtual public OrxonoxClass
-    {
-    public:
-        RadarListener();
-        virtual ~RadarListener() { }
-
-        virtual void displayObject(RadarViewable* viewable, bool bIsMarked) = 0;
-        virtual void hideMarker() = 0;
-        virtual float getRadarSensitivity() = 0;
-        virtual void radarTick(float dt) = 0;
-    };
-
     /**
     @brief This class merely ensures that no one can inherit from Radar.
@@ -73,7 +62,8 @@
         ~Radar();
 
-        //void unregisterObject(RadarViewable* object);
         const RadarViewable* getFocus();
         RadarViewable::Shape addObjectDescription(const std::string name);
+
+        void listObjects() const;
 
         static Radar& getInstance();
Index: code/branches/hud/src/orxonox/RadarListener.cc
===================================================================
--- code/branches/hud/src/orxonox/RadarListener.cc	(revision 1614)
+++ code/branches/hud/src/orxonox/RadarListener.cc	(revision 1614)
@@ -0,0 +1,38 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Reto Grieder
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#include "OrxonoxStableHeaders.h"
+#include "RadarListener.h"
+
+namespace orxonox
+{
+    RadarListener::RadarListener()
+    {
+        RegisterRootObject(RadarListener);
+    }
+}
Index: code/branches/hud/src/orxonox/RadarListener.h
===================================================================
--- code/branches/hud/src/orxonox/RadarListener.h	(revision 1614)
+++ code/branches/hud/src/orxonox/RadarListener.h	(revision 1614)
@@ -0,0 +1,49 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Reto Grieder
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#ifndef _RadarListener_H__
+#define _RadarListener_H__
+
+#include "OrxonoxPrereqs.h"
+#include "core/OrxonoxClass.h"
+
+namespace orxonox
+{
+    class _OrxonoxExport RadarListener : virtual public OrxonoxClass
+    {
+    public:
+        RadarListener();
+        virtual ~RadarListener() { }
+
+        virtual void displayObject(RadarViewable* viewable, bool bIsMarked) = 0;
+        virtual float getRadarSensitivity() = 0;
+        virtual void radarTick(float dt) = 0;
+    };
+}
+
+#endif /* _RadarListener_H__ */
Index: code/branches/hud/src/orxonox/RadarViewable.cc
===================================================================
--- code/branches/hud/src/orxonox/RadarViewable.cc	(revision 1613)
+++ code/branches/hud/src/orxonox/RadarViewable.cc	(revision 1614)
@@ -57,14 +57,3 @@
         this->radarObjectDescription_ = str;
     }
-
-    /*void RadarViewable::unregisterFromRadar()
-    {
-        Radar* radar = Radar::getInstancePtr();
-        if (radar)
-            radar->unregisterObject(this);
-        else
-        {
-            CCOUT(2) << "Attempting to unregister an object to the radar, but the radar is non existent." << std::endl;
-        }
-    }*/
 }
Index: code/branches/hud/src/orxonox/RadarViewable.h
===================================================================
--- code/branches/hud/src/orxonox/RadarViewable.h	(revision 1613)
+++ code/branches/hud/src/orxonox/RadarViewable.h	(revision 1614)
@@ -52,5 +52,5 @@
     public:
         RadarViewable();
-        virtual ~RadarViewable() { }//unregisterFromRadar(); }
+        virtual ~RadarViewable() { }
 
         float getRadarObjectCamouflage() const { return this->radarObjectCamouflage_; }
@@ -72,5 +72,4 @@
     protected:
         WorldEntity* radarObject_;
-        //void unregisterFromRadar();
 
     private:
Index: code/branches/hud/src/orxonox/overlays/HUDText.cc
===================================================================
--- code/branches/hud/src/orxonox/overlays/HUDText.cc	(revision 1614)
+++ code/branches/hud/src/orxonox/overlays/HUDText.cc	(revision 1614)
@@ -0,0 +1,104 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Reto Grieder
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#include "OrxonoxStableHeaders.h"
+#include "HUDText.h"
+
+#include <OgreOverlayManager.h>
+#include <OgreTextAreaOverlayElement.h>
+#include <OgrePanelOverlayElement.h>
+
+#include "util/Convert.h"
+
+namespace orxonox
+{
+  CreateFactory(HUDText);
+
+  using namespace Ogre;
+
+  HUDText::HUDText()
+    : text_(0)
+  {
+    RegisterObject(HUDText);
+  }
+
+  HUDText::~HUDText()
+  {
+    if (this->isInitialized())
+    {
+      if (this->text_)
+          OverlayManager::getSingleton().destroyOverlayElement(this->text_);
+    }
+  }
+
+  void HUDText::XMLPort(Element& xmlElement, XMLPort::Mode mode)
+  {
+    OrxonoxOverlay::XMLPort(xmlElement, mode);
+
+    if (mode == XMLPort::LoadObject)
+    {
+      this->text_ = static_cast<TextAreaOverlayElement*>(Ogre::OverlayManager::getSingleton().createOverlayElement("TextArea", getName() + "_Text"));
+      this->text_->setCharHeight(1.0f);
+      this->text_->setFontName("Monofur");
+
+      this->background_->addChild(this->text_);
+    }
+
+    XMLPortParam(HUDText, "font", setFont, getFont, xmlElement, mode);
+    XMLPortParam(HUDText, "caption", setCaption, getCaption, xmlElement, mode);
+
+    if (mode == XMLPort::LoadObject)
+    {
+      this->text_->setCaption(this->caption_);
+    }
+  }
+
+  void HUDText::setCaption(const std::string& caption)
+  {
+    this->caption_ = caption;
+  }
+
+  const std::string& HUDText::getCaption() const
+  {
+    return this->caption_;
+  }
+
+  void HUDText::setFont(const std::string& font)
+  {
+    if (this->text_ && font != "")
+      this->text_->setFontName(font);
+  }
+
+  std::string HUDText::getFont() const
+  {
+    if (this->text_)
+      return this->text_->getFontName();
+    else
+      return "";
+  }
+}
Index: code/branches/hud/src/orxonox/overlays/HUDText.h
===================================================================
--- code/branches/hud/src/orxonox/overlays/HUDText.h	(revision 1614)
+++ code/branches/hud/src/orxonox/overlays/HUDText.h	(revision 1614)
@@ -0,0 +1,60 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Reto Grieder
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#ifndef _HUDText_H__
+#define _HUDText_H__
+
+#include "OrxonoxPrereqs.h"
+
+#include <string>
+#include <OgrePrerequisites.h>
+#include "overlays/OrxonoxOverlay.h"
+
+namespace orxonox
+{
+  class _OrxonoxExport HUDText : public OrxonoxOverlay
+  {
+  public:
+    HUDText();
+    virtual ~HUDText();
+
+    virtual void XMLPort(Element& xmlElement, XMLPort::Mode mode);
+
+  protected:
+    void setCaption(const std::string& caption);
+    const std::string& getCaption() const;
+    void setFont(const std::string& font);
+    std::string getFont() const;
+
+    Ogre::TextAreaOverlayElement* text_;
+
+  private:
+    std::string caption_;
+  };
+}
+#endif /* _HUDText_H__ */
Index: code/branches/hud/src/orxonox/overlays/OrxonoxOverlay.cc
===================================================================
--- code/branches/hud/src/orxonox/overlays/OrxonoxOverlay.cc	(revision 1613)
+++ code/branches/hud/src/orxonox/overlays/OrxonoxOverlay.cc	(revision 1614)
@@ -31,4 +31,5 @@
 
 #include <OgreOverlayManager.h>
+#include <OgrePanelOverlayElement.h>
 #include "util/Convert.h"
 #include "core/CoreIncludes.h"
@@ -41,4 +42,5 @@
   OrxonoxOverlay::OrxonoxOverlay()
     : overlay_(0)
+    , background_(0)
     , windowAspectRatio_(1.0f)
     , bCorrectAspect_(false)
@@ -50,4 +52,10 @@
   {
     RegisterObject(OrxonoxOverlay);
+  }
+
+  OrxonoxOverlay::~OrxonoxOverlay()
+  {
+    if (this->background_)
+      Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->background_);
   }
 
@@ -63,4 +71,9 @@
       this->windowResized(GraphicsEngine::getSingleton().getWindowWidth(),
             GraphicsEngine::getSingleton().getWindowHeight());
+
+      // create background
+      this->background_ = static_cast<Ogre::PanelOverlayElement*>(
+          Ogre::OverlayManager::getSingleton().createOverlayElement("Panel", getUniqueNumberStr() + "_Background"));
+      this->overlay_->add2D(this->background_);
     }
 
@@ -70,4 +83,5 @@
     XMLPortParam(OrxonoxOverlay, "origin", setOrigin, getOrigin, xmlElement, mode);
     XMLPortParam(OrxonoxOverlay, "position", setPosition, getPosition, xmlElement, mode);
+    XMLPortParam(OrxonoxOverlay, "background", setBackgroundMaterial, getBackgroundMaterial, xmlElement, mode);
 
     if (mode == XMLPort::LoadObject)
@@ -83,6 +97,16 @@
   }
 
-  OrxonoxOverlay::~OrxonoxOverlay()
+  void OrxonoxOverlay::setBackgroundMaterial(const std::string& material)
   {
+    if (this->background_ && material != "")
+      this->background_->setMaterialName(material);
+  }
+
+  std::string OrxonoxOverlay::getBackgroundMaterial() const
+  {
+    if (this->background_)
+      return this->background_->getMaterialName();
+    else
+      return "";
   }
 
Index: code/branches/hud/src/orxonox/overlays/OrxonoxOverlay.h
===================================================================
--- code/branches/hud/src/orxonox/overlays/OrxonoxOverlay.h	(revision 1613)
+++ code/branches/hud/src/orxonox/overlays/OrxonoxOverlay.h	(revision 1614)
@@ -39,76 +39,83 @@
 namespace orxonox
 {
-  class _OrxonoxExport OrxonoxOverlay : public BaseObject, public WindowEventListener
-  {
+    class _OrxonoxExport OrxonoxOverlay : public BaseObject, public WindowEventListener
+    {
     public:
-      Ogre::Overlay* getOverlay() { return this->overlay_; }
-      OrxonoxOverlay();
-      virtual ~OrxonoxOverlay();
+        Ogre::Overlay* getOverlay() { return this->overlay_; }
+        OrxonoxOverlay();
+        virtual ~OrxonoxOverlay();
 
-      virtual void XMLPort(Element& xmlElement, XMLPort::Mode mode);
+        virtual void XMLPort(Element& xmlElement, XMLPort::Mode mode);
 
-      void setAspectCorrection(bool val);
-      bool getAspectCorrection() { return this->bCorrectAspect_; }
+        void show() { this->setVisibility(true); }
+        void hide() { this->setVisibility(false); }
 
-      /** Sets the position of this overlay. */
-      void setPosition(Vector2 pos) { this->position_ = pos; this->positionChanged(); }
+        void setAspectCorrection(bool val);
+        bool getAspectCorrection() { return this->bCorrectAspect_; }
 
-      /** Gets the current position. */
-      Vector2 getPosition() const { return this->position_; }
+        /** Sets the position of this overlay. */
+        void setPosition(Vector2 pos) { this->position_ = pos; this->positionChanged(); }
 
-      /** Scrolls the overlay by the offsets provided. */
-      void scroll(Vector2 scroll) { this->position_ += scroll; this->positionChanged(); }
+        /** Gets the current position. */
+        Vector2 getPosition() const { return this->position_; }
 
-      /** Sets the origin point of this overlay. */
-      void setOrigin(Vector2 pos) { this->origin_ = pos; this->positionChanged(); }
+        /** Scrolls the overlay by the offsets provided. */
+        void scroll(Vector2 scroll) { this->position_ += scroll; this->positionChanged(); }
 
-      /** Gets the origin point of this overlay */
-      Vector2 getOrigin() const { return this->origin_; }
+        /** Sets the origin point of this overlay. */
+        void setOrigin(Vector2 pos) { this->origin_ = pos; this->positionChanged(); }
 
-      /** Sets the rotation applied to this overlay.*/
-      void setRotation(const Ogre::Radian& angle) { this->angle_ = angle; this->angleChanged(); }
+        /** Gets the origin point of this overlay */
+        Vector2 getOrigin() const { return this->origin_; }
 
-      /** Gets the rotation applied to this overlay, in degrees.*/
-      const Radian& getRotation() const { return this->angle_; }
+        /** Sets the rotation applied to this overlay.*/
+        void setRotation(const Ogre::Radian& angle) { this->angle_ = angle; this->angleChanged(); }
 
-      /** Adds the passed in angle to the rotation applied to this overlay. */
-      void rotate(const Radian& angle) { this->angle_ += angle; this->angleChanged(); }
+        /** Gets the rotation applied to this overlay, in degrees.*/
+        const Radian& getRotation() const { return this->angle_; }
 
-      /** Sets the size of this overlay. */
-      void setSize(const Vector2& size) { this->size_ = size; this->sizeChanged(); }
+        /** Adds the passed in angle to the rotation applied to this overlay. */
+        void rotate(const Radian& angle) { this->angle_ += angle; this->angleChanged(); }
 
-      /** Gets the current size (not corrected) */
-      Vector2 getUncorrectedSize() const { return this->size_; }
+        /** Sets the size of this overlay. */
+        void setSize(const Vector2& size) { this->size_ = size; this->sizeChanged(); }
 
-      /** Gets the current size (corrected) */
-      Vector2 getSize() const { return this->size_ * this->sizeCorrection_; }
+        /** Gets the current size (not corrected) */
+        Vector2 getUncorrectedSize() const { return this->size_; }
 
-      /** Gets the current size correction */
-      Vector2 getSizeCorrection() const { return this->sizeCorrection_; }
+        /** Gets the current size (corrected) */
+        Vector2 getSize() const { return this->size_ * this->sizeCorrection_; }
 
-      /** Scales the overlay */
-      void scale(Vector2 scale) { this->size_ *= scale; this->sizeChanged(); }
+        /** Gets the current size correction */
+        Vector2 getSizeCorrection() const { return this->sizeCorrection_; }
+
+        /** Scales the overlay */
+        void scale(Vector2 scale) { this->size_ *= scale; this->sizeChanged(); }
 
     protected:
-      virtual void changedVisibility();
-      virtual void sizeChanged();
-      virtual void angleChanged();
-      virtual void positionChanged();
-      float getWindowAspectRatio() { return windowAspectRatio_; } 
+        virtual void changedVisibility();
+        virtual void sizeChanged();
+        virtual void angleChanged();
+        virtual void positionChanged();
+        float getWindowAspectRatio() { return windowAspectRatio_; }
 
-      Ogre::Overlay* overlay_;
+        void setBackgroundMaterial(const std::string& material);
+        std::string getBackgroundMaterial() const;
+
+        Ogre::Overlay* overlay_;
+        Ogre::PanelOverlayElement* background_;
 
     private:
-      void windowResized(int newWidth, int newHeight);
+        void windowResized(int newWidth, int newHeight);
 
-      float windowAspectRatio_;
-      bool bCorrectAspect_;
-      Vector2 size_;
-      Vector2 sizeCorrection_;
-      Radian angle_;
-      Vector2 position_;
-      Vector2 origin_;
+        float windowAspectRatio_;
+        bool bCorrectAspect_;
+        Vector2 size_;
+        Vector2 sizeCorrection_;
+        Radian angle_;
+        Vector2 position_;
+        Vector2 origin_;
 
-      static unsigned int hudOverlayCounter_s;
+        static unsigned int hudOverlayCounter_s;
   };
 }
Index: code/branches/hud/src/orxonox/overlays/OverlayGroup.cc
===================================================================
--- code/branches/hud/src/orxonox/overlays/OverlayGroup.cc	(revision 1613)
+++ code/branches/hud/src/orxonox/overlays/OverlayGroup.cc	(revision 1614)
@@ -41,6 +41,5 @@
 
   SetConsoleCommand(OverlayGroup, toggleVisibility, false).setAccessLevel(AccessLevel::User);
-
-  OverlayGroup* OverlayGroup::hudInstance_s = 0;
+  SetConsoleCommand(OverlayGroup, scaleGroup, false).setAccessLevel(AccessLevel::User);
 
   using namespace Ogre;
@@ -50,18 +49,8 @@
   {
     RegisterObject(OverlayGroup);
-
-    // Singleton like in Ogre. Constructor and destructor are public,
-    // but the assert prevents from having multiple instances.
-    assert(hudInstance_s == 0);
-    hudInstance_s = this;
   }
 
   OverlayGroup::~OverlayGroup()
   {
-    if (this->isInitialized())
-    {
-    }
-
-    hudInstance_s = 0;
   }
 
@@ -104,17 +93,21 @@
   }
 
-  /*static*/ OverlayGroup& OverlayGroup::getHUD()
-  {
-    assert(hudInstance_s);
-    return *hudInstance_s;
-  }
 
   /*static*/ void OverlayGroup::toggleVisibility(const std::string& name)
   {
-    if (OverlayGroup::getHUD().hudElements_.find(name) != OverlayGroup::getHUD().hudElements_.end())
+    for (Iterator<OverlayGroup> it = ObjectList<OverlayGroup>::begin(); it; ++it)
     {
-      OverlayGroup::getHUD().hudElements_[name]->setVisibility(!OverlayGroup::getHUD().hudElements_[name]->isVisible());
+        if ((*it)->getName() == name)
+            (*it)->setVisibility(!((*it)->isVisible()));
     }
   }
 
+  /*static*/ void OverlayGroup::scaleGroup(const std::string& name, float scale)
+  {
+    for (Iterator<OverlayGroup> it = ObjectList<OverlayGroup>::begin(); it; ++it)
+    {
+        if ((*it)->getName() == name)
+            (*it)->scale(Vector2(scale, scale));
+    }
+  }
 }
Index: code/branches/hud/src/orxonox/overlays/OverlayGroup.h
===================================================================
--- code/branches/hud/src/orxonox/overlays/OverlayGroup.h	(revision 1613)
+++ code/branches/hud/src/orxonox/overlays/OverlayGroup.h	(revision 1614)
@@ -54,5 +54,5 @@
 
         static void toggleVisibility(const std::string& name);
-        static OverlayGroup& getHUD();
+        static void scaleGroup(const std::string& name, float scale);
 
       private:
@@ -64,6 +64,4 @@
         std::map<std::string, OrxonoxOverlay*> hudElements_;
         Vector2 scale_;
-
-        static OverlayGroup* hudInstance_s;
     };
 }
Index: code/branches/hud/src/orxonox/overlays/hud/HUDBar.cc
===================================================================
--- code/branches/hud/src/orxonox/overlays/hud/HUDBar.cc	(revision 1613)
+++ code/branches/hud/src/orxonox/overlays/hud/HUDBar.cc	(revision 1614)
@@ -35,4 +35,5 @@
 #include <OgreMaterialManager.h>
 #include <OgreTechnique.h>
+#include <OgrePanelOverlayElement.h>
 
 #include "util/Convert.h"
@@ -45,19 +46,8 @@
 
     HUDBar::HUDBar()
+        : bar_(0)
+        , textureUnitState_(0)
     {
         RegisterObject(HUDBar);
-
-        this->bar_ = 0;
-        this->background_ = 0;
-        this->textureUnitState_ = 0;
-
-        barWidth_s = 0.88f;
-        barHeight_s = 1.0f;
-        barOffsetLeft_s = 0.06f;
-        barOffsetTop_s = 0.0f;
-
-        this->value_ = -1;
-        this->autoColour_ = true;
-        this->right2Left_ = false; // default is left to right progress
     }
 
@@ -68,4 +58,5 @@
             if (this->bar_)
                 OverlayManager::getSingleton().destroyOverlayElement(this->bar_);
+            // FIXME: Check whether we have to delete the textureUnitState_;
         }
     }
@@ -77,10 +68,4 @@
         if (mode == XMLPort::LoadObject)
         {
-            // create background
-            this->background_ = static_cast<PanelOverlayElement*>(
-                    OverlayManager::getSingleton().createOverlayElement("Panel", getName() + "_Background_" + getUniqueNumberStr()));
-            this->background_->setMaterialName("Orxonox/BarBackground");
-            this->overlay_->add2D(this->background_);
-
             // create new material
             std::string materialname = "barmaterial" + getConvertedValue<unsigned int, std::string>(materialcount_s++);
@@ -93,17 +78,22 @@
 
             // create bar
+            barWidth_s = 0.88f;
+            barHeight_s = 1.0f;
+            barOffsetLeft_s = 0.06f;
+            barOffsetTop_s = 0.0f;
             this->bar_ = static_cast<PanelOverlayElement*>(OverlayManager::getSingleton().createOverlayElement("Panel", getName() + "Bar" + getUniqueNumberStr()));
             this->bar_->setMaterialName(materialname);
             this->background_->addChild(bar_);
-        }
 
-        XMLPortParamLoadOnly(HUDBar, "value", setValue, xmlElement, mode);
+            this->setValue(0);
+            this->autoColour_ = true;
+            this->right2Left_ = false; // default is left to right progress
 
-        if (mode == XMLPort::LoadObject)
-        {
             this->addColour(0.7, ColourValue(0.2, 0.7, 0.2));
             this->addColour(0.4, ColourValue(0.7, 0.5, 0.2));
             this->addColour(0.1, ColourValue(0.7, 0.2, 0.2));
         }
+
+        XMLPortParamLoadOnly(HUDBar, "value", setValue, xmlElement, mode);
     }
 
Index: code/branches/hud/src/orxonox/overlays/hud/HUDBar.h
===================================================================
--- code/branches/hud/src/orxonox/overlays/hud/HUDBar.h	(revision 1613)
+++ code/branches/hud/src/orxonox/overlays/hud/HUDBar.h	(revision 1614)
@@ -34,7 +34,6 @@
 #include "OrxonoxPrereqs.h"
 
+#include <map>
 #include <OgrePrerequisites.h>
-#include <OgrePanelOverlayElement.h>
-
 #include "util/Math.h"
 #include "overlays/OrxonoxOverlay.h"
@@ -67,5 +66,4 @@
       float value_;                       // progress of bar
       Ogre::PanelOverlayElement* bar_;
-      Ogre::PanelOverlayElement* background_;
       Ogre::TextureUnitState* textureUnitState_;
       std::map<float, ColourValue> colours_;
Index: code/branches/hud/src/orxonox/overlays/hud/HUDFPSText.cc
===================================================================
--- code/branches/hud/src/orxonox/overlays/hud/HUDFPSText.cc	(revision 1613)
+++ code/branches/hud/src/orxonox/overlays/hud/HUDFPSText.cc	(revision 1614)
@@ -29,4 +29,5 @@
 #include "OrxonoxStableHeaders.h"
 #include "HUDFPSText.h"
+#include <OgreTextAreaOverlayElement.h>
 #include "GraphicsEngine.h"
 #include "util/Convert.h"
Index: code/branches/hud/src/orxonox/overlays/hud/HUDNavigation.cc
===================================================================
--- code/branches/hud/src/orxonox/overlays/hud/HUDNavigation.cc	(revision 1613)
+++ code/branches/hud/src/orxonox/overlays/hud/HUDNavigation.cc	(revision 1614)
@@ -31,15 +31,12 @@
 
 #include <OgreOverlayManager.h>
-#include <OgreStringConverter.h>
-
-//#include "GraphicsEngine.h"
-// TODO: remove the SpaceShip and CameraHandler dependencies
-#include "core/Debug.h"
-#include "core/CoreIncludes.h"
+#include <OgreTextAreaOverlayElement.h>
+#include <OgrePanelOverlayElement.h>
+
+#include "util/Math.h"
 #include "core/ConsoleCommand.h"
 #include "objects/SpaceShip.h"
 #include "objects/Projectile.h"
 #include "objects/CameraHandler.h"
-#include "overlays/OverlayGroup.h"
 #include "Radar.h"
 
@@ -68,6 +65,4 @@
         if (this->isInitialized())
         {
-            if (this->container_)
-                OverlayManager::getSingleton().destroyOverlayElement(this->container_);
             if (this->navMarker_)
                 OverlayManager::getSingleton().destroyOverlayElement(this->navMarker_);
@@ -76,4 +71,6 @@
             if (this->aimMarker_)
                 OverlayManager::getSingleton().destroyOverlayElement(this->aimMarker_);
+            if (this->container_)
+                OverlayManager::getSingleton().destroyOverlayElement(this->container_);
         }
 
@@ -87,5 +84,5 @@
         if (mode == XMLPort::LoadObject)
         {
-            // create container
+            // create container because we cannot add a Text element to an Overlay
             container_ = static_cast<OverlayContainer*>(Ogre::OverlayManager::getSingleton().createOverlayElement("Panel", getName() + "_navContainer"));
 
Index: code/branches/hud/src/orxonox/overlays/hud/HUDNavigation.h
===================================================================
--- code/branches/hud/src/orxonox/overlays/hud/HUDNavigation.h	(revision 1613)
+++ code/branches/hud/src/orxonox/overlays/hud/HUDNavigation.h	(revision 1614)
@@ -33,8 +33,5 @@
 
 #include <OgrePrerequisites.h>
-#include <OgreTextAreaOverlayElement.h>
-#include <OgrePanelOverlayElement.h>
 #include "overlays/OrxonoxOverlay.h"
-#include "util/Math.h"
 
 namespace orxonox
@@ -50,14 +47,5 @@
         void tick(float dt);
 
-        //void cycleFocus();
         float getDist2Focus() const;
-
-        /*inline RadarObject* getFocus() const
-            { return this->focus_; }
-        void releaseFocus();*/
-
-        /*static void cycleNavigationFocus();
-        static void releaseNavigationFocus();
-        static HUDNavigation& getInstance();*/
 
       protected:
@@ -88,6 +76,4 @@
         Ogre::TextAreaOverlayElement* navText_;     //!< Text overlay to display the target distance
         bool wasOutOfView_;                         //!< Performance booster variable: setMaterial is not cheap
-
-        //static HUDNavigation* instance_s;
   };
 }
Index: code/branches/hud/src/orxonox/overlays/hud/HUDRTRText.cc
===================================================================
--- code/branches/hud/src/orxonox/overlays/hud/HUDRTRText.cc	(revision 1613)
+++ code/branches/hud/src/orxonox/overlays/hud/HUDRTRText.cc	(revision 1614)
@@ -29,4 +29,5 @@
 #include "OrxonoxStableHeaders.h"
 #include "HUDRTRText.h"
+#include <OgreTextAreaOverlayElement.h>
 #include "GraphicsEngine.h"
 #include "util/Convert.h"
Index: code/branches/hud/src/orxonox/overlays/hud/HUDRadar.cc
===================================================================
--- code/branches/hud/src/orxonox/overlays/hud/HUDRadar.cc	(revision 1613)
+++ code/branches/hud/src/orxonox/overlays/hud/HUDRadar.cc	(revision 1614)
@@ -22,6 +22,7 @@
  *   Author:
  *      Yuning Chai
+ *      Felix Schulthess
  *   Co-authors:
- *      Felix Schulthess
+ *      Reto Grieder
  *
  */
@@ -30,25 +31,22 @@
 #include "HUDRadar.h"
 
-#include <assert.h>
 #include <OgreOverlayManager.h>
-#include <OgreMaterialManager.h>
+#include <OgrePanelOverlayElement.h>
 
+#include "util/Math.h"
 #include "core/ConsoleCommand.h"
 #include "objects/SpaceShip.h"
 #include "objects/WorldEntity.h"
 #include "tools/TextureGenerator.h"
-#include "RadarViewable.h"
+#include "Radar.h"
 
 namespace orxonox
 {
     CreateFactory(HUDRadar);
-    CreateFactory(RadarShape);
 
     using namespace Ogre;
 
     HUDRadar::HUDRadar()
-      : background_(0)
-      , marker_(0)
-      , sensitivity_(1.0f)
+        : marker_(0)
     {
         RegisterObject(HUDRadar);
@@ -59,11 +57,11 @@
         if (this->isInitialized())
         {
-            /*if (this->background_)
-                OverlayManager::getSingleton().destroyOverlayElement(this->background_);
-            while (this->radarDots_.size() > 0)
+            if (this->marker_)
+                OverlayManager::getSingleton().destroyOverlayElement(this->marker_);
+            for (std::vector<Ogre::PanelOverlayElement*>::iterator it = this->radarDots_.begin();
+                it != this->radarDots_.end(); ++it)
             {
-                OverlayManager::getSingleton().destroyOverlayElement(this->radarDots_[this->radarDots_.size() - 1]);
-                this->radarDots_.pop_back();
-            }*/
+                OverlayManager::getSingleton().destroyOverlayElement(*it);
+            }
         }
     }
@@ -90,8 +88,4 @@
         if (mode == XMLPort::LoadObject)
         {
-            background_ = (Ogre::PanelOverlayElement*)Ogre::OverlayManager::getSingleton().createOverlayElement("Panel", getName() + "_Background");
-            background_->setMaterialName("Orxonox/Radar");
-            overlay_->add2D(background_);
-
             marker_ = (Ogre::PanelOverlayElement*)Ogre::OverlayManager::getSingleton().createOverlayElement("Panel", getName() + "_Marker");
             marker_->setMaterialName("Orxonox/RadarMarker");
@@ -100,22 +94,4 @@
         }
     }
-
-    /*void HUDRadar::addShape(RadarShape* shape)
-    {
-        this->shapes_[shape->getIndex()] = shape;
-    }
-
-    RadarShape* HUDRadar::getShape(unsigned int index) const
-    {
-        if (index < this->shapes_.size())
-        {
-            std::map<unsigned int, RadarShape*>::const_iterator it = shapes_.begin();
-            for (unsigned int i = 0; i != index; ++it, ++i)
-                ;
-            return (*it).second;
-        }
-        else
-            return 0;
-    }*/
 
     void HUDRadar::displayObject(RadarViewable* object, bool bIsMarked)
@@ -131,35 +107,28 @@
         }
 
-        /*static int counter = 0;
-        if (++counter < 1120 && counter > 120)
-        {
-            // we have to create a new entry
-            Ogre::PanelOverlayElement* panel = static_cast<Ogre::PanelOverlayElement*>(
-                Ogre::OverlayManager::getSingleton().createOverlayElement("Panel", "RadarDot" + getUniqueNumberStr()));
-            // get right material
-            panel->setMaterialName("Orxonox/RadarSquare");
-            panel->setDimensions(0.03, 0.03);
-            panel->setPosition((1.0 + (rand() & 0xFF) / 256.0 - 0.001) * 0.5, (1.0 - (rand() & 0xFF) / 256.0 - 0.001) * 0.5);
-            panel->show();
-            this->overlay_->add2D(panel);
-            this->overlay_->show();
-        }*/
-
         // try to find a panel already created
         Ogre::PanelOverlayElement* panel;
-        std::map<RadarViewable*, Ogre::PanelOverlayElement*>::iterator it = this->radarDots_.find(object);
-        if (it == this->radarDots_.end())
+        //std::map<RadarViewable*, Ogre::PanelOverlayElement*>::iterator it = this->radarDots_.find(object);
+        if (itRadarDots_ == this->radarDots_.end())
         {
             // we have to create a new entry
             panel = static_cast<Ogre::PanelOverlayElement*>(
                 Ogre::OverlayManager::getSingleton().createOverlayElement("Panel", "RadarDot" + getUniqueNumberStr()));
-            radarDots_[object] = panel;
+            radarDots_.push_back(panel);
             // get right material
             panel->setMaterialName(TextureGenerator::getMaterialName(
                 shapeMaterials_[object->getRadarObjectType()], object->getRadarObjectColour()));
             this->overlay_->add2D(panel);
+            this->itRadarDots_ = this->radarDots_.end();
         }
         else
-            panel = (*it).second;
+        {
+            panel = *itRadarDots_;
+            ++itRadarDots_;
+            std::string materialName = TextureGenerator::getMaterialName(
+                shapeMaterials_[object->getRadarObjectType()], object->getRadarObjectColour());
+            if (materialName != panel->getMaterialName())
+                panel->setMaterialName(materialName);
+        }
 
         // set size to fit distance...
@@ -177,6 +146,6 @@
         {
             this->marker_->show();
-            this->marker_->setDimensions(size * 1.2, size * 1.2);
-            this->marker_->setPosition((1.0 + coord.x - size * 1.2) * 0.5, (1.0 - coord.y - size * 1.2) * 0.5);
+            this->marker_->setDimensions(size * 1.5, size * 1.5);
+            this->marker_->setPosition((1.0 + coord.x - size * 1.5) * 0.5, (1.0 - coord.y - size * 1.5) * 0.5);
         }
     }
@@ -184,27 +153,6 @@
     void HUDRadar::radarTick(float dt)
     {
+        this->itRadarDots_ = this->radarDots_.begin();
+        this->marker_->hide();
     }
-
-    /*void HUDRadar::tick(float dt)
-    {
-        // iterate through all RadarObjects
-        unsigned int i = 0;
-        for (Iterator<RadarViewable> it = ObjectList<RadarViewable>::start(); it; ++it, ++i)
-        {
-            if ((*it)->isVisibleOnRadar())
-            {
-            }
-        }
-    }*/
-
-    /*void HUDRadar::listObjects()
-    {
-        COUT(3) << "List of RadarObjects:\n";
-        // iterate through all Radar Objects
-        unsigned int i = 0;
-        for (Iterator<RadarViewable> it = ObjectList<RadarViewable>::start(); it; ++it, ++i)
-        {
-            COUT(3) << i++ << ": " << (*it)->getWorldEntity()->getWorldPosition() << std::endl;
-        }
-    }*/
 }
Index: code/branches/hud/src/orxonox/overlays/hud/HUDRadar.h
===================================================================
--- code/branches/hud/src/orxonox/overlays/hud/HUDRadar.h	(revision 1613)
+++ code/branches/hud/src/orxonox/overlays/hud/HUDRadar.h	(revision 1614)
@@ -22,6 +22,7 @@
  *   Author:
  *      Yuning Chai
+ *      Felix Schulthess
  *   Co-authors:
- *      Felix Schulthess
+ *      Reto Grieder
  *
  */
@@ -32,65 +33,14 @@
 #include "OrxonoxPrereqs.h"
 
+#include <vector>
+#include <map>
 #include <OgrePrerequisites.h>
-#include <OgrePanelOverlayElement.h>
 #include "overlays/OrxonoxOverlay.h"
-#include "objects/Tickable.h"
-#include "core/BaseObject.h"
-#include "util/Math.h"
-#include "core/Debug.h"
-#include "Radar.h"
+#include "RadarListener.h"
+#include "RadarViewable.h"
 
 namespace orxonox
 {
-    template <class T, int Dummy>
-    class _OrxonoxExport RadarAttribute : public BaseObject
-    {
-      public:
-        RadarAttribute();
-        ~RadarAttribute() { }
-
-        void XMLPort(Element& xmlElement, XMLPort::Mode mode);
-        void loadAttribute(Element& xmlElement, XMLPort::Mode mode);
-
-        void setAttribute(const T& attribute) { this->attribute_ = attribute; }
-        const T& getAttribute() const { return this->attribute_; }
-
-        void setIndex(unsigned int index); 
-        unsigned int getIndex() { return this->index_; }
-
-      private:
-        unsigned int index_;
-        T attribute_;
-    };
-
-    template <class T, int Dummy>
-    void RadarAttribute<T, Dummy>::setIndex(unsigned int index)
-    {
-        if (index > 0xFF)
-        {
-            COUT(1) << "Shape index was larger than 255 while parsing a RadarAttribute. "
-              << "Using random number!!!" << std::endl;
-            this->index_ = rand() & 0xFF;
-        }
-        else
-            this->index_ = index;
-    }
-
-    typedef RadarAttribute<std::string, 1> RadarShape;
-
-    template <>
-    RadarShape::RadarAttribute() : index_(0)
-        { RegisterObject(RadarShape); }
-
-    template <>
-    void RadarShape::XMLPort(Element& xmlElement, XMLPort::Mode mode)
-    {
-        BaseObject::XMLPort(xmlElement, mode);
-        XMLPortParam(RadarShape, "shape", setAttribute, getAttribute, xmlElement, mode);
-        XMLPortParam(RadarShape, "index", setIndex, getIndex, xmlElement, mode);
-    }
-
-
-    class _OrxonoxExport HUDRadar : public OrxonoxOverlay, public RadarListener//, public Tickable
+    class _OrxonoxExport HUDRadar : public OrxonoxOverlay, public RadarListener
     {
       public:
@@ -99,7 +49,4 @@
 
         void XMLPort(Element& xmlElement, XMLPort::Mode mode);
-
-        /*void addShape(RadarShape* shape);
-        RadarShape* getShape(unsigned int index) const;*/
 
         float getRadarSensitivity() const { return this->sensitivity_; }
@@ -112,11 +59,6 @@
         void setMaximumDotSize(float size) { this->maximumDotSize_ = size; }
 
-        //void tick(float dt);
-
-        //void listObjects();
-
       private:
         void displayObject(RadarViewable* viewable, bool bIsMarked);
-        void hideMarker() { this->marker_->hide(); }
         float getRadarSensitivity() { return 1.0f; }
         void radarTick(float dt);
@@ -124,6 +66,6 @@
         std::map<RadarViewable::Shape, std::string> shapeMaterials_;
 
-        Ogre::PanelOverlayElement* background_;
-        std::map<RadarViewable*, Ogre::PanelOverlayElement*> radarDots_;
+        std::vector<Ogre::PanelOverlayElement*> radarDots_;
+        std::vector<Ogre::PanelOverlayElement*>::iterator itRadarDots_;
         Ogre::PanelOverlayElement* marker_;
 
Index: code/branches/hud/src/orxonox/overlays/hud/HUDSpeedBar.cc
===================================================================
--- code/branches/hud/src/orxonox/overlays/hud/HUDSpeedBar.cc	(revision 1613)
+++ code/branches/hud/src/orxonox/overlays/hud/HUDSpeedBar.cc	(revision 1614)
@@ -21,4 +21,5 @@
  *
  *   Author:
+ *      Felix Schulthess
  *      Reto Grieder
  *   Co-authors:
Index: code/branches/hud/src/orxonox/overlays/hud/HUDSpeedBar.h
===================================================================
--- code/branches/hud/src/orxonox/overlays/hud/HUDSpeedBar.h	(revision 1613)
+++ code/branches/hud/src/orxonox/overlays/hud/HUDSpeedBar.h	(revision 1614)
@@ -21,4 +21,5 @@
  *
  *   Author:
+ *      Felix Schulthess
  *      Reto Grieder
  *   Co-authors:
Index: code/branches/hud/src/orxonox/overlays/hud/HUDText.cc
===================================================================
--- code/branches/hud/src/orxonox/overlays/hud/HUDText.cc	(revision 1613)
+++ 	(revision )
@@ -1,125 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-#include "OrxonoxStableHeaders.h"
-#include "HUDText.h"
-
-#include <OgreOverlayManager.h>
-
-#include "util/Convert.h"
-
-namespace orxonox
-{
-  CreateFactory(HUDText);
-
-  using namespace Ogre;
-
-  HUDText::HUDText()
-    : background_(0)
-    , text_(0)
-  {
-    RegisterObject(HUDText);
-  }
-
-  HUDText::~HUDText()
-  {
-    if (this->isInitialized())
-    {
-      if (this->text_)
-          OverlayManager::getSingleton().destroyOverlayElement(this->text_);
-      if (this->background_)
-          OverlayManager::getSingleton().destroyOverlayElement(this->background_);
-    }
-  }
-
-  void HUDText::XMLPort(Element& xmlElement, XMLPort::Mode mode)
-  {
-    OrxonoxOverlay::XMLPort(xmlElement, mode);
-
-    if (mode == XMLPort::LoadObject)
-    {
-      // create background
-      this->background_ = static_cast<PanelOverlayElement*>(
-              OverlayManager::getSingleton().createOverlayElement("Panel", getName() + "_Background"));
-
-      this->text_ = static_cast<TextAreaOverlayElement*>(Ogre::OverlayManager::getSingleton().createOverlayElement("TextArea", getName() + "_Text"));
-      this->text_->setCharHeight(1.0f);
-      this->text_->setFontName("Monofur");
-
-      this->overlay_->add2D(this->background_);
-      this->background_->addChild(this->text_);
-    }
-
-    XMLPortParam(HUDText, "material", setBackgroundMaterial, getBackgroundMaterial, xmlElement, mode);
-    XMLPortParam(HUDText, "font", setFont, getFont, xmlElement, mode);
-    XMLPortParam(HUDText, "caption", setCaption, getCaption, xmlElement, mode);
-
-    if (mode == XMLPort::LoadObject)
-    {
-      this->text_->setCaption(this->caption_);
-    }
-  }
-
-  void HUDText::setBackgroundMaterial(const std::string& material)
-  {
-    if (this->background_ && material != "")
-      this->background_->setMaterialName(material);
-  }
-
-  std::string HUDText::getBackgroundMaterial() const
-  {
-    if (this->background_)
-      return this->background_->getMaterialName();
-    else
-      return "";
-  }
-
-  void HUDText::setCaption(const std::string& caption)
-  {
-    this->caption_ = caption;
-  }
-
-  const std::string& HUDText::getCaption() const
-  {
-    return this->caption_;
-  }
-
-  void HUDText::setFont(const std::string& font)
-  {
-    if (this->text_ && font != "")
-      this->text_->setFontName(font);
-  }
-
-  std::string HUDText::getFont() const
-  {
-    if (this->text_)
-      return this->text_->getFontName();
-    else
-      return "";
-  }
-}
Index: code/branches/hud/src/orxonox/overlays/hud/HUDText.h
===================================================================
--- code/branches/hud/src/orxonox/overlays/hud/HUDText.h	(revision 1613)
+++ 	(revision )
@@ -1,65 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _HUDText_H__
-#define _HUDText_H__
-
-#include "OrxonoxPrereqs.h"
-
-#include <OgrePrerequisites.h>
-#include <OgreTextAreaOverlayElement.h>
-#include <OgrePanelOverlayElement.h>
-
-#include "util/Math.h"
-#include "overlays/OrxonoxOverlay.h"
-
-namespace orxonox
-{
-  class _OrxonoxExport HUDText : public OrxonoxOverlay
-  {
-  public:
-    HUDText();
-    virtual ~HUDText();
-
-    virtual void XMLPort(Element& xmlElement, XMLPort::Mode mode);
-
-  protected:
-    void setBackgroundMaterial(const std::string& material);
-    std::string getBackgroundMaterial() const;
-    void setCaption(const std::string& caption);
-    const std::string& getCaption() const;
-    void setFont(const std::string& font);
-    std::string getFont() const;
-
-    Ogre::TextAreaOverlayElement* text_;
-  private:
-    std::string caption_;
-    Ogre::PanelOverlayElement* background_;
-  };
-}
-#endif /* _HUDText_H__ */
Index: code/branches/hud/src/orxonox/overlays/hud/RadarObject.cc
===================================================================
--- code/branches/hud/src/orxonox/overlays/hud/RadarObject.cc	(revision 1613)
+++ 	(revision )
@@ -1,119 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Felix Schulthess
- *   Co-authors:
- *      Fabian 'x3n' Landau
- *
- */
-
-#include "OrxonoxStableHeaders.h"
-#include "RadarObject.h"
-
-#include <OgreOverlayManager.h>
-#include <OgreMaterialManager.h>
-#include <OgreTechnique.h>
-
-#include "GraphicsEngine.h"
-#include "objects/WorldEntity.h"
-#include "util/Convert.h"
-
-namespace std
-{
-    template <>
-    bool less<orxonox::ColourValue>::operator()(const orxonox::ColourValue& __x, const orxonox::ColourValue& __y) const
-    {
-        if (__x.r == __y.r)
-        {
-            if (__x.g == __y.g)
-            {
-                if (__x.b == __y.b)
-                {
-                    return __x.a < __y.a;
-                }
-                return __x.b < __y.b;
-            }
-            return __x.g < __y.g;
-        }
-        return __x.r < __y.r;
-    }
-}
-
-namespace orxonox
-{
-    unsigned int RadarObject::count_s = 0;
-    unsigned int RadarObject::materialcount_s = 0;
-    std::map<std::string, std::map<ColourValue, std::string> > RadarObject::materials_s;
-
-    RadarObject::RadarObject(Ogre::Overlay* container, WorldEntity* object, const ColourValue& colour, const std::string& texturename)
-    {
-        this->colour_ = colour;
-        this->texturename_ = texturename;
-
-        this->object_ = object;
-
-        this->panel_ = static_cast<Ogre::PanelOverlayElement*>(Ogre::OverlayManager::getSingleton().createOverlayElement("Panel", "RadarObject" + getConvertedValue<unsigned int, std::string>(RadarObject::count_s++)));
-        this->setMaterial(colour, texturename);
-        this->panel_->setDimensions(0.01, 0.01);
-        container->add2D(panel_);
-    }
-
-    RadarObject::~RadarObject()
-    {
-        Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->panel_);
-    }
-
-    void RadarObject::setMaterial(const ColourValue& colour, const std::string& texturename)
-    {
-        std::map<ColourValue, std::string>& colourmap = this->materials_s[texturename];
-        std::map<ColourValue, std::string>::const_iterator it = colourmap.find(colour);
-        std::string materialname;
-
-        if (it == colourmap.end())
-        {
-            materialname = "radarmaterial" + getConvertedValue<unsigned int, std::string>(RadarObject::materialcount_s++);
-            Ogre::MaterialPtr material = (Ogre::MaterialPtr)Ogre::MaterialManager::getSingleton().create(materialname, "General");
-            material->getTechnique(0)->getPass(0)->setSceneBlending(Ogre::SBT_TRANSPARENT_ALPHA);
-            Ogre::TextureUnitState* textureunitstate = material->getTechnique(0)->getPass(0)->createTextureUnitState();
-            textureunitstate->setTextureName(texturename);
-            textureunitstate->setColourOperationEx(Ogre::LBX_MODULATE, Ogre::LBS_MANUAL, Ogre::LBS_CURRENT, colour);
-            colourmap[colour] = materialname;
-        }
-        else
-        {
-            materialname = (*it).second;
-        }
-
-        this->panel_->setMaterialName(materialname);
-    }
-
-    const Vector3& RadarObject::getPosition() const
-    {
-        return this->object_->getPosition();
-    }
-
-    Vector3 RadarObject::getOrientedVelocity() const
-    {
-        return this->object_->getOrientation() * this->object_->getVelocity();
-    }
-}
-
Index: code/branches/hud/src/orxonox/overlays/hud/RadarObject.h
===================================================================
--- code/branches/hud/src/orxonox/overlays/hud/RadarObject.h	(revision 1613)
+++ 	(revision )
@@ -1,76 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Felix Schulthess
- *   Co-authors:
- *      Fabian 'x3n' Landau
- *
- */
-
-#ifndef _RadarObject_H__
-#define _RadarObject_H__
-
-#include "OrxonoxPrereqs.h"
-
-#include <map>
-#include <OgrePanelOverlayElement.h>
-
-#include "util/Math.h"
-
-namespace orxonox
-{
-    class _OrxonoxExport RadarObject
-    {
-      public:
-        RadarObject(Ogre::Overlay* container, WorldEntity* object, const ColourValue& colour = ColourValue(0.5, 0.5, 0.5, 1), const std::string& texturename = "white.tga");
-        ~RadarObject();
-
-        void setMaterial(const ColourValue& colour, const std::string& texturename);
-        inline void setColour(const ColourValue& colour)
-            { this->setMaterial(colour, this->texturename_); }
-        inline void setTexture(const std::string& texturename)
-            { this->setMaterial(this->colour_, texturename); }
-        inline void resetMaterial()
-            { this->setMaterial(this->colour_, this->texturename_); }
-
-        const Vector3& getPosition() const;
-        Vector3 getOrientedVelocity() const;
-
-        inline WorldEntity* getObject() const
-            { return this->object_; }
-        inline Ogre::PanelOverlayElement* getPanel() const
-            { return this->panel_; }
-
-      private:
-        static std::map<std::string, std::map<ColourValue, std::string> > materials_s;
-        static unsigned int count_s;
-        static unsigned int materialcount_s;
-
-        WorldEntity* object_;					// the object
-        ColourValue colour_;
-        std::string texturename_;
-
-        Ogre::PanelOverlayElement* panel_;		// the panel used to show the dot
-    };
-}
-
-#endif /* _RadarObject_H__ */
Index: code/branches/hud/src/orxonox/tools/TextureGenerator.cc
===================================================================
--- code/branches/hud/src/orxonox/tools/TextureGenerator.cc	(revision 1613)
+++ code/branches/hud/src/orxonox/tools/TextureGenerator.cc	(revision 1614)
@@ -23,5 +23,5 @@
  *      Fabian 'x3n' Landau
  *   Co-authors:
- *      Reto Grieder
+ *      ...
  *
  */
@@ -29,5 +29,5 @@
 /**
     @file
-    @brief Implementation of the Settings class.
+    @brief Implementation of the TextureGenerator.
 */
 
