Index: branches/playability/src/util/hud.cc
===================================================================
--- branches/playability/src/util/hud.cc	(revision 10119)
+++ branches/playability/src/util/hud.cc	(revision 10120)
@@ -24,4 +24,5 @@
 #include "glgui_widget.h"
 #include "glgui_box.h"
+#include "elements/glgui_energywidgetvertical.h"
 
 #include "glgui_inputline.h"
@@ -108,5 +109,5 @@
     this->energyWidget->show();
     this->energyWidget->shiftDir2D(270);
-    //this->energyWidget->setDisplayedName("Electronics")
+    dynamic_cast<OrxGui::GLGuiEnergyWidgetVertical*> (this->energyWidget)->setDisplayedName("Electronics");
     this->shipValuesBox->pack(this->energyWidget);
     /*    this->energyWidget->frontMaterial().setDiffuseMap("hud_energy_bar.png");
@@ -118,8 +119,44 @@
 
 void Hud::setShiledWidget(OrxGui::GLGuiWidget* widget)
-{}
+{
+  // decopple old widget
+  if (this->shieldWidget != NULL)
+  {
+    this->shieldWidget->hide();
+  }
+
+  this->shieldWidget = widget;
+  if (this->shieldWidget != NULL)
+  {
+    this->shieldWidget->show();
+    this->shieldWidget->shiftDir2D(270);
+    this->shipValuesBox->pack(this->shieldWidget);
+    /*    this->shieldWidget->frontMaterial().setDiffuseMap("hud_energy_bar.png");
+        this->shieldWidget->frontMaterial().setBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);*/
+  }
+
+  this->updateResolution();
+}
 
 void Hud::setArmorWidget(OrxGui::GLGuiWidget* widget)
-{}
+{
+// decopple old widget
+  if (this->armorWidget != NULL)
+  {
+    this->armorWidget->hide();
+  }
+
+  this->armorWidget = widget;
+  if (this->armorWidget != NULL)
+  {
+    this->armorWidget->show();
+    this->armorWidget->shiftDir2D(270);
+    //this->shipValuesBox->pack(this->armorWidget);
+    /*    this->armorWidget->frontMaterial().setDiffuseMap("hud_energy_bar.png");
+        this->armorWidget->frontMaterial().setBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);*/
+  }
+
+  this->updateResolution();
+}
 
 void Hud::setWeaponManager(WeaponManager* weaponMan, WeaponManager* weaponManSec)
@@ -235,5 +272,5 @@
   if (this->shipValuesBox != NULL)
   {
-    this->shipValuesBox->setAbsCoor2D(0.2 * this->resX, 0.85 * this->resY);
+    this->shipValuesBox->setAbsCoor2D(0.8 * this->resX, 0.85 * this->resY);
     this->shipValuesBox->setWidgetSize(.4 * this->resX, 0.1 * this->resY);
   }
Index: branches/playability/src/world_entities/elements/glgui_energywidgetvertical.cc
===================================================================
--- branches/playability/src/world_entities/elements/glgui_energywidgetvertical.cc	(revision 10119)
+++ branches/playability/src/world_entities/elements/glgui_energywidgetvertical.cc	(revision 10120)
@@ -32,5 +32,5 @@
 
     this->_bar.setSize2D(100, 30);
-    this->_name.setRelCoor2D(20,0);
+    this->_name.setRelCoor2D(200,0);
     this->_valueText.setRelCoor2D(22,0);
 
Index: branches/playability/src/world_entities/player.cc
===================================================================
--- branches/playability/src/world_entities/player.cc	(revision 10119)
+++ branches/playability/src/world_entities/player.cc	(revision 10120)
@@ -74,5 +74,5 @@
     PRINTF(4)("Enter new Playable\n");
     this->playable = playable;
-    this->_hud.setEnergyWidget(this->playable->getHealthWidget());
+    this->_hud.setArmorWidget(this->playable->getHealthWidget());
     if (dynamic_cast<SpaceShip*>(this->playable) != 0)
       this->_hud.setWeaponManager(&this->playable->getWeaponManager(), &dynamic_cast<SpaceShip*>(this->playable)->getWeaponManagerSecondary());
Index: branches/playability/src/world_entities/space_ships/space_ship.cc
===================================================================
--- branches/playability/src/world_entities/space_ships/space_ship.cc	(revision 10119)
+++ branches/playability/src/world_entities/space_ships/space_ship.cc	(revision 10120)
@@ -30,4 +30,6 @@
 #include "weapons/turret.h"
 #include "weapons/cannon.h"
+
+#include "elements/glgui_energywidgetvertical.h"
 
 #include "particles/dot_emitter.h"
@@ -238,5 +240,22 @@
   this->cameraNode.addNodeFlags(PNODE_PROHIBIT_CHILD_DELETE);
 
-
+  // widget handling
+  this->electronicWidget = new OrxGui::GLGuiEnergyWidgetVertical();
+  this->electronicWidget->setDisplayedName(std::string(this->getClassName()) + " Electronics:");
+  this->electronicWidget->setSize2D(30,400);
+  this->electronicWidget->setAbsCoor2D(150,200);
+  this->electronicWidget->shiftDir2D(270);
+  this->updateElectronicWidget();
+  this->shieldWidget = new OrxGui::GLGuiEnergyWidgetVertical();
+  this->shieldWidget->setDisplayedName(std::string(this->getClassName()) + " Shield:");
+  this->shieldWidget->setSize2D(30,400);
+  this->shieldWidget->setAbsCoor2D(200,200);
+  this->shieldWidget->shiftDir2D(270);
+  this->updateShieldWidget();
+  if (this->hasPlayer())
+  {
+    State::getPlayer()->hud().setShiledWidget(this->shieldWidget);
+    State::getPlayer()->hud().setEnergyWidget(this->electronicWidget);
+  }
 
   //add events to the eventlist
@@ -694,4 +713,7 @@
     this->destroy(this);
 
+  updateElectronicWidget();
+  updateShieldWidget();
+
   this->setHealth( this->armorCur);
 }
@@ -714,4 +736,6 @@
       this->shieldCur = tmp;
     this->shieldActive = ( this->shieldActive || this->shieldCur > shieldTH);
+
+    updateShieldWidget();
   }
 
@@ -724,5 +748,8 @@
     else
       this->electronicCur = tmp;
-  }
+
+    updateElectronicWidget();
+  }
+
 }
 
@@ -993,2 +1020,18 @@
   //this->collidesWith(killer, this->getAbsCoor());
 }
+
+void SpaceShip::updateElectronicWidget()
+{
+  this->electronicWidget->setMaximum(this->electronicMax);
+  this->electronicWidget->setValue(this->electronicCur);
+  if (this->hasPlayer())
+    this->electronicWidget->show();
+}
+
+void SpaceShip::updateShieldWidget()
+{
+  this->shieldWidget->setMaximum(this->shieldMax);
+  this->shieldWidget->setValue(this->shieldCur);
+  if (this->hasPlayer())
+    this->shieldWidget->show();
+}
Index: branches/playability/src/world_entities/space_ships/space_ship.h
===================================================================
--- branches/playability/src/world_entities/space_ships/space_ship.h	(revision 10119)
+++ branches/playability/src/world_entities/space_ships/space_ship.h	(revision 10120)
@@ -75,7 +75,10 @@
     virtual void damage(float pDamage, float eDamage);  //!< pDamage physical damage, eDamage electronic damage
 
+    //included by Michel: ((
     virtual void enterPlaymode(Playable::Playmode playmode);
-    void setPlaymodeXML(const std::string& playmode);
+    void setPlaymodeXML(const std::string& playmode); //recieves the playmode from a string (useful for script implementation)
     virtual void movement (float dt);
+
+    //))
 
     void nextWeaponConfig();
@@ -94,4 +97,7 @@
 
     inline bool systemFailure() {  return (this->electronicCur < float(rand())/float(RAND_MAX) * this->electronicTH); };
+
+    void updateElectronicWidget();
+    void updateShieldWidget();
 
     //WeaponManager         weaponMan;      //!< the primary weapon manager: managing a list of energy weapons to wepaon-slot mapping
@@ -107,8 +113,10 @@
     float       shieldTH;           //!< shield threshhold for reactivation
     bool        shieldActive;       //!< wheather the shield is working
+    OrxGui::GLGuiEnergyWidgetVertical* shieldWidget; //!< holds the widget that shows the shield bar
 
     float       armorCur;           //!< current armor
     float       armorMax;           //!< maximum armor
     float       armorRegen;         //!< armor regeneration per tick (usable on bioships?)
+    //note that the armor widget is set on the health- widget in world- entity (see in player.cc)
 
     float       electronicCur;      //!< current electronic
@@ -116,4 +124,5 @@
     float       electronicRegen;    //!< electronic regenration rate per tick
     float       electronicTH;       //!< Threshhold for electronic failure
+    OrxGui::GLGuiEnergyWidgetVertical* electronicWidget; //!< holds the widget that shows the electronic bar
 
     float       engineSpeedCur;     //!< speed output for movement = speed base + energy share part
Index: branches/playability/src/world_entities/world_entity.cc
===================================================================
--- branches/playability/src/world_entities/world_entity.cc	(revision 10119)
+++ branches/playability/src/world_entities/world_entity.cc	(revision 10120)
@@ -752,7 +752,7 @@
   {
     this->healthWidget = new OrxGui::GLGuiEnergyWidgetVertical();
-    this->healthWidget->setDisplayedName(std::string(this->getClassName()) + " Energy:");
+    this->healthWidget->setDisplayedName("Electronics");
     this->healthWidget->setSize2D(30,400);
-    this->healthWidget->setAbsCoor2D(10,100);
+    this->healthWidget->setAbsCoor2D(100,200);
 
     this->updateHealthWidget();
