Index: branches/playability/src/util/hud.cc
===================================================================
--- branches/playability/src/util/hud.cc	(revision 10229)
+++ branches/playability/src/util/hud.cc	(revision 10230)
@@ -24,4 +24,5 @@
 #include "glgui_widget.h"
 #include "glgui_box.h"
+#include "glgui_bar.h"
 #include "elements/glgui_energywidgetvertical.h"
 
@@ -51,6 +52,10 @@
   this->shieldWidget = NULL;
   this->armorWidget = NULL;
+  //this->leftRect = NULL;
+  //this->rightRect = NULL;
   this->resX = 1;
   this->resY = 1;
+
+  this->travelZoneWidth = 0.7;
 
   this->inputLine = new OrxGui::GLGuiInputLine();
@@ -115,4 +120,5 @@
     //dynamic_cast<OrxGui::GLGuiEnergyWidgetVertical*> (this->energyWidget)->setDisplayedName("Electronics");
     //this->shipValuesBox->pack(this->energyWidget);
+    //dynamic_cast<OrxGui::GLGuiEnergyWidgetVertical*> (this->energyWidget)->setStandardSettings();
     this->energyWidget->show();
     /*    this->energyWidget->frontMaterial().setDiffuseMap("hud_energy_bar.png");
@@ -141,4 +147,5 @@
     //this->shieldWidget->shiftDir2D(270);
     //this->shipValuesBox->pack(this->shieldWidget);
+    //dynamic_cast<OrxGui::GLGuiEnergyWidgetVertical*> (this->shieldWidget)->setStandardSettings();
     this->shieldWidget->show();
     /*    this->shieldWidget->frontMaterial().setDiffuseMap("hud_energy_bar.png");
@@ -169,4 +176,5 @@
     //this->armorWidget->shiftDir2D(270);
     //this->shipValuesBox->pack(this->armorWidget);
+    //dynamic_cast<OrxGui::GLGuiEnergyWidgetVertical*> (this->armorWidget)->setStandardSettings();
     this->armorWidget->show();
     /*    this->armorWidget->frontMaterial().setDiffuseMap("hud_energy_bar.png");
@@ -187,5 +195,5 @@
       {
         weapon->getEnergyWidget()->hide();
-        this->weaponsWidgets.remove(weapon->getEnergyWidget());
+        this->weaponsWidgetsPrim.remove(dynamic_cast<OrxGui::GLGuiEnergyWidgetVertical*> (weapon->getEnergyWidget()));
       }
     }
@@ -200,5 +208,5 @@
       {
         weapon->getEnergyWidget()->hide();
-        this->weaponsWidgets.remove(weapon->getEnergyWidget());
+        this->weaponsWidgetsSec.remove(dynamic_cast<OrxGui::GLGuiEnergyWidgetVertical*> (weapon->getEnergyWidget()));
       }
     }
@@ -215,10 +223,16 @@
 {
   // hide all the Widgets
-  std::list<OrxGui::GLGuiWidget*>::iterator weaponWidget;
-  for (weaponWidget = this->weaponsWidgets.begin(); weaponWidget != this->weaponsWidgets.end(); weaponWidget++)
+  std::list<OrxGui::GLGuiEnergyWidgetVertical*>::iterator weaponWidget;
+  for (weaponWidget = this->weaponsWidgetsPrim.begin(); weaponWidget != this->weaponsWidgetsPrim.end(); weaponWidget++)
   {
     (*weaponWidget)->hide();
   }
-  this->weaponsWidgets.clear();
+  this->weaponsWidgetsPrim.clear();
+
+  for (weaponWidget = this->weaponsWidgetsSec.begin(); weaponWidget != this->weaponsWidgetsSec.end(); weaponWidget++)
+  {
+    (*weaponWidget)->hide();
+  }
+  this->weaponsWidgetsSec.clear();
 
   // add all that we need again.
@@ -234,5 +248,5 @@
         weapon->getEnergyWidget()->setFrontColor(Color( .2,.5,.7,.6));
         //weapon->getEnergyWidget()->frontMaterial().setTransparency(.6);
-        this->weaponsWidgets.push_back(weapon->getEnergyWidget());
+        this->weaponsWidgetsPrim.push_back(dynamic_cast<OrxGui::GLGuiEnergyWidgetVertical*> (weapon->getEnergyWidget()));
       }
     }
@@ -249,5 +263,5 @@
         weapon->getEnergyWidget()->setFrontColor(Color( .2,.5,.7,.6));
         //weapon->getEnergyWidget()->frontMaterial().setTransparency(.6);
-        this->weaponsWidgets.push_back(weapon->getEnergyWidget());
+        this->weaponsWidgetsSec.push_back(dynamic_cast<OrxGui::GLGuiEnergyWidgetVertical*> (weapon->getEnergyWidget()));
       }
     }
@@ -280,15 +294,15 @@
     this->_radar->addEntityList(&State::getObjectManager()->getEntityList(OM_GROUP_00), Color(1, 0, 0));
     this->_radar->addEntityList(&State::getObjectManager()->getEntityList(OM_GROUP_01), Color(0, 0, 1));
-    this->_radar->setAbsCoor2D(0.8 * this->resX, 0.01 * this->resY);
-    this->_radar->setWidgetSize(0.2 * this->resX, 0.2 * this->resY);
+    this->_radar->setAbsCoor2D(0, 0.01 * this->resY);
+    this->_radar->setWidgetSize(0.18 * this->resX, 0.2 * this->resY);
     this->_radar->setRange(300);
     this->_radar->show();
 
     if (this->armorWidget != NULL)
-      this->armorWidget->setRelCoor2D(0.1*this->resX, this->armorWidget->getSizeX2D());
+      this->armorWidget->setRelCoor2D(100,0.2*this->resY + this->armorWidget->getSizeX2D());
     if (this->shieldWidget != NULL)
-      this->shieldWidget->setRelCoor2D(0.1*this->resX + this->armorWidget->getSizeY2D(), this->armorWidget->getSizeX2D());
+      this->shieldWidget->setRelCoor2D(60,0.2*this->resY + this->armorWidget->getSizeX2D());
     if (this->energyWidget != NULL)
-      this->energyWidget->setRelCoor2D(0.1*this->resX + this->armorWidget->getSizeY2D() + this->shieldWidget->getSizeY2D(), this->armorWidget->getSizeX2D());
+      this->energyWidget->setRelCoor2D(20,0.2*this->resY + this->armorWidget->getSizeX2D());
     //this->shieldWidget->setRelCoor2D(0.1*this->resX + this->armorWidget->getSizeX2D(),0);
     //this->energyWidget->setRelCoor2D(0.1*this->resX + this->armorWidget->getSizeX2D() + this->shieldWidget->getSizeX2D(),0);
@@ -305,19 +319,36 @@
   */
 
-  std::list<OrxGui::GLGuiWidget*>::iterator weaponWidget;
-  Vector2D pos(0.3, .9);
-  for (weaponWidget = this->weaponsWidgets.begin(); weaponWidget != this->weaponsWidgets.end(); weaponWidget++, pos.x+=.1)
-  {
-    if (pos.x > .8)
-    {
-      pos.x = 0.3;
-      pos.y -= .1;
-
-    }
-    (*weaponWidget)->setAbsCoor2D(pos.x*this->resX, pos.y*this->resY);
-    (*weaponWidget)->setWidgetSize(.02*this->resX, .1 *this->resY);
+  std::list<OrxGui::GLGuiEnergyWidgetVertical*>::iterator weaponWidget;
+  Vector2D pos(this->resX, 0.5*this->resY);
+  for (weaponWidget = this->weaponsWidgetsPrim.begin(); weaponWidget != this->weaponsWidgetsPrim.end(); weaponWidget++)
+  {
+    if (pos.x < 0.9*resX)
+    {
+      pos.x = this->resX;
+      pos.y += 150;
+    }
+    pos.x -= 40;
+    (*weaponWidget)->setAbsCoor2D(pos.x, pos.y);
     (*weaponWidget)->show();
     //printf("update thing %s::%s\n", (*weaponWidget)->getClassCName(), (*weaponWidget)->getName());
   }
+
+  pos.y += 150;
+  pos.x = this->resX;
+  for (weaponWidget = this->weaponsWidgetsSec.begin(); weaponWidget != this->weaponsWidgetsSec.end(); weaponWidget++)
+  {
+    if (pos.x < 0.9*resX)
+    {
+      pos.x = this->resX;
+      pos.y += 150;
+    }
+    pos.x -= 40;
+    (*weaponWidget)->setAbsCoor2D(pos.x, pos.y);
+    (*weaponWidget)->show();
+    //printf("update thing %s::%s\n", (*weaponWidget)->getClassCName(), (*weaponWidget)->getName());
+  }
+
+  //if (this->rightRect == NULL)
+         
 }
 
Index: branches/playability/src/util/hud.h
===================================================================
--- branches/playability/src/util/hud.h	(revision 10229)
+++ branches/playability/src/util/hud.h	(revision 10230)
@@ -10,4 +10,5 @@
 #include "event_listener.h"
 #include "glgui_box.h"
+#include "elements/glgui_energywidgetvertical.h"
 
 
@@ -53,4 +54,12 @@
   void updateWeaponManager();
 
+  inline void setTravelZoneWidth(float width) 
+  {
+    if (width > 1) width = 1;
+    else if (width < 0) width = 0;
+
+    this->travelZoneWidth = width;
+  };
+
   void draw() const;
   virtual void process(const Event &event);
@@ -65,8 +74,9 @@
   unsigned int             resY;
 
+  float                    travelZoneWidth; //the percentage of the screen, the player has got for his movements. should always be a value between 0 and 1;
+
   OrxGui::GLGuiWidget*     energyWidget;
   OrxGui::GLGuiWidget*     shieldWidget;
   OrxGui::GLGuiWidget*     armorWidget;
-  //OrxGui::GLGuiBox*        shipValuesBox;
 
   OrxGui::GLGuiNotifier*   notifier;
@@ -74,8 +84,11 @@
   OrxGui::GLGuiRadar*      _radar;
 
+  OrxGui::GLGuiWidget*     rightRect, leftRect;
+
   WeaponManager*           weaponManager;
   WeaponManager*           weaponManagerSecondary;
 
-  std::list<OrxGui::GLGuiWidget*> weaponsWidgets; //!< WeaponWidgets will be displayed one after another
+  std::list<OrxGui::GLGuiEnergyWidgetVertical*> weaponsWidgetsPrim; //!< WeaponWidgets will be displayed one after another
+  std::list<OrxGui::GLGuiEnergyWidgetVertical*> weaponsWidgetsSec;
 };
 
Index: branches/playability/src/world_entities/elements/glgui_energywidgetvertical.cc
===================================================================
--- branches/playability/src/world_entities/elements/glgui_energywidgetvertical.cc	(revision 10229)
+++ branches/playability/src/world_entities/elements/glgui_energywidgetvertical.cc	(revision 10230)
@@ -30,64 +30,4 @@
   GLGuiEnergyWidgetVertical::GLGuiEnergyWidgetVertical ()
   {
-    //   this->setClassID(CL_PROTO_ID, "GLGuiEnergyWidget");
-
-    //this->_bar.setSize2D(100, 30);
-    //this->_bar.setRelCoor2D(-10,0);
-    //this->_name.setRelCoor2D(20,0);
-    //this->_valueText.setRelCoor2D(,0);
-    this->setAbsDir2D(270);
-    //std::cout << "absAngle: " << int(this->getAbsDir2D()) << ", relAngle: " << int(this->getRelDir2D()) << '\n';
-    //this->setOrientation(OrxGui::Vertical);
-
-    //this->pack(&this->_name);
-    //this->pack(&this->_valueText);
-
-    this->_image.setParent2D(this);
-    this->_image.setBorderTop(0);
-    this->_image.setBorderLeft(0);
-    this->_image.setBorderRight(0);
-    this->_image.setBorderBottom(0);
-    this->_image.setWidgetSize(30,30);
-    this->_image.setForegroundColor(Color(1,1,1,0.6));
-    this->_image.setBackgroundColor(Color(1,1,1,0));
-    this->_image.setBackgroundTexture(Texture());
-    this->_image.loadImageFromFile("maps/evil-flower.png");
-    //this->_image.setRelCoor2D(borderLeft(), borderTop() + this->_bar.getSizeX2D());
-    this->_image.setRelCoor2D(0,0);
-    this->_image.setRelDir2D(90);
-    this->_image.setVisibility(true);
-
-    this->_valueText.setParent2D(this);
-    this->_valueText.setWidgetSize(100,20);
-    //this->_valueText.setRelCoor2D(borderLeft(), borderTop() + this->_bar.getSizeX2D());
-    this->_valueText.setRelCoor2D(0,0);
-    this->_valueText.setChangedTextColor(Color::white);
-
-    this->setBackgroundTexture(Texture());
-    this->setBackgroundColor(Color(1,1,1,0.5));
-    this->setBorderTop(10);
-    this->setBorderLeft(10);
-    this->setBorderRight(10);
-    this->setBorderBottom(10);
-    this->setWidgetSize(120,50);
-    this->setVisibility(true);
-    
-
-    //this->_name.setBackgroundTexture(Texture());
-    //this->_valueText.setBackgroundTexture("maps/gui_element_background_2.png");
-
-    this->_bar.setParent2D(&this->_valueText);
-    this->_bar.setBackgroundTexture(Texture());
-    this->_bar.setBackgroundColor(Color(0,0,0,0));
-    this->_bar.setForegroundTexture("maps/gui_element_background_faded.png");
-    this->_bar.setForegroundColor(Color(.5, .5, .5, 1));
-    this->_bar.setChangedValueColor(Color::black);
-    this->_bar.setBorderTop(0);
-    this->_bar.setBorderLeft(0);
-    this->_bar.setBorderRight(0);
-    this->_bar.setBorderBottom(0);
-    this->_bar.setWidgetSize(100,30);
-    //this->_bar.setRelCoor2D(borderLeft(), 0);
-    this->_bar.setRelCoor2D(0,0);
   }
 
@@ -132,8 +72,50 @@
   void GLGuiEnergyWidgetVertical::showing()
   {
+    this->setAbsDir2D(270);
+    this->setBackgroundTexture(Texture());
+    this->setBackgroundColor(Color(1,1,1,0));
+    this->setBorderTop(10);
+    this->setBorderLeft(10);
+    this->setBorderRight(10);
+    this->setBorderBottom(10);
+    this->setWidgetSize(120,50);
+
+    this->_bar.setParent2D(&this->_valueText);
+    this->_bar.setBackgroundTexture(Texture());
+    this->_bar.setBackgroundColor(Color(0,0,0,0));
+    this->_bar.setForegroundTexture("maps/gui_element_background_faded.png");
+    this->_bar.setForegroundColor(Color::green);
+    this->_bar.setChangedValueColor(Color(1,0,0,0.2));
+    this->_bar.setBorderTop(0);
+    this->_bar.setBorderLeft(0);
+    this->_bar.setBorderRight(0);
+    this->_bar.setBorderBottom(0);
+    this->_bar.setWidgetSize(100,30);
+    //this->_bar.setRelCoor2D(borderLeft(), 0);
+    this->_bar.setRelCoor2D(0,0);
+    this->_bar.show();
+  
+    this->_image.setParent2D(this);
+    this->_image.setBorderTop(0);
+    this->_image.setBorderLeft(0);
+    this->_image.setBorderRight(0);
+    this->_image.setBorderBottom(0);
+    this->_image.setWidgetSize(30,30);
+    this->_image.setForegroundColor(Color(1,1,1,0.6));
+    this->_image.setBackgroundColor(Color(1,1,1,0));
+    this->_image.setBackgroundTexture(Texture());
+    this->_image.loadImageFromFile("maps/evil-flower.png");
+    //this->_image.setRelCoor2D(borderLeft(), borderTop() + this->_bar.getSizeX2D());
+    this->_image.setRelCoor2D(0,0);
+    this->_image.setRelDir2D(90);
+    this->_image.setVisibility(true);
     this->_image.show();
+
+    this->_valueText.setParent2D(this);
+    this->_valueText.setWidgetSize(100,20);
+    //this->_valueText.setRelCoor2D(borderLeft(), borderTop() + this->_bar.getSizeX2D());
+    this->_valueText.setRelCoor2D(0,0);
+    this->_valueText.setChangedTextColor(Color::black);
     this->_valueText.show();
-    this->_bar.show();
-    //this->show();
   }
 
Index: branches/playability/src/world_entities/elements/glgui_energywidgetvertical.h
===================================================================
--- branches/playability/src/world_entities/elements/glgui_energywidgetvertical.h	(revision 10229)
+++ branches/playability/src/world_entities/elements/glgui_energywidgetvertical.h	(revision 10230)
@@ -27,7 +27,7 @@
     void setDisplayedImage(const std::string& imageName);
 
-    inline GLGuiWidget* getImageWidget() {return &this->_image;};
-    inline GLGuiWidget* getValueWidget() {return &this->_valueText;};
-    inline GLGuiWidget* getBarWidget() {return &this->_bar;};
+    inline GLGuiImage* getImageWidget() {return &this->_image;};
+    inline GLGuiText* getValueWidget() {return &this->_valueText;};
+    inline GLGuiBar* getBarWidget() {return &this->_bar;};
 
   protected:
Index: branches/playability/src/world_entities/elements/glgui_radar.cc
===================================================================
--- branches/playability/src/world_entities/elements/glgui_radar.cc	(revision 10229)
+++ branches/playability/src/world_entities/elements/glgui_radar.cc	(revision 10230)
@@ -122,5 +122,5 @@
           this->_dotLists[i].positions.push_back(Vector2D(((*it)->getAbsCoor().x - _centerNode->getAbsCoor().x) * this->getSizeX2D() ,
                                                  ((*it)->getAbsCoor().z - _centerNode->getAbsCoor().z) * this->getSizeY2D()  )
-                                                 / (2.0f * _range));
+                                                 / (3.0f * _range));
         }
 
Index: branches/playability/src/world_entities/space_ships/space_ship.cc
===================================================================
--- branches/playability/src/world_entities/space_ships/space_ship.cc	(revision 10229)
+++ branches/playability/src/world_entities/space_ships/space_ship.cc	(revision 10230)
@@ -34,4 +34,5 @@
 
 #include "elements/glgui_energywidgetvertical.h"
+#include "glgui_bar.h"
 
 #include "particles/dot_emitter.h"
@@ -1054,4 +1055,5 @@
   { //create the widget
     this->electronicWidget = new OrxGui::GLGuiEnergyWidgetVertical();
+    this->electronicWidget->getBarWidget()->setChangedValueColor(Color(1,0,0,1));
     //this->electronicWidget->setDisplayedName("Electronics:");
     //this->electronicWidget->setSize2D(100,20);
@@ -1073,4 +1075,5 @@
   {
     this->shieldWidget = new OrxGui::GLGuiEnergyWidgetVertical();
+    this->shieldWidget->getBarWidget()->setChangedValueColor(Color(1,0,0,1));
     //this->shieldWidget->setDisplayedName("Shield:");
     //his->shieldWidget->setSize2D(100,20);
Index: branches/playability/src/world_entities/weapons/weapon.cc
===================================================================
--- branches/playability/src/world_entities/weapons/weapon.cc	(revision 10229)
+++ branches/playability/src/world_entities/weapons/weapon.cc	(revision 10230)
@@ -33,5 +33,5 @@
 #include "resource_sound_buffer.h"
 
-#include "elements/glgui_energywidget.h"
+#include "elements/glgui_energywidgetvertical.h"
 
 ObjectListDefinition(Weapon);
@@ -394,6 +394,6 @@
   if (this->energyWidget == NULL)
   {
-    this->energyWidget = new OrxGui::GLGuiEnergyWidget();
-    this->energyWidget->setDisplayedName(this->getClassCName());
+    this->energyWidget = new OrxGui::GLGuiEnergyWidgetVertical();
+    //this->energyWidget->setDisplayedName(this->getClassCName());
     this->energyWidget->setSize2D( 20, 100);
     this->energyWidget->setMaximum(this->getEnergyMax());
Index: branches/playability/src/world_entities/weapons/weapon.h
===================================================================
--- branches/playability/src/world_entities/weapons/weapon.h	(revision 10229)
+++ branches/playability/src/world_entities/weapons/weapon.h	(revision 10230)
@@ -233,5 +233,5 @@
     float                maxCharge;                        //!< The maximal energy to be loaded onto one projectile (this is only availible if chargeable is enabled)
 
-    OrxGui::GLGuiEnergyWidget* energyWidget;
+    OrxGui::GLGuiEnergyWidgetVertical* energyWidget;
 
     PNode*               defaultTarget;                    //!< A target for targeting Weapons.
