Index: trunk/src/util/hud.cc
===================================================================
--- trunk/src/util/hud.cc	(revision 6669)
+++ trunk/src/util/hud.cc	(revision 6671)
@@ -126,7 +126,5 @@
     {
       weapon->getEnergyWidget()->show();
-      weapon->getLoadedEnergyWidget()->show();
       this->weaponsWidgets.push_back(weapon->getEnergyWidget());
-      this->weaponsWidgets.push_back(weapon->getLoadedEnergyWidget());
     }
   }
Index: trunk/src/world_entities/weapons/aiming_turret.cc
===================================================================
--- trunk/src/world_entities/weapons/aiming_turret.cc	(revision 6669)
+++ trunk/src/world_entities/weapons/aiming_turret.cc	(revision 6671)
@@ -86,5 +86,5 @@
   this->setStateDuration(WS_DEACTIVATING, .4);
 
-  this->setMaximumEnergy(10000, 50);
+  this->setEnergyMax(10000);
   this->increaseEnergy(100000);
 
Index: trunk/src/world_entities/weapons/ammo_container.h
===================================================================
--- trunk/src/world_entities/weapons/ammo_container.h	(revision 6669)
+++ trunk/src/world_entities/weapons/ammo_container.h	(revision 6671)
@@ -28,4 +28,5 @@
   float decreaseEnergy(float energy);
 
+  float getStoredEnergy() const { return this->energy; };
   float getMaxEnergy() const { return this->maxEnergy; };
 
Index: trunk/src/world_entities/weapons/cannon.cc
===================================================================
--- trunk/src/world_entities/weapons/cannon.cc	(revision 6669)
+++ trunk/src/world_entities/weapons/cannon.cc	(revision 6671)
@@ -81,5 +81,5 @@
   this->setStateDuration(WS_DEACTIVATING, .4);
 
-  this->setMaximumEnergy(100, 20);
+  this->setEnergyMax(100);
   this->increaseEnergy(100);
   //this->minCharge = 2;
Index: trunk/src/world_entities/weapons/targeting_turret.cc
===================================================================
--- trunk/src/world_entities/weapons/targeting_turret.cc	(revision 6669)
+++ trunk/src/world_entities/weapons/targeting_turret.cc	(revision 6671)
@@ -80,5 +80,5 @@
   this->setStateDuration(WS_DEACTIVATING, .4);
 
-  this->setMaximumEnergy(10000, 50);
+  this->setEnergyMax(10000);
   this->increaseEnergy(100000);
 
Index: trunk/src/world_entities/weapons/test_gun.cc
===================================================================
--- trunk/src/world_entities/weapons/test_gun.cc	(revision 6669)
+++ trunk/src/world_entities/weapons/test_gun.cc	(revision 6671)
@@ -122,5 +122,5 @@
   this->setStateDuration(WS_DEACTIVATING, .4);
 
-  this->setMaximumEnergy(1000, 100);
+  this->setEnergyMax(1000);
   this->increaseEnergy(1000);
   //this->minCharge = 2;
Index: trunk/src/world_entities/weapons/turret.cc
===================================================================
--- trunk/src/world_entities/weapons/turret.cc	(revision 6669)
+++ trunk/src/world_entities/weapons/turret.cc	(revision 6671)
@@ -86,5 +86,5 @@
   this->setStateDuration(WS_DEACTIVATING, .4);
 
-  this->setMaximumEnergy(100, 5);
+  this->setEnergyMax(100);
   this->increaseEnergy(100);
   //this->minCharge = 2;
Index: trunk/src/world_entities/weapons/weapon.cc
===================================================================
--- trunk/src/world_entities/weapons/weapon.cc	(revision 6669)
+++ trunk/src/world_entities/weapons/weapon.cc	(revision 6671)
@@ -95,12 +95,9 @@
   this->maxCharge = 1.0;                           //< The maximum charge is also one unit.
 
-  this->energyLoaded = .0;                         //< How much energy is loaded in the Gun. (Weapons must be charged befor usage)
-  this->energyLoadedMax = 5.0;                     //< Each Weapon has a Maximum energy that can be charged onto it
-  this->energy = .0;                               //< The secondary Buffer (before we have to reload)
+  this->energy = 10;                               //< The secondary Buffer (before we have to reload)
   this->energyMax = 10.0;                          //< How much energy can be carried
   this->capability = WTYPE_ALL;                    //< The Weapon has all capabilities @see W_Capability.
 
   this->energyWidget = NULL;
-  this->energyLoadedWidget = NULL;
 }
 
@@ -288,18 +285,4 @@
 }
 
-
-GLGuiWidget* Weapon::getLoadedEnergyWidget()
-{
-  if (this->energyLoadedWidget == NULL)
-  {
-    this->energyLoadedWidget = new GLGuiBar;
-    //this->energyLoadedWidget->setParent2D(this->bar);
-    this->energyLoadedWidget->setRelCoor2D(20,0);
-    this->energyLoadedWidget->setSize2D(10,50);
-    this->energyLoadedWidget->setMaximum(this->getLoadedEnergyMax());
-  }
-  return this->energyLoadedWidget;
-}
-
 void Weapon::updateWidgets()
 {
@@ -308,9 +291,4 @@
     this->energyWidget->setMaximum(this->energyMax);
     this->energyWidget->setValue(this->energy);
-  }
-  if (this->energyLoadedWidget != NULL)
-  {
-    this->energyLoadedWidget->setMaximum(this->energyLoadedMax);
-    this->energyLoadedWidget->setValue(this->energyLoaded);
   }
 }
@@ -392,19 +370,19 @@
   switch (action)
   {
-    case WA_SHOOT:
-      return this->fireW();
-      break;
-    case WA_CHARGE:
-      return this->chargeW();
-      break;
-    case WA_RELOAD:
-      return this->reloadW();
-      break;
-    case WA_DEACTIVATE:
-      return this->deactivateW();
-      break;
-    case WA_ACTIVATE:
-      return this->activateW();
-      break;
+  case WA_SHOOT:
+    return this->fireW();
+    break;
+  case WA_CHARGE:
+    return this->chargeW();
+    break;
+  case WA_RELOAD:
+    return this->reloadW();
+    break;
+  case WA_DEACTIVATE:
+    return this->deactivateW();
+    break;
+  case WA_ACTIVATE:
+    return this->activateW();
+    break;
   }
 }
@@ -454,5 +432,5 @@
 bool Weapon::chargeW()
 {
-  if ( this->currentState != WS_INACTIVE && this->energyLoaded >= this->minCharge)
+  if ( this->currentState != WS_INACTIVE && this->energy >= this->minCharge)
   {
     // playing Sound
@@ -478,5 +456,5 @@
 {
   //if (likely(this->currentState != WS_INACTIVE))
-  if (this->minCharge <= this->energyLoaded)
+  if (this->minCharge <= this->energy)
   {
     // playing Sound
@@ -485,5 +463,5 @@
     this->updateWidgets();
     // fire
-    this->energyLoaded -= this->minCharge;
+    this->energy -= this->minCharge;
     this->fire();
     // setting up for the next state
@@ -504,5 +482,6 @@
 {
   PRINTF(4)("Reloading Weapon %s\n", this->getName());
-  if (unlikely(this->energy + this->energyLoaded < this->minCharge))
+  if (this->ammoContainer.get() != NULL &&
+        unlikely(this->energy + this->ammoContainer->getStoredEnergy() < this->minCharge))
   {
     this->requestAction(WA_DEACTIVATE);
@@ -511,22 +490,14 @@
   }
 
-  float chargeSize = this->energyLoadedMax - this->energyLoaded;       //!< The energy to be charged
 
   if (this->soundBuffers[WA_RELOAD] != NULL)
     this->soundSource->play(this->soundBuffers[WA_RELOAD]);
 
-  if (chargeSize > this->energy)
-  {
-    this->energyLoaded += this->energy;
-    this->energy = 0.0;
-    PRINT(5)("Energy depleted\n");
-  }
-  else
-  {
-    PRINTF(5)("Loaded %f energy into the Guns Buffer\n", chargeSize);
-    this->energyLoaded += chargeSize;
-    this->energy -= chargeSize;
-  }
-
+  if (this->ammoContainer.get() != NULL)
+    this->ammoContainer->fillWeapon(this);
+  else
+  {
+    this->energy = this->energyMax;
+  }
   this->updateWidgets();
   this->reload();
@@ -614,6 +585,6 @@
 {
   PRINT(0)("Weapon-Debug %s, state: %s (duration: %fs), nextAction: %s\n", this->getName(), Weapon::stateToChar(this->currentState), this->stateDuration, Weapon::actionToChar(requestedAction));
-  PRINT(0)("Energy: max: %f; current: %f;  loadedMax: %f; loadedCurrent: %f; chargeMin: %f, chargeMax %f\n",
-           this->energyMax, this->energy, this->energyLoadedMax, this->energyLoaded, this->minCharge, this->maxCharge);
+  PRINT(0)("Energy: max: %f; current: %f; chargeMin: %f, chargeMax %f\n",
+           this->energyMax, this->energy, this->minCharge, this->maxCharge);
 
 
@@ -660,25 +631,25 @@
   switch (action)
   {
-    case WA_SHOOT:
-      return "shoot";
-      break;
-    case WA_CHARGE:
-      return "charge";
-      break;
-    case WA_RELOAD:
-      return "reload";
-      break;
-    case WA_ACTIVATE:
-      return "activate";
-      break;
-    case WA_DEACTIVATE:
-      return "deactivate";
-      break;
-    case WA_SPECIAL1:
-      return "special1";
-      break;
-    default:
-      return "none";
-      break;
+  case WA_SHOOT:
+    return "shoot";
+    break;
+  case WA_CHARGE:
+    return "charge";
+    break;
+  case WA_RELOAD:
+    return "reload";
+    break;
+  case WA_ACTIVATE:
+    return "activate";
+    break;
+  case WA_DEACTIVATE:
+    return "deactivate";
+    break;
+  case WA_SPECIAL1:
+    return "special1";
+    break;
+  default:
+    return "none";
+    break;
   }
 }
@@ -723,28 +694,28 @@
   switch (state)
   {
-    case WS_SHOOTING:
-      return "shooting";
-      break;
-    case WS_CHARGING:
-      return "charging";
-      break;
-    case WS_RELOADING:
-      return "reloading";
-      break;
-    case WS_ACTIVATING:
-      return "activating";
-      break;
-    case WS_DEACTIVATING:
-      return "deactivating";
-      break;
-    case WS_IDLE:
-      return "idle";
-      break;
-    case WS_INACTIVE:
-      return "inactive";
-      break;
-    default:
-      return "none";
-      break;
-  }
-}
+  case WS_SHOOTING:
+    return "shooting";
+    break;
+  case WS_CHARGING:
+    return "charging";
+    break;
+  case WS_RELOADING:
+    return "reloading";
+    break;
+  case WS_ACTIVATING:
+    return "activating";
+    break;
+  case WS_DEACTIVATING:
+    return "deactivating";
+    break;
+  case WS_IDLE:
+    return "idle";
+    break;
+  case WS_INACTIVE:
+    return "inactive";
+    break;
+  default:
+    return "none";
+    break;
+  }
+}
Index: trunk/src/world_entities/weapons/weapon.h
===================================================================
--- trunk/src/world_entities/weapons/weapon.h	(revision 6669)
+++ trunk/src/world_entities/weapons/weapon.h	(revision 6671)
@@ -137,11 +137,9 @@
     inline WeaponState getCurrentState() const { return this->currentState; };
 
-    /** @param energyMax the maximum energy the Weapon can have @param energyLoadedMax the maximum energy in the weapon buffers */
-    inline void setMaximumEnergy(float energyMax, float energyLoadedMax) { this->energyMax = energyMax; this->energyLoadedMax = energyLoadedMax; };
-    inline float getLoadedEnergyMax() const { return this->energyLoadedMax; };
+    /** @param energyMax the maximum energy the Weapon can have */
+    inline void setEnergyMax(float energyMax) { this->energyMax = energyMax; };
+    inline float getEnergy() const { return this->energy; };
     inline float getEnergyMax() const { return this->energyMax; };
     inline void setAmmoContainer(const CountPointer<AmmoContainer>& ammoContainer) { this->ammoContainer = ammoContainer;}
-    inline float getEnergy() const { return this->energy; };
-    inline float getLoadedEnergy() const { return this->energyLoaded; };
 
     void setActionSound(WeaponAction action, const char* soundFile);
@@ -153,5 +151,4 @@
 
     GLGuiWidget* getEnergyWidget();
-    GLGuiWidget* getLoadedEnergyWidget();
 
     // FLOW
@@ -201,9 +198,7 @@
 
     // it is all about energy
-    float                energy;                           //!< The energy stored in the weapons secondary buffers (reserve)
-    float                energyLoaded;                     //!< The energy stored in the weapons primary buffers (fire without reload)
+    float                energy;                           //!< The energy stored in the weapons buffers
+    float                energyMax;                        //!< The maximal energy that can be stored in the secondary buffers (reserveMax)
     CountPointer<AmmoContainer> ammoContainer;             //!< Pointer to the AmmoContainer this weapon grabs Energy from.
-    float                energyMax;                        //!< The maximal energy that can be stored in the secondary buffers (reserveMax)
-    float                energyLoadedMax;                  //!< The maximal energy that can be stored in the primary buffers
     //! @todo move this to projectile
     float                minCharge;                        //!< The minimal energy to be loaded onto one projectile if chargeable otherwise the power consumed by one projectile
@@ -211,5 +206,4 @@
 
     GLGuiBar*            energyWidget;
-    GLGuiBar*            energyLoadedWidget;
 
     ////////////
