Index: trunk/src/world_entities/weapons/acid_launcher.cc
===================================================================
--- trunk/src/world_entities/weapons/acid_launcher.cc	(revision 10499)
+++ trunk/src/world_entities/weapons/acid_launcher.cc	(revision 10516)
@@ -32,4 +32,6 @@
 
 #include "util/loading/factory.h"
+
+#include "elements/glgui_energywidgetvertical.h"
 
 
@@ -122,4 +124,10 @@
 void AcidLauncher::tick(float dt)
 {
+  if (this->energyWidget != NULL && !this->isEnergyWidgetInitialized)
+  {
+    this->energyWidget->setDisplayedImage("textures/gui/gui_acid.png");
+    this->isEnergyWidgetInitialized = true;
+  }
+
   if (!Weapon::tickW(dt))
     return;
Index: trunk/src/world_entities/weapons/heavy_blaster.cc
===================================================================
--- trunk/src/world_entities/weapons/heavy_blaster.cc	(revision 10499)
+++ trunk/src/world_entities/weapons/heavy_blaster.cc	(revision 10516)
@@ -10,4 +10,6 @@
 
 #include "loading/fast_factory.h"
+
+#include "elements/glgui_energywidgetvertical.h"
 
 CREATE_FACTORY(HeavyBlaster);
@@ -93,10 +95,9 @@
 
   this->setActionSound(WA_SHOOT, "sounds/guns/laser.wav");
-  this->setActionSound(WA_ACTIVATE, "sounds/voices/lasers.wav");
+//   this->setActionSound(WA_ACTIVATE, "sounds/voices/lasers.wav");
   this->setActionSound(WA_RELOAD, "sounds/spawn/alien_generator.wav");
 
   this->setCapability(WTYPE_ALLDIRS | WTYPE_DIRECTIONAL | WTYPE_LIGHT);
-  this->setProjectileTypeC("HBolt");   // FIXME temp project type until the blaste class exist
-//   this->setProjectileTypeC("SpikeBall");   // FIXME temp project type until the blaste class exist
+  this->setProjectileTypeC("HBolt");
   this->prepareProjectiles(5);
 
@@ -104,5 +105,4 @@
   this->setSegs(2);
   this->activeBarrel = 0;
-//   this->init2();
 
 
@@ -239,15 +239,15 @@
   glPushMatrix();
     glTranslatef (this->objComp[0][0]->getAbsCoor().x, this->objComp[0][0]->getAbsCoor().y, this->objComp[0][0]->getAbsCoor().z);
+    static_cast<StaticModel*>(this->getModel())->draw(2);
+  glPopMatrix();
+
+  glPushMatrix();
+    glTranslatef (this->objComp[1][0]->getAbsCoor().x, this->objComp[1][0]->getAbsCoor().y, this->objComp[1][0]->getAbsCoor().z);
+    static_cast<StaticModel*>(this->getModel())->draw(3);
+  glPopMatrix();
+
+  glPushMatrix();
+    glTranslatef (this->objComp[2][0]->getAbsCoor().x, this->objComp[2][0]->getAbsCoor().y, this->objComp[2][0]->getAbsCoor().z);
     static_cast<StaticModel*>(this->getModel())->draw(1);
-  glPopMatrix();
-
-  glPushMatrix();
-    glTranslatef (this->objComp[1][0]->getAbsCoor().x, this->objComp[1][0]->getAbsCoor().y, this->objComp[1][0]->getAbsCoor().z);
-    static_cast<StaticModel*>(this->getModel())->draw(2);
-  glPopMatrix();
-
-  glPushMatrix();
-    glTranslatef (this->objComp[2][0]->getAbsCoor().x, this->objComp[2][0]->getAbsCoor().y, this->objComp[2][0]->getAbsCoor().z);
-    static_cast<StaticModel*>(this->getModel())->draw(0);
   glPopMatrix();
 
@@ -264,7 +264,16 @@
   glPushMatrix();
     glTranslatef (this->objComp[2][1]->getAbsCoor().x, this->objComp[2][1]->getAbsCoor().y, this->objComp[2][1]->getAbsCoor().z);
-    static_cast<StaticModel*>(this->getModel())->draw(3);
-  glPopMatrix();
-
-  glPopMatrix();
-}
+    static_cast<StaticModel*>(this->getModel())->draw(0);
+  glPopMatrix();
+
+  glPopMatrix();
+}
+
+void HeavyBlaster::tick(float dt)
+{
+  if (this->energyWidget != NULL && !this->isEnergyWidgetInitialized)
+  {
+    this->energyWidget->setDisplayedImage("textures/gui/gui_heavy_bolt.png");
+    this->setEnergyWidgetInitialized(true);
+  }
+}
Index: trunk/src/world_entities/weapons/heavy_blaster.h
===================================================================
--- trunk/src/world_entities/weapons/heavy_blaster.h	(revision 10499)
+++ trunk/src/world_entities/weapons/heavy_blaster.h	(revision 10516)
@@ -29,4 +29,6 @@
     virtual void fire();
 
+    virtual void tick(float dt);
+
     virtual void draw() const;
 
Index: trunk/src/world_entities/weapons/light_blaster.cc
===================================================================
--- trunk/src/world_entities/weapons/light_blaster.cc	(revision 10499)
+++ trunk/src/world_entities/weapons/light_blaster.cc	(revision 10516)
@@ -10,4 +10,6 @@
 
 #include "loading/fast_factory.h"
+
+#include "elements/glgui_energywidgetvertical.h"
 
 CREATE_FACTORY(LightBlaster);
@@ -43,17 +45,5 @@
    delete [] this->shootAnim;
    delete [] this->objComp;
-/*
-    for(int j = 0; j < this->getSegs(); j++)
-    {
-      delete this->shootAnim[i][j];
-      delete this->objComp[i][j];
-    }
-    delete this->shootAnim[i];
-    delete this->objComp[i];
-    delete this->emissionPoint[i];
-  }*/
 
-//  this->deconstr();
-      // model will be deleted from WorldEntity-destructor
 }
 
@@ -79,11 +69,9 @@
 
   this->setActionSound(WA_SHOOT, "sounds/guns/laser.wav");
-  this->setActionSound(WA_ACTIVATE, "sounds/voices/lasers.wav");
+//   this->setActionSound(WA_ACTIVATE, "sounds/voices/lasers.wav");
   this->setActionSound(WA_RELOAD, "sounds/spawn/alien_generator.wav");
 
   this->setCapability(WTYPE_ALLDIRS | WTYPE_DIRECTIONAL | WTYPE_LIGHT);
-  //this->setProjectileTypeC("RailProjectile");   // FIXME temp project type until the blaste class exist
-  this->setProjectileTypeC("LBolt");   // Working; FIXME: add textures
-//   this->setProjectileTypeC("Spike");   // Working; FIXME: add textures
+  this->setProjectileTypeC("LBolt");
   this->prepareProjectiles(100);
 
@@ -137,5 +125,4 @@
 }
 
-
 void LightBlaster::fire()
 {
@@ -187,3 +174,13 @@
     static_cast<StaticModel*>(this->getModel())->draw();
   glPopMatrix();
+
 }
+
+void LightBlaster::tick(float dt)
+{
+  if (this->energyWidget != NULL && !this->isEnergyWidgetInitialized)
+  {
+    this->energyWidget->setDisplayedImage("textures/gui/gui_light_bolt.png");
+    this->setEnergyWidgetInitialized(true);
+  }
+}
Index: trunk/src/world_entities/weapons/light_blaster.h
===================================================================
--- trunk/src/world_entities/weapons/light_blaster.h	(revision 10499)
+++ trunk/src/world_entities/weapons/light_blaster.h	(revision 10516)
@@ -26,4 +26,6 @@
     virtual void fire();
 
+    virtual void tick(float dt);
+
     virtual void draw() const;
 
Index: trunk/src/world_entities/weapons/medium_blaster.cc
===================================================================
--- trunk/src/world_entities/weapons/medium_blaster.cc	(revision 10499)
+++ trunk/src/world_entities/weapons/medium_blaster.cc	(revision 10516)
@@ -10,4 +10,6 @@
 
 #include "loading/fast_factory.h"
+
+#include "elements/glgui_energywidgetvertical.h"
 
 //
@@ -138,4 +140,5 @@
 }
 
+
 /**
  *  this activates the weapon
@@ -158,5 +161,5 @@
   glTranslatef (this->getAbsCoor ().x, this->getAbsCoor ().y, this->getAbsCoor ().z);
 
-  static_cast<StaticModel*>(this->getModel())->draw(2);
+  static_cast<StaticModel*>(this->getModel())->draw(0);
 
   glPushMatrix();
@@ -167,7 +170,16 @@
   glPushMatrix();
     glTranslatef (this->objComp[0][1]->getAbsCoor().x, this->objComp[0][1]->getAbsCoor().y, this->objComp[0][1]->getAbsCoor().z);
-    static_cast<StaticModel*>(this->getModel())->draw(0);
+    static_cast<StaticModel*>(this->getModel())->draw(2);
   glPopMatrix();
 
   glPopMatrix();
 }
+
+void MediumBlaster::tick(float dt)
+{
+  if (this->energyWidget != NULL && !this->isEnergyWidgetInitialized)
+  {
+    this->energyWidget->setDisplayedImage("textures/gui/gui_medium_bold.png");
+    this->setEnergyWidgetInitialized(true);
+  }
+}
Index: trunk/src/world_entities/weapons/medium_blaster.h
===================================================================
--- trunk/src/world_entities/weapons/medium_blaster.h	(revision 10499)
+++ trunk/src/world_entities/weapons/medium_blaster.h	(revision 10516)
@@ -26,4 +26,6 @@
     virtual void fire();
 
+    virtual void tick(float dt);
+
     virtual void draw() const;
 
Index: trunk/src/world_entities/weapons/spike_thrower.cc
===================================================================
--- trunk/src/world_entities/weapons/spike_thrower.cc	(revision 10499)
+++ trunk/src/world_entities/weapons/spike_thrower.cc	(revision 10516)
@@ -34,4 +34,6 @@
 
 #include "util/loading/factory.h"
+
+#include "elements/glgui_energywidgetvertical.h"
 
 
@@ -125,4 +127,10 @@
 void SpikeThrower::tick(float dt)
 {
+  if (this->energyWidget != NULL && !this->isEnergyWidgetInitialized)
+  {
+    this->energyWidget->setDisplayedImage("textures/gui/gui_spikeball.png");
+    this->isEnergyWidgetInitialized = true;
+  }
+
   if (!Weapon::tickW(dt))
     return;
Index: trunk/src/world_entities/weapons/swarm_launcher.cc
===================================================================
--- trunk/src/world_entities/weapons/swarm_launcher.cc	(revision 10499)
+++ trunk/src/world_entities/weapons/swarm_launcher.cc	(revision 10516)
@@ -33,4 +33,6 @@
 
 #include "util/loading/factory.h"
+
+#include "elements/glgui_energywidgetvertical.h"
 
 
@@ -141,4 +143,10 @@
 
   this->setAbsDirSoft(quat, 5);
+
+  if (this->energyWidget != NULL && !this->isEnergyWidgetInitialized)
+  {
+    this->energyWidget->setDisplayedImage("textures/gui/gui_swarm_missiles.png");
+    this->setEnergyWidgetInitialized(true);
+  }
 }
 
Index: trunk/src/world_entities/weapons/weapon.cc
===================================================================
--- trunk/src/world_entities/weapons/weapon.cc	(revision 10499)
+++ trunk/src/world_entities/weapons/weapon.cc	(revision 10516)
@@ -154,4 +154,5 @@
 
   this->energyWidget = NULL;
+  isEnergyWidgetInitialized = false;
 
   // set this object to be synchronized over network
Index: trunk/src/world_entities/weapons/weapon.h
===================================================================
--- trunk/src/world_entities/weapons/weapon.h	(revision 10499)
+++ trunk/src/world_entities/weapons/weapon.h	(revision 10516)
@@ -190,4 +190,6 @@
     inline int getPreferedSlot() { return this->preferedSlot; }
 
+    inline void setEnergyWidgetInitialized(bool b) {this->isEnergyWidgetInitialized = b;};
+
 
   protected:
@@ -207,4 +209,8 @@
 
     void setPreferedSlot(int slot, int side) { this->preferedSlot = slot; this->preferedSide = side; }
+
+    //gui
+    OrxGui::GLGuiEnergyWidgetVertical* energyWidget;
+    bool  isEnergyWidgetInitialized;
 
 
@@ -238,5 +244,5 @@
     float                maxCharge;                        //!< The maximal energy to be loaded onto one projectile (this is only availible if chargeable is enabled)
 
-    OrxGui::GLGuiEnergyWidgetVertical* energyWidget;
+    //OrxGui::GLGuiEnergyWidgetVertical* energyWidget;
 
     PNode*               defaultTarget;                    //!< A target for targeting Weapons.
