Index: code/branches/presentation/data/overlays/HUDTemplates3.oxo
===================================================================
--- code/branches/presentation/data/overlays/HUDTemplates3.oxo	(revision 8668)
+++ code/branches/presentation/data/overlays/HUDTemplates3.oxo	(revision 8673)
@@ -35,5 +35,5 @@
      background        = "Orxonox/HealthBarBackground"
      size              = "0.35, 0.0875"
-     position          = "0.0 , 0.95 "
+     position          = "0.0 , 0.9 "
      pickpoint         = "0, 1"
      bartexture        = "healthbar_bar.png"
@@ -56,5 +56,5 @@
      background    = "Orxonox/BarBackground"
      size          = "0.35, 0.05"
-     position      = "0.0 , 1.0 "
+     position      = "0.0 , 0.95 "
      pickpoint     = "0, 1"
      correctaspect = false
@@ -64,4 +64,17 @@
       <BarColour position = 1.0 colour = "0.7,0.2,0.2" />
     </HUDSpeedBar>
+
+    <HUDBoostBar
+     name          = "BoostBar1"
+     backgroundtex = "bar1.png"
+     size          = "0.35, 0.05"
+     position      = "0.0 , 1.0 "
+     pickpoint     = "0, 1"
+     correctaspect = false
+    >
+      <BarColour position = 0.0 colour = "0.7,0.2,0.2" />
+      <BarColour position = 0.5 colour = "0.7,0.7,0.2" />
+      <BarColour position = 1.0 colour = "0.2,0.7,0.2" />
+    </HUDBoostBar>
 
     <HUDNavigation
Index: code/branches/presentation/src/modules/overlays/OverlaysPrereqs.h
===================================================================
--- code/branches/presentation/src/modules/overlays/OverlaysPrereqs.h	(revision 8668)
+++ code/branches/presentation/src/modules/overlays/OverlaysPrereqs.h	(revision 8673)
@@ -89,4 +89,5 @@
     class HUDRadar;
     class HUDSpeedBar;
+    class HUDBoostBar;
     class HUDTimer;
     class KillMessage;
Index: code/branches/presentation/src/modules/overlays/hud/CMakeLists.txt
===================================================================
--- code/branches/presentation/src/modules/overlays/hud/CMakeLists.txt	(revision 8668)
+++ code/branches/presentation/src/modules/overlays/hud/CMakeLists.txt	(revision 8673)
@@ -4,4 +4,5 @@
   HUDRadar.cc
   HUDSpeedBar.cc
+  HUDBoostBar.cc
   HUDHealthBar.cc
   HUDTimer.cc
Index: code/branches/presentation/src/modules/overlays/hud/HUDBar.cc
===================================================================
--- code/branches/presentation/src/modules/overlays/hud/HUDBar.cc	(revision 8668)
+++ code/branches/presentation/src/modules/overlays/hud/HUDBar.cc	(revision 8673)
@@ -26,4 +26,5 @@
  *      Fabian 'x3n' Landau
  *      Reto Grieder
+ *      Benjamin Knecht
  *
  */
Index: code/branches/presentation/src/modules/overlays/hud/HUDBar.h
===================================================================
--- code/branches/presentation/src/modules/overlays/hud/HUDBar.h	(revision 8668)
+++ code/branches/presentation/src/modules/overlays/hud/HUDBar.h	(revision 8673)
@@ -26,4 +26,5 @@
  *      Fabian 'x3n' Landau
  *      Reto Grieder
+ *      Benjamin Knecht
  *
  */
Index: code/branches/presentation/src/modules/overlays/hud/HUDBoostBar.cc
===================================================================
--- code/branches/presentation/src/modules/overlays/hud/HUDBoostBar.cc	(revision 8673)
+++ code/branches/presentation/src/modules/overlays/hud/HUDBoostBar.cc	(revision 8673)
@@ -0,0 +1,89 @@
+/*
+ *   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:
+ *      Benjamin Knecht
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#include "HUDBoostBar.h"
+
+#include "core/CoreIncludes.h"
+#include "worldentities/pawns/SpaceShip.h"
+#include "items/Engine.h"
+
+namespace orxonox
+{
+    CreateFactory(HUDBoostBar);
+
+    HUDBoostBar::HUDBoostBar(BaseObject* creator)
+        : HUDBar(creator)
+    {
+        RegisterObject(HUDBoostBar);
+
+        this->owner_ = 0;
+        this->flashInterval_ = 0.25f;
+        this->flashDt_ = 0.0f;
+    }
+
+    HUDBoostBar::~HUDBoostBar()
+    {
+    }
+
+    void HUDBoostBar::tick(float dt)
+    {
+        SUPER(HUDBoostBar, tick, dt);
+
+        if (this->owner_)
+        {
+            if (this->owner_->isBoostCoolingDown())
+            {
+                this->setBackgroundColour(ColourValue(0.7f, 0.2f, 0.2f));
+                if (this->flashDt_ <= 0.0f)
+                {
+                    this->flashDt_ = this->flashInterval_;
+                    this->setVisible(!this->isVisible());
+                }
+                else
+                    this->flashDt_ -= dt;
+            }
+            else
+            {
+                this->flashDt_ = 0.0f;
+                this->show();
+                this->setBackgroundColour(ColourValue(0.2f, 0.7f, 0.2f));
+            }
+
+            float value = this->owner_->getBoostPower() / this->owner_->getInitialBoostPower();
+            this->setValue(value);
+        }
+    }
+
+    void HUDBoostBar::changedOwner()
+    {
+        SUPER(HUDBoostBar, changedOwner);
+
+        this->owner_ = orxonox_cast<SpaceShip*>(this->getOwner());
+    }
+}
+
Index: code/branches/presentation/src/modules/overlays/hud/HUDBoostBar.h
===================================================================
--- code/branches/presentation/src/modules/overlays/hud/HUDBoostBar.h	(revision 8673)
+++ code/branches/presentation/src/modules/overlays/hud/HUDBoostBar.h	(revision 8673)
@@ -0,0 +1,54 @@
+/*
+ *   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:
+ *      Benjamin Knecht
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#ifndef _HUDBoostBar_H__
+#define _HUDBoostBar_H__
+
+#include "overlays/OverlaysPrereqs.h"
+
+#include "tools/interfaces/Tickable.h"
+#include "HUDBar.h"
+
+namespace orxonox
+{
+    class _OverlaysExport HUDBoostBar : public HUDBar, public Tickable
+    {
+    public:
+        HUDBoostBar(BaseObject* creator);
+        virtual ~HUDBoostBar();
+
+        virtual void tick(float dt);
+        virtual void changedOwner();
+
+    private:
+        SpaceShip*  owner_;
+        float       flashInterval_;
+        float       flashDt_;
+    };
+}
+#endif /* _HUDBoostBar_H__ */
Index: code/branches/presentation/src/orxonox/overlays/OrxonoxOverlay.cc
===================================================================
--- code/branches/presentation/src/orxonox/overlays/OrxonoxOverlay.cc	(revision 8668)
+++ code/branches/presentation/src/orxonox/overlays/OrxonoxOverlay.cc	(revision 8673)
@@ -137,4 +137,5 @@
         XMLPortParam(OrxonoxOverlay, "correctaspect", setAspectCorrection,   getAspectCorrection,   xmlelement, mode);
         XMLPortParam(OrxonoxOverlay, "background",    setBackgroundMaterial, getBackgroundMaterial, xmlelement, mode);
+        XMLPortParam(OrxonoxOverlay, "backgroundtex", setBackgroundTexture,  getBackgroundTexture,  xmlelement, mode);
     }
 
@@ -163,4 +164,32 @@
         if (this->background_)
             return this->background_->getMaterialName();
+        else
+            return BLANKSTRING;
+    }
+
+    //! Sets the background texture name and creates a new material if necessary
+    void OrxonoxOverlay::setBackgroundTexture(const std::string& texture)
+    {
+        if (this->background_ && this->background_->getMaterial().isNull() && !texture.empty())
+        {
+            // create new material
+            const std::string& materialname = "generated_material" + getUniqueNumberString();
+            Ogre::MaterialPtr material = static_cast<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(texture);
+            textureUnitState_->setNumMipmaps(0);
+            this->background_->setMaterialName(materialname);
+        }
+    }
+
+    //! Returns the the texture name of the background
+    const std::string& OrxonoxOverlay::getBackgroundTexture() const
+    {
+        if (this->background_)
+        {
+            Ogre::TextureUnitState* tempTx = this->background_->getMaterial()->getTechnique(0)->getPass(0)->getTextureUnitState(0);
+            return tempTx->getTextureName();
+        }
         else
             return BLANKSTRING;
@@ -406,8 +435,16 @@
     }
 
-    void OrxonoxOverlay::setBackgroundAlpha(float alpha) {
+    void OrxonoxOverlay::setBackgroundAlpha(float alpha)
+    {
         Ogre::MaterialPtr ptr = this->background_->getMaterial();
         Ogre::TextureUnitState* tempTx = ptr->getTechnique(0)->getPass(0)->getTextureUnitState(0);
         tempTx->setAlphaOperation(Ogre::LBX_MODULATE, Ogre::LBS_MANUAL, Ogre::LBS_CURRENT, alpha);
     }
+
+    void OrxonoxOverlay::setBackgroundColour(ColourValue colour)
+    {
+        Ogre::MaterialPtr ptr = this->background_->getMaterial();
+        Ogre::TextureUnitState* tempTx = ptr->getTechnique(0)->getPass(0)->getTextureUnitState(0);
+        tempTx->setColourOperationEx(Ogre::LBX_MODULATE, Ogre::LBS_MANUAL, Ogre::LBS_CURRENT, colour);
+    }
 }
Index: code/branches/presentation/src/orxonox/overlays/OrxonoxOverlay.h
===================================================================
--- code/branches/presentation/src/orxonox/overlays/OrxonoxOverlay.h	(revision 8668)
+++ code/branches/presentation/src/orxonox/overlays/OrxonoxOverlay.h	(revision 8673)
@@ -160,5 +160,10 @@
         const std::string& getBackgroundMaterial() const;
 
+        void setBackgroundTexture(const std::string& texture);
+        const std::string& getBackgroundTexture() const;
+
         void setBackgroundAlpha(float alpha);
+
+        void setBackgroundColour(ColourValue colour);
 
         virtual void changedVisibility();
Index: code/branches/presentation/src/orxonox/worldentities/pawns/SpaceShip.h
===================================================================
--- code/branches/presentation/src/orxonox/worldentities/pawns/SpaceShip.h	(revision 8668)
+++ code/branches/presentation/src/orxonox/worldentities/pawns/SpaceShip.h	(revision 8673)
@@ -88,4 +88,12 @@
                 { return this->bBoost_; }
 
+            inline float getBoostPower() const
+                { return this->boostPower_; }
+            inline float getInitialBoostPower() const
+                { return this->initialBoostPower_; }
+
+            inline bool isBoostCoolingDown() const
+                { return bBoostCooldown_; }
+
         protected:
             virtual std::vector<PickupCarrier*>* getCarrierChildren(void) const;
