Index: /trunk/src/story_entities/multi_player_world_data.cc
===================================================================
--- /trunk/src/story_entities/multi_player_world_data.cc	(revision 7336)
+++ /trunk/src/story_entities/multi_player_world_data.cc	(revision 7337)
@@ -213,5 +213,5 @@
         playable->toList(OM_GROUP_00);
         playable->setAbsCoor(213.37, 57.71, -47.98);
-        playable->setAbsDirPlay(Quaternion(M_PI, Vector(0.0, 1.0, 0.0)));
+        playable->setStartDirection(Quaternion(M_PI, Vector(0.0, 1.0, 0.0)));
       }
     }
Index: /trunk/src/world_entities/creatures/md2_creature.cc
===================================================================
--- /trunk/src/world_entities/creatures/md2_creature.cc	(revision 7336)
+++ /trunk/src/world_entities/creatures/md2_creature.cc	(revision 7337)
@@ -88,11 +88,11 @@
   cannon->setName("BFG");
 
-   this->getWeaponManager()->addWeapon(wpLeft, 1, 0);
-   this->getWeaponManager()->addWeapon(wpRight,1 ,1);
-//   this->getWeaponManager()->addWeapon(cannon, 0, 6);
-
-  //this->getWeaponManager()->addWeapon(turret, 3, 0);
-
-  this->getWeaponManager()->changeWeaponConfig(0);
+   this->getWeaponManager().addWeapon(wpLeft, 1, 0);
+   this->getWeaponManager().addWeapon(wpRight,1 ,1);
+//   this->getWeaponManager().addWeapon(cannon, 0, 6);
+
+  //this->getWeaponManager().addWeapon(turret, 3, 0);
+
+  this->getWeaponManager().changeWeaponConfig(0);
 }
 
@@ -147,32 +147,32 @@
 
 
-  this->getWeaponManager()->setSlotCount(7);
-
-  this->getWeaponManager()->setSlotPosition(0, Vector(-0.5, .2, -1.9));
-  this->getWeaponManager()->setSlotCapability(0, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
-
-  this->getWeaponManager()->setSlotPosition(1, Vector(-0.5, .2, 1.9));
-  this->getWeaponManager()->setSlotCapability(1, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
-
-  this->getWeaponManager()->setSlotPosition(2, Vector(-1.5, .5, -.5));
-  this->getWeaponManager()->setSlotDirection(2, Quaternion(-M_PI_4*.5, Vector(1,0,0)));
-
-  this->getWeaponManager()->setSlotPosition(3, Vector(-1.5, .5, .5));
-  this->getWeaponManager()->setSlotDirection(3, Quaternion(M_PI_4*.5, Vector(1,0,0)));
-
-  this->getWeaponManager()->setSlotPosition(4, Vector(-1.5, -.5, .5));
-  this->getWeaponManager()->setSlotDirection(4, Quaternion(-M_PI_4*.5+M_PI, Vector(1,0,0)));
-
-  this->getWeaponManager()->setSlotPosition(5, Vector(-1.5, -.5, -.5));
-  this->getWeaponManager()->setSlotDirection(5, Quaternion(+M_PI_4*.5-M_PI, Vector(1,0,0)));
+  this->getWeaponManager().setSlotCount(7);
+
+  this->getWeaponManager().setSlotPosition(0, Vector(-0.5, .2, -1.9));
+  this->getWeaponManager().setSlotCapability(0, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
+
+  this->getWeaponManager().setSlotPosition(1, Vector(-0.5, .2, 1.9));
+  this->getWeaponManager().setSlotCapability(1, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
+
+  this->getWeaponManager().setSlotPosition(2, Vector(-1.5, .5, -.5));
+  this->getWeaponManager().setSlotDirection(2, Quaternion(-M_PI_4*.5, Vector(1,0,0)));
+
+  this->getWeaponManager().setSlotPosition(3, Vector(-1.5, .5, .5));
+  this->getWeaponManager().setSlotDirection(3, Quaternion(M_PI_4*.5, Vector(1,0,0)));
+
+  this->getWeaponManager().setSlotPosition(4, Vector(-1.5, -.5, .5));
+  this->getWeaponManager().setSlotDirection(4, Quaternion(-M_PI_4*.5+M_PI, Vector(1,0,0)));
+
+  this->getWeaponManager().setSlotPosition(5, Vector(-1.5, -.5, -.5));
+  this->getWeaponManager().setSlotDirection(5, Quaternion(+M_PI_4*.5-M_PI, Vector(1,0,0)));
 //
-   this->getWeaponManager()->setSlotPosition(6, Vector(-1, 0.0, 0));
-   this->getWeaponManager()->setSlotCapability(6, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
+   this->getWeaponManager().setSlotPosition(6, Vector(-1, 0.0, 0));
+   this->getWeaponManager().setSlotCapability(6, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
    //
 
-   this->cameraConnNode.addChild(this->getWeaponManager()->getFixedTarget());
-  dynamic_cast<Element2D*>(this->getWeaponManager()->getFixedTarget())->setVisibility( false);
-
-  this->getWeaponManager()->getFixedTarget()->setRelCoor(10,0,0);
+   this->cameraConnNode.addChild(this->getWeaponManager().getFixedTarget());
+  dynamic_cast<Element2D*>(this->getWeaponManager().getFixedTarget())->setVisibility( false);
+
+  this->getWeaponManager().getFixedTarget()->setRelCoor(10,0,0);
 
 }
@@ -181,5 +181,5 @@
 void MD2Creature::enter()
 {
-  dynamic_cast<Element2D*>(this->getWeaponManager()->getFixedTarget())->setVisibility( true);
+  dynamic_cast<Element2D*>(this->getWeaponManager().getFixedTarget())->setVisibility( true);
   this->attachCamera();
 
@@ -188,5 +188,5 @@
 void MD2Creature::leave()
 {
-  dynamic_cast<Element2D*>(this->getWeaponManager()->getFixedTarget())->setVisibility( false);
+  dynamic_cast<Element2D*>(this->getWeaponManager().getFixedTarget())->setVisibility( false);
 
 
Index: /trunk/src/world_entities/creatures/md2_creature.h
===================================================================
--- /trunk/src/world_entities/creatures/md2_creature.h	(revision 7336)
+++ /trunk/src/world_entities/creatures/md2_creature.h	(revision 7337)
@@ -24,5 +24,5 @@
 
     virtual void loadParams(const TiXmlElement* root);
-    virtual void setAbsDirPlay(const Quaternion& rot) {/* FIXME */};
+    virtual void setStartDirection(const Quaternion& rot) {/* FIXME */};
 
     virtual void enter();
Index: /trunk/src/world_entities/playable.cc
===================================================================
--- /trunk/src/world_entities/playable.cc	(revision 7336)
+++ /trunk/src/world_entities/playable.cc	(revision 7337)
@@ -39,4 +39,5 @@
 
 Playable::Playable()
+  : weaponMan(this)
 {
   this->setClassID(CL_PLAYABLE, "Playable");
@@ -44,5 +45,4 @@
 
   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.
@@ -64,6 +64,4 @@
 Playable::~Playable()
 {
-  delete this->weaponMan;
-
   // THE DERIVED CLASS MUST UNSUBSCRIBE THE PLAYER THROUGH
   // this->setPlayer(NULL);
@@ -77,10 +75,10 @@
   WorldEntity::loadParams(root);
 
-  LoadParam(root, "abs-dir", this, Playable, setAbsDirPlay);
+  LoadParam(root, "abs-dir", this, Playable, setStartDirection);
 }
 
 void Playable::addWeapon(Weapon* weapon, int configID, int slotID)
 {
-  this->weaponMan->addWeapon(weapon, configID, slotID);
+  this->weaponMan.addWeapon(weapon, configID, slotID);
 
   this->weaponConfigChanged();
@@ -90,5 +88,5 @@
 void Playable::removeWeapon(Weapon* weapon)
 {
-  this->weaponMan->removeWeapon(weapon);
+  this->weaponMan.removeWeapon(weapon);
 
     this->weaponConfigChanged();
@@ -98,5 +96,5 @@
 void Playable::nextWeaponConfig()
 {
-  this->weaponMan->nextWeaponConfig();
+  this->weaponMan.nextWeaponConfig();
     this->weaponConfigChanged();
 }
@@ -105,5 +103,5 @@
 void Playable::previousWeaponConfig()
 {
-  this->weaponMan->previousWeaponConfig();
+  this->weaponMan.previousWeaponConfig();
     this->weaponConfigChanged();
 }
@@ -259,5 +257,5 @@
 {
   if(powerUp->isA(CL_WEAPON_POWER_UP)) {
-    return dynamic_cast<WeaponPowerUp*>(powerUp)->process(this->getWeaponManager());
+    return dynamic_cast<WeaponPowerUp*>(powerUp)->process(&this->getWeaponManager());
   }
   else if(powerUp->isA(CL_PARAM_POWER_UP)) {
@@ -305,7 +303,7 @@
 void Playable::tick(float dt)
 {
-  this->weaponMan->tick(dt);
+  this->weaponMan.tick(dt);
   if (this->bFire)
-    weaponMan->fire();
+    weaponMan.fire();
 }
 
Index: /trunk/src/world_entities/playable.h
===================================================================
--- /trunk/src/world_entities/playable.h	(revision 7336)
+++ /trunk/src/world_entities/playable.h	(revision 7337)
@@ -41,5 +41,5 @@
     void previousWeaponConfig();
 
-    inline WeaponManager* getWeaponManager() const { return this->weaponMan; };
+    inline WeaponManager& getWeaponManager() { return this->weaponMan; };
     void weaponConfigChanged();
 
@@ -65,6 +65,7 @@
 
 
-    virtual void setAbsDirPlay(const Quaternion& rot) = 0;
-    void setAbsDirPlay(float angle, float dirX, float dirY, float dirZ) { this->setAbsDirPlay(Quaternion(angle, Vector(dirX, dirY, dirZ))); }
+    //
+    virtual void setStartDirection(const Quaternion& rot) = 0;
+    void setStartDirection(float angle, float dirX, float dirY, float dirZ) { this->setStartDirection(Quaternion(angle, Vector(dirX, dirY, dirZ))); }
 
     inline void setScore( int score ) { this->score = score; }
@@ -81,5 +82,5 @@
 
   private:
-    WeaponManager*        weaponMan;          //!< the weapon manager: managing a list of weapon to wepaon-slot mapping
+    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 7336)
+++ /trunk/src/world_entities/player.cc	(revision 7337)
@@ -76,5 +76,5 @@
       this->playable = playable;
       this->hud.setEnergyWidget(this->playable->getHealthWidget());
-      this->hud.setWeaponManager(this->playable->getWeaponManager());
+      this->hud.setWeaponManager(&this->playable->getWeaponManager());
 
       this->playable->setPlayer(this);
Index: /trunk/src/world_entities/space_ships/helicopter.cc
===================================================================
--- /trunk/src/world_entities/space_ships/helicopter.cc	(revision 7336)
+++ /trunk/src/world_entities/space_ships/helicopter.cc	(revision 7337)
@@ -94,6 +94,6 @@
   this->addWeapon(cannon, 0, 6);
 
-  this->getWeaponManager()->changeWeaponConfig(1);
-  dynamic_cast<Element2D*>(this->getWeaponManager()->getFixedTarget())->setVisibility( false);
+  this->getWeaponManager().changeWeaponConfig(1);
+  dynamic_cast<Element2D*>(this->getWeaponManager().getFixedTarget())->setVisibility( false);
 }
 
@@ -161,31 +161,31 @@
   registerEvent(EV_MOUSE_MOTION);
 
-  this->getWeaponManager()->setSlotCount(7);
-
-  this->getWeaponManager()->setSlotPosition(0, Vector(0.0, .1, -1.0));
-  this->getWeaponManager()->setSlotCapability(0, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
-
-  this->getWeaponManager()->setSlotPosition(1, Vector(0.0, .1, 1.0));
-  this->getWeaponManager()->setSlotCapability(1, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
-
-  this->getWeaponManager()->setSlotPosition(2, Vector(-1.5, .5, -.5));
-  this->getWeaponManager()->setSlotDirection(2, Quaternion(-M_PI_4*.5, Vector(1,0,0)));
-
-  this->getWeaponManager()->setSlotPosition(3, Vector(-1.5, .5, .5));
-  this->getWeaponManager()->setSlotDirection(3, Quaternion(M_PI_4*.5, Vector(1,0,0)));
-
-  this->getWeaponManager()->setSlotPosition(4, Vector(-1.5, -.5, .5));
-  this->getWeaponManager()->setSlotDirection(4, Quaternion(-M_PI_4*.5+M_PI, Vector(1,0,0)));
-
-  this->getWeaponManager()->setSlotPosition(5, Vector(-1.5, -.5, -.5));
-  this->getWeaponManager()->setSlotDirection(5, Quaternion(+M_PI_4*.5-M_PI, Vector(1,0,0)));
-
-  this->getWeaponManager()->setSlotPosition(6, Vector(-1, 0.0, 0));
-  this->getWeaponManager()->setSlotCapability(6, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
-
-  this->getWeaponManager()->getFixedTarget()->setParent(&(this->cameraNode));
-  this->getWeaponManager()->getFixedTarget()->setRelCoor(0,0,0);
-
-  dynamic_cast<Element2D*>(this->getWeaponManager()->getFixedTarget())->setVisibility( false);
+  this->getWeaponManager().setSlotCount(7);
+
+  this->getWeaponManager().setSlotPosition(0, Vector(0.0, .1, -1.0));
+  this->getWeaponManager().setSlotCapability(0, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
+
+  this->getWeaponManager().setSlotPosition(1, Vector(0.0, .1, 1.0));
+  this->getWeaponManager().setSlotCapability(1, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
+
+  this->getWeaponManager().setSlotPosition(2, Vector(-1.5, .5, -.5));
+  this->getWeaponManager().setSlotDirection(2, Quaternion(-M_PI_4*.5, Vector(1,0,0)));
+
+  this->getWeaponManager().setSlotPosition(3, Vector(-1.5, .5, .5));
+  this->getWeaponManager().setSlotDirection(3, Quaternion(M_PI_4*.5, Vector(1,0,0)));
+
+  this->getWeaponManager().setSlotPosition(4, Vector(-1.5, -.5, .5));
+  this->getWeaponManager().setSlotDirection(4, Quaternion(-M_PI_4*.5+M_PI, Vector(1,0,0)));
+
+  this->getWeaponManager().setSlotPosition(5, Vector(-1.5, -.5, -.5));
+  this->getWeaponManager().setSlotDirection(5, Quaternion(+M_PI_4*.5-M_PI, Vector(1,0,0)));
+
+  this->getWeaponManager().setSlotPosition(6, Vector(-1, 0.0, 0));
+  this->getWeaponManager().setSlotCapability(6, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
+
+  this->getWeaponManager().getFixedTarget()->setParent(&(this->cameraNode));
+  this->getWeaponManager().getFixedTarget()->setRelCoor(0,0,0);
+
+  dynamic_cast<Element2D*>(this->getWeaponManager().getFixedTarget())->setVisibility( false);
 
 }
@@ -202,12 +202,12 @@
 void Helicopter::enter()
 {
-  dynamic_cast<Element2D*>(this->getWeaponManager()->getFixedTarget())->setVisibility( true);
-  State::getCameraNode()->setParentSoft(this->getWeaponManager()->getFixedTarget());
-  State::getCameraTargetNode()->setParentSoft(this->getWeaponManager()->getFixedTarget());
+  dynamic_cast<Element2D*>(this->getWeaponManager().getFixedTarget())->setVisibility( true);
+  State::getCameraNode()->setParentSoft(this->getWeaponManager().getFixedTarget());
+  State::getCameraTargetNode()->setParentSoft(this->getWeaponManager().getFixedTarget());
 }
 
 void Helicopter::leave()
 {
-  dynamic_cast<Element2D*>(this->getWeaponManager()->getFixedTarget())->setVisibility( false);
+  dynamic_cast<Element2D*>(this->getWeaponManager().getFixedTarget())->setVisibility( false);
   this->detachCamera();
 
Index: /trunk/src/world_entities/space_ships/helicopter.h
===================================================================
--- /trunk/src/world_entities/space_ships/helicopter.h	(revision 7336)
+++ /trunk/src/world_entities/space_ships/helicopter.h	(revision 7337)
@@ -22,5 +22,5 @@
 
     virtual void loadParams(const TiXmlElement* root);
-    virtual void setAbsDirPlay(const Quaternion& rot){/* FIXME */};
+    virtual void setStartDirection(const Quaternion& rot){/* FIXME */};
 
     virtual void enter();
Index: /trunk/src/world_entities/space_ships/hover.cc
===================================================================
--- /trunk/src/world_entities/space_ships/hover.cc	(revision 7336)
+++ /trunk/src/world_entities/space_ships/hover.cc	(revision 7337)
@@ -86,6 +86,6 @@
   this->addWeapon(cannon, 0, 2);
 
-  this->getWeaponManager()->changeWeaponConfig(1);
-  dynamic_cast<Element2D*>(this->getWeaponManager()->getFixedTarget())->setVisibility( false);
+  this->getWeaponManager().changeWeaponConfig(1);
+  dynamic_cast<Element2D*>(this->getWeaponManager().getFixedTarget())->setVisibility( false);
 
   this->loadModel("models/ships/hoverglider_mainbody.obj");
@@ -138,5 +138,5 @@
   this->rotorNodeRight.setRelCoor(0, 1.0, 2.3);
 
-  dynamic_cast<Element2D*>(this->getWeaponManager()->getFixedTarget())->setVisibility( false);
+  dynamic_cast<Element2D*>(this->getWeaponManager().getFixedTarget())->setVisibility( false);
 
 
@@ -155,25 +155,25 @@
 
   // WEAPON_MANAGER configuration
-  this->getWeaponManager()->setSlotCount(5);
-
-  this->getWeaponManager()->setSlotPosition(0, Vector(-0.28, 1.186, -2.750), &this->wingNodeLeft);
-  this->getWeaponManager()->setSlotCapability(0, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
-
-  this->getWeaponManager()->setSlotPosition(1, Vector(-0.28, 1.186, 2.750), &this->wingNodeRight);
-  this->getWeaponManager()->setSlotCapability(1, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
-
-  this->getWeaponManager()->setSlotPosition(2, Vector(-1.63, .809, -.003));
-  this->getWeaponManager()->setSlotCapability(2, WTYPE_HEAVY);
+  this->getWeaponManager().setSlotCount(5);
+
+  this->getWeaponManager().setSlotPosition(0, Vector(-0.28, 1.186, -2.750), &this->wingNodeLeft);
+  this->getWeaponManager().setSlotCapability(0, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
+
+  this->getWeaponManager().setSlotPosition(1, Vector(-0.28, 1.186, 2.750), &this->wingNodeRight);
+  this->getWeaponManager().setSlotCapability(1, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
+
+  this->getWeaponManager().setSlotPosition(2, Vector(-1.63, .809, -.003));
+  this->getWeaponManager().setSlotCapability(2, WTYPE_HEAVY);
 
   /// TODO: THESE ARE TOO MUCH
-  this->getWeaponManager()->setSlotPosition(3, Vector(-1.63, .678, -.652));
-  this->getWeaponManager()->setSlotDirection(3, Quaternion(-24/180 * M_PI, Vector(1,0,0)));
-
-  this->getWeaponManager()->setSlotPosition(4, Vector(-1.63, .678, .652));
-  this->getWeaponManager()->setSlotDirection(4, Quaternion(24/180 * M_PI, Vector(1,0,0)));
+  this->getWeaponManager().setSlotPosition(3, Vector(-1.63, .678, -.652));
+  this->getWeaponManager().setSlotDirection(3, Quaternion(-24/180 * M_PI, Vector(1,0,0)));
+
+  this->getWeaponManager().setSlotPosition(4, Vector(-1.63, .678, .652));
+  this->getWeaponManager().setSlotDirection(4, Quaternion(24/180 * M_PI, Vector(1,0,0)));
 
   this->cameraNode.setRelCoor(1,5,0);
-  this->getWeaponManager()->getFixedTarget()->setParent(&this->cameraNode);
-  this->getWeaponManager()->getFixedTarget()->setRelCoor(1000,0,0);
+  this->getWeaponManager().getFixedTarget()->setParent(&this->cameraNode);
+  this->getWeaponManager().getFixedTarget()->setRelCoor(1000,0,0);
 }
 
@@ -190,5 +190,5 @@
 void Hover::enter()
 {
-  dynamic_cast<Element2D*>(this->getWeaponManager()->getFixedTarget())->setVisibility( true);
+  dynamic_cast<Element2D*>(this->getWeaponManager().getFixedTarget())->setVisibility( true);
 
   State::getCameraNode()->setParentSoft(&this->cameraNode);
@@ -199,5 +199,5 @@
 void Hover::leave()
 {
-  dynamic_cast<Element2D*>(this->getWeaponManager()->getFixedTarget())->setVisibility( false);
+  dynamic_cast<Element2D*>(this->getWeaponManager().getFixedTarget())->setVisibility( false);
   this->detachCamera();
 
Index: /trunk/src/world_entities/space_ships/hover.h
===================================================================
--- /trunk/src/world_entities/space_ships/hover.h	(revision 7336)
+++ /trunk/src/world_entities/space_ships/hover.h	(revision 7337)
@@ -19,5 +19,5 @@
 
     virtual void loadParams(const TiXmlElement* root);
-    virtual void setAbsDirPlay(const Quaternion& rot) {/* FIXME */};
+    virtual void setStartDirection(const Quaternion& rot) {/* FIXME */};
 
     virtual void enter();
Index: /trunk/src/world_entities/space_ships/space_ship.cc
===================================================================
--- /trunk/src/world_entities/space_ships/space_ship.cc	(revision 7336)
+++ /trunk/src/world_entities/space_ships/space_ship.cc	(revision 7337)
@@ -136,5 +136,5 @@
   //this->addWeapon(cannon, 0, 6);
 
-  this->getWeaponManager()->changeWeaponConfig(1);
+  this->getWeaponManager().changeWeaponConfig(1);
 
   bUp = bDown = bLeft = bRight = bAscend = bDescend = bRollL = bRollR = false;
@@ -183,37 +183,37 @@
   registerEvent(EV_MOUSE_MOTION);
 
-  this->getWeaponManager()->setSlotCount(7);
-
-  this->getWeaponManager()->setSlotPosition(0, Vector(-2.6, .1, -3.0));
-  this->getWeaponManager()->setSlotCapability(0, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
-
-  this->getWeaponManager()->setSlotPosition(1, Vector(-2.6, .1, 3.0));
-  this->getWeaponManager()->setSlotCapability(1, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
-
-  this->getWeaponManager()->setSlotPosition(2, Vector(-1.5, .5, -.5));
-  this->getWeaponManager()->setSlotDirection(2, Quaternion(-M_PI_4*.5, Vector(1,0,0)));
-
-  this->getWeaponManager()->setSlotPosition(3, Vector(-1.5, .5, .5));
-  this->getWeaponManager()->setSlotDirection(3, Quaternion(M_PI_4*.5, Vector(1,0,0)));
-
-  this->getWeaponManager()->setSlotPosition(4, Vector(-1.5, -.5, .5));
-  this->getWeaponManager()->setSlotDirection(4, Quaternion(-M_PI_4*.5+M_PI, Vector(1,0,0)));
-
-  this->getWeaponManager()->setSlotPosition(5, Vector(-1.5, -.5, -.5));
-  this->getWeaponManager()->setSlotDirection(5, Quaternion(+M_PI_4*.5-M_PI, Vector(1,0,0)));
+  this->getWeaponManager().setSlotCount(7);
+
+  this->getWeaponManager().setSlotPosition(0, Vector(-2.6, .1, -3.0));
+  this->getWeaponManager().setSlotCapability(0, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
+
+  this->getWeaponManager().setSlotPosition(1, Vector(-2.6, .1, 3.0));
+  this->getWeaponManager().setSlotCapability(1, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
+
+  this->getWeaponManager().setSlotPosition(2, Vector(-1.5, .5, -.5));
+  this->getWeaponManager().setSlotDirection(2, Quaternion(-M_PI_4*.5, Vector(1,0,0)));
+
+  this->getWeaponManager().setSlotPosition(3, Vector(-1.5, .5, .5));
+  this->getWeaponManager().setSlotDirection(3, Quaternion(M_PI_4*.5, Vector(1,0,0)));
+
+  this->getWeaponManager().setSlotPosition(4, Vector(-1.5, -.5, .5));
+  this->getWeaponManager().setSlotDirection(4, Quaternion(-M_PI_4*.5+M_PI, Vector(1,0,0)));
+
+  this->getWeaponManager().setSlotPosition(5, Vector(-1.5, -.5, -.5));
+  this->getWeaponManager().setSlotDirection(5, Quaternion(+M_PI_4*.5-M_PI, Vector(1,0,0)));
 //
-   this->getWeaponManager()->setSlotPosition(6, Vector(-1, 0.0, 0));
-   this->getWeaponManager()->setSlotCapability(6, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
+   this->getWeaponManager().setSlotPosition(6, Vector(-1, 0.0, 0));
+   this->getWeaponManager().setSlotCapability(6, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
    //
-//   this->getWeaponManager()->setSlotPosition(8, Vector(-2.5, -0.3, -2.0));
-//   this->getWeaponManager()->setSlotDirection(8, Quaternion(-M_PI, Vector(1,0,0)));
+//   this->getWeaponManager().setSlotPosition(8, Vector(-2.5, -0.3, -2.0));
+//   this->getWeaponManager().setSlotDirection(8, Quaternion(-M_PI, Vector(1,0,0)));
 //
-//   this->getWeaponManager()->setSlotPosition(9, Vector(-2.5, -0.3, 2.0));
-//   this->getWeaponManager()->setSlotDirection(9, Quaternion(+M_PI, Vector(1,0,0)));:
-
-  this->getWeaponManager()->getFixedTarget()->setParent(this);
-  this->getWeaponManager()->getFixedTarget()->setRelCoor(100000,0,0);
-
-  dynamic_cast<Element2D*>(this->getWeaponManager()->getFixedTarget())->setVisibility( false);
+//   this->getWeaponManager().setSlotPosition(9, Vector(-2.5, -0.3, 2.0));
+//   this->getWeaponManager().setSlotDirection(9, Quaternion(+M_PI, Vector(1,0,0)));:
+
+  this->getWeaponManager().getFixedTarget()->setParent(this);
+  this->getWeaponManager().getFixedTarget()->setRelCoor(100000,0,0);
+
+  dynamic_cast<Element2D*>(this->getWeaponManager().getFixedTarget())->setVisibility( false);
 
   this->burstEmitter = new DotEmitter(200, 0.0, .01);
@@ -248,5 +248,5 @@
 }
 
-void SpaceShip::setAbsDirPlay(const Quaternion& quat)
+void SpaceShip::setStartDirection(const Quaternion& quat)
 {
   this->mouseDir = quat;
@@ -267,5 +267,5 @@
 void SpaceShip::enter()
 {
-  dynamic_cast<Element2D*>(this->getWeaponManager()->getFixedTarget())->setVisibility( true);
+  dynamic_cast<Element2D*>(this->getWeaponManager().getFixedTarget())->setVisibility( true);
   this->attachCamera();
 }
@@ -273,5 +273,5 @@
 void SpaceShip::leave()
 {
-  dynamic_cast<Element2D*>(this->getWeaponManager()->getFixedTarget())->setVisibility( false);
+  dynamic_cast<Element2D*>(this->getWeaponManager().getFixedTarget())->setVisibility( false);
   this->detachCamera();
 }
@@ -320,5 +320,4 @@
 {
   WorldEntity::draw();
-  this->getWeaponManager()->draw();
 
   //this->debug(0);
Index: /trunk/src/world_entities/space_ships/space_ship.h
===================================================================
--- /trunk/src/world_entities/space_ships/space_ship.h	(revision 7336)
+++ /trunk/src/world_entities/space_ships/space_ship.h	(revision 7337)
@@ -27,5 +27,5 @@
     virtual void loadParams(const TiXmlElement* root);
 
-    virtual void setAbsDirPlay(const Quaternion& rot);
+    virtual void setStartDirection(const Quaternion& rot);
 
     virtual void enter();
Index: /trunk/src/world_entities/space_ships/turbine_hover.cc
===================================================================
--- /trunk/src/world_entities/space_ships/turbine_hover.cc	(revision 7336)
+++ /trunk/src/world_entities/space_ships/turbine_hover.cc	(revision 7337)
@@ -88,6 +88,6 @@
   //this->addWeapon(cannon, 0, 2);
 
-  this->getWeaponManager()->changeWeaponConfig(1);
-  dynamic_cast<Element2D*>(this->getWeaponManager()->getFixedTarget())->setVisibility( false);
+  this->getWeaponManager().changeWeaponConfig(1);
+  dynamic_cast<Element2D*>(this->getWeaponManager().getFixedTarget())->setVisibility( false);
 
   this->loadModel("models/ships/hoverglider_mainbody.obj");
@@ -186,28 +186,28 @@
   registerEvent(EV_MOUSE_MOTION);
 
-  dynamic_cast<Element2D*>(this->getWeaponManager()->getFixedTarget())->setVisibility( false);
+  dynamic_cast<Element2D*>(this->getWeaponManager().getFixedTarget())->setVisibility( false);
 
   // WEAPON_MANAGER configuration
-  this->getWeaponManager()->setSlotCount(5);
-
-  this->getWeaponManager()->setSlotPosition(0, Vector(-0.28, 1.186, -2.750), &this->wingNodeLeft);
-  this->getWeaponManager()->setSlotCapability(0, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
-
-  this->getWeaponManager()->setSlotPosition(1, Vector(-0.28, 1.186, 2.750), &this->wingNodeRight);
-  this->getWeaponManager()->setSlotCapability(1, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
-
-  this->getWeaponManager()->setSlotPosition(2, Vector(-1.63, .809, -.003));
-  this->getWeaponManager()->setSlotCapability(2, WTYPE_HEAVY);
+  this->getWeaponManager().setSlotCount(5);
+
+  this->getWeaponManager().setSlotPosition(0, Vector(-0.28, 1.186, -2.750), &this->wingNodeLeft);
+  this->getWeaponManager().setSlotCapability(0, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
+
+  this->getWeaponManager().setSlotPosition(1, Vector(-0.28, 1.186, 2.750), &this->wingNodeRight);
+  this->getWeaponManager().setSlotCapability(1, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
+
+  this->getWeaponManager().setSlotPosition(2, Vector(-1.63, .809, -.003));
+  this->getWeaponManager().setSlotCapability(2, WTYPE_HEAVY);
 
   /// TODO: THESE ARE TOO MUCH
-  this->getWeaponManager()->setSlotPosition(3, Vector(-1.63, .678, -.652));
-  this->getWeaponManager()->setSlotDirection(3, Quaternion(-24/180 * M_PI, Vector(1,0,0)));
-
-  this->getWeaponManager()->setSlotPosition(4, Vector(-1.63, .678, .652));
-  this->getWeaponManager()->setSlotDirection(4, Quaternion(24/180 * M_PI, Vector(1,0,0)));
+  this->getWeaponManager().setSlotPosition(3, Vector(-1.63, .678, -.652));
+  this->getWeaponManager().setSlotDirection(3, Quaternion(-24/180 * M_PI, Vector(1,0,0)));
+
+  this->getWeaponManager().setSlotPosition(4, Vector(-1.63, .678, .652));
+  this->getWeaponManager().setSlotDirection(4, Quaternion(24/180 * M_PI, Vector(1,0,0)));
 
   this->cameraNode.setRelCoor(1,5,0);
-  this->getWeaponManager()->getFixedTarget()->setParent(&this->cameraNode);
-  this->getWeaponManager()->getFixedTarget()->setRelCoor(1000,0,0);
+  this->getWeaponManager().getFixedTarget()->setParent(&this->cameraNode);
+  this->getWeaponManager().getFixedTarget()->setRelCoor(1000,0,0);
 }
 
@@ -224,5 +224,5 @@
 void TurbineHover::enter()
 {
-  dynamic_cast<Element2D*>(this->getWeaponManager()->getFixedTarget())->setVisibility( true);
+  dynamic_cast<Element2D*>(this->getWeaponManager().getFixedTarget())->setVisibility( true);
 
   if (State::getCameraNode != NULL)
@@ -236,5 +236,5 @@
 void TurbineHover::leave()
 {
-  dynamic_cast<Element2D*>(this->getWeaponManager()->getFixedTarget())->setVisibility( false);
+  dynamic_cast<Element2D*>(this->getWeaponManager().getFixedTarget())->setVisibility( false);
   this->detachCamera();
 
Index: /trunk/src/world_entities/space_ships/turbine_hover.h
===================================================================
--- /trunk/src/world_entities/space_ships/turbine_hover.h	(revision 7336)
+++ /trunk/src/world_entities/space_ships/turbine_hover.h	(revision 7337)
@@ -23,5 +23,5 @@
 
     virtual void loadParams(const TiXmlElement* root);
-    virtual void setAbsDirPlay(const Quaternion& rot) {/* FIXME */};
+    virtual void setStartDirection(const Quaternion& rot) {/* FIXME */};
     virtual void enter();
     virtual void leave();
