Index: /trunk/src/util/hud.cc
===================================================================
--- /trunk/src/util/hud.cc	(revision 6441)
+++ /trunk/src/util/hud.cc	(revision 6442)
@@ -20,4 +20,6 @@
 #include "state.h"
 
+#include "world_entities/weapons/weapon_manager.h"
+
 using namespace std;
 
@@ -32,4 +34,5 @@
 
   //this->setSize2D(
+  this->weaponManager = NULL;
   this->energyWidget = NULL;
   this->shieldWidget = NULL;
@@ -37,4 +40,5 @@
   this->resX = 1;
   this->resY = 1;
+
 }
 
@@ -51,10 +55,8 @@
 void Hud::loadParams(const TiXmlElement* root)
 {
-
 }
 
 void Hud::setBackGround()
 {
-
 }
 
@@ -78,20 +80,49 @@
 void Hud::setShiledWidget(GLGuiWidget* widget)
 {
-
 }
 
 void Hud::setArmorWidget(GLGuiWidget* widget)
 {
+}
 
+void Hud::setWeaponManager(WeaponManager* weaponMan)
+{
+  if (this->weaponManager != NULL)
+  {
+    for (unsigned int i = 0; i < this->weaponManager->getSlotCount(); i++)
+    {
+      Weapon* weapon = this->weaponManager->getWeapon(i);
+      if (weapon != NULL)
+      {
+        weapon->getEnergyWidget()->hide();
+        this->weaponsWidgets.remove(weapon->getEnergyWidget());
+      }
+    }
+  }
+
+  this->weaponManager = weaponMan;
+
+  if (weaponManager != NULL)
+    for (unsigned int i = 0; i < weaponMan->getSlotCount(); i++)
+    {
+      Weapon* weapon = weaponMan->getWeapon(i);
+      if (weapon != NULL)
+      {
+        weapon->getEnergyWidget()->show();
+        this->weaponsWidgets.push_back(weapon->getEnergyWidget());
+
+      }
+    }
+
+    this->updateResolution();
 }
+
 
 void Hud::addWeaponWidget(GLGuiWidget* widget)
 {
-
 }
 
 void Hud::removeWeaponWidget(GLGuiWidget* widget)
 {
-
 }
 
@@ -105,4 +136,15 @@
     this->energyWidget->setSize2D(.05 * this->resX, .55 * this->resY);
   }
+
+  this->setSize2D(.2 * this->resX, this->resY);
+
+  std::list<GLGuiWidget*>::iterator weaponWidget;
+  float pos = .2;
+  for (weaponWidget = this->weaponsWidgets.begin(); weaponWidget != this->weaponsWidgets.end(); weaponWidget++, pos+=.03)
+  {
+    (*weaponWidget)->setSize2D(.02*this->resX, .2 *this->resY);
+    (*weaponWidget)->setAbsCoor2D(pos*this->resX, .75*this->resY);
+  }
+
 }
 
Index: /trunk/src/util/hud.h
===================================================================
--- /trunk/src/util/hud.h	(revision 6441)
+++ /trunk/src/util/hud.h	(revision 6442)
@@ -12,5 +12,5 @@
 // FORWARD DECLARATION
 class TiXmlElement;
-
+class WeaponManager;
 
 //! A class that renders a HUD.
@@ -29,4 +29,5 @@
   void setShiledWidget(GLGuiWidget* widget);
   void setArmorWidget(GLGuiWidget* widget);
+  void setWeaponManager(WeaponManager* weaponMan);
 
   void addWeaponWidget(GLGuiWidget* widget);
@@ -46,4 +47,6 @@
   GLGuiWidget*             armorWidget;
 
+  WeaponManager*           weaponManager;
+
   std::list<GLGuiWidget*>  weaponsWidgets; //!< WeaponWidgets will be displayed one after another
 };
Index: /trunk/src/world_entities/playable.cc
===================================================================
--- /trunk/src/world_entities/playable.cc	(revision 6441)
+++ /trunk/src/world_entities/playable.cc	(revision 6442)
@@ -25,5 +25,12 @@
 Playable::Playable()
 {
-  this->init();
+  this->setClassID(CL_PLAYABLE, "Playable");
+  PRINTF(4)("PLAYABLE INIT\n");
+
+  this->toList(OM_GROUP_01);
+  this->weaponMan = new WeaponManager(this);
+
+  // the reference to the Current Player is NULL, because we dont have one at the beginning.
+  this->currentPlayer = NULL;
 }
 
@@ -39,18 +46,4 @@
 }
 
-/**
- * initializes this Playable
- */
-void Playable::init()
-{
-  this->setClassID(CL_PLAYABLE, "Playable");
-  PRINTF(4)("PLAYABLE INIT\n");
-
-  this->toList(OM_GROUP_01);
-  this->weaponMan = new WeaponManager(this);
-
-  // the reference to the Current Player is NULL, because we dont have one at the beginning.
-  this->currentPlayer = NULL;
-}
 
 /**
Index: /trunk/src/world_entities/playable.h
===================================================================
--- /trunk/src/world_entities/playable.h	(revision 6441)
+++ /trunk/src/world_entities/playable.h	(revision 6442)
@@ -10,4 +10,5 @@
 #include "event.h"
 #include <list>
+
 
 class Weapon;
@@ -51,7 +52,4 @@
 
   private:
-    void init();
-
-  private:
     WeaponManager*        weaponMan;          //!< the weapon manager: managing a list of weapon to wepaon-slot mapping
     std::list<int>        events;             //!< A list of Events, that are captured for this playable
Index: /trunk/src/world_entities/player.cc
===================================================================
--- /trunk/src/world_entities/player.cc	(revision 6441)
+++ /trunk/src/world_entities/player.cc	(revision 6442)
@@ -59,4 +59,5 @@
       this->controllable = controllable;
       this->hud.setEnergyWidget(this->controllable->getEnergyWidget());
+      this->hud.setWeaponManager(this->controllable->getWeaponManager());
       return true;
   }
@@ -73,4 +74,5 @@
      this->controllable = NULL;
      this->hud.setEnergyWidget(NULL);
+     this->hud.setWeaponManager(NULL);
      return true;
    }
Index: /trunk/src/world_entities/weapons/weapon_manager.h
===================================================================
--- /trunk/src/world_entities/weapons/weapon_manager.h	(revision 6441)
+++ /trunk/src/world_entities/weapons/weapon_manager.h	(revision 6442)
@@ -54,4 +54,5 @@
 
     void setSlotCount(unsigned int slotCount);
+    unsigned int getSlotCount() const { return this->slotCount; };
     // setting up the WeaponManager with the following functions
     void setSlotPosition(int slot, const Vector& position);
@@ -69,4 +70,5 @@
     void addWeapon(Weapon* weapon, int configID = -1, int slotID = -1);
     void removeWeapon(Weapon* weapon, int configID = -1);
+    Weapon* getWeapon(int slotID) const { return (slotID >= 0 && slotID < this->slotCount)? this->currentSlotConfig[slotID].currentWeapon: NULL; };
 
     // FIXME ::
