Index: /orxonox/trunk/src/world_entities/player.cc
===================================================================
--- /orxonox/trunk/src/world_entities/player.cc	(revision 4963)
+++ /orxonox/trunk/src/world_entities/player.cc	(revision 4964)
@@ -89,5 +89,5 @@
   this->weaponMan->addWeapon(wpLeft, 1, 0);
   this->weaponMan->addWeapon(wpRight,1 ,1);
-  this->weaponMan->addWeapon(turret, 3, 1);
+  this->weaponMan->addWeapon(turret, 3, 2);
 
   this->weaponMan->changeWeaponConfig(0);
@@ -110,7 +110,8 @@
 
   this->weaponMan = new WeaponManager(this);
+  this->weaponMan->setSlotCount(3);
   this->weaponMan->setSlotPosition(0, Vector(-2.6, .1, -3.0));
   this->weaponMan->setSlotPosition(1, Vector(-2.6, .1, 3.0));
-
+  this->weaponMan->setSlotPosition(2, Vector(-1.5, .5, 0));
 }
 
Index: /orxonox/trunk/src/world_entities/weapons/turret.cc
===================================================================
--- /orxonox/trunk/src/world_entities/weapons/turret.cc	(revision 4963)
+++ /orxonox/trunk/src/world_entities/weapons/turret.cc	(revision 4964)
@@ -43,51 +43,18 @@
 
   this->model = (Model*)ResourceManager::getInstance()->load("models/turret1.obj", OBJ, RP_CAMPAIGN);
-  this->leftRight = leftRight;
 
-/*  this->objectComponent1 = new PNode();
-  Animation3D* animation1 = this->getAnimation(WS_SHOOTING, this->objectComponent1);
-  Animation3D* animation2 = this->getAnimation(WS_ACTIVATING, this);
-  Animation3D* animation3 = this->getAnimation(WS_DEACTIVATING, this);
-  //parent->addChild(this->objectComponent1, PNODE_ALL);
-  this->addChild(this->objectComponent1, PNODE_ALL);
+  Animation3D* animation1 = this->getAnimation(WS_ACTIVATING, this);
+  Animation3D* animation2 = this->getAnimation(WS_DEACTIVATING, this);
+
+  animation1->addKeyFrame(Vector(0, -.5, 0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_CONSTANT);
+  animation1->addKeyFrame(Vector(0, 0, 0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_CONSTANT);
+  animation2->addKeyFrame(Vector(0, 0, 0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_CONSTANT);
+  animation2->addKeyFrame(Vector(0, -.5, 0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_CONSTANT);
 
   animation1->setInfinity(ANIM_INF_CONSTANT);
   animation2->setInfinity(ANIM_INF_CONSTANT);
-  animation3->setInfinity(ANIM_INF_CONSTANT);
-  if( this->leftRight == W_LEFT)
-    {
-      this->setEmissionPoint(1.0, 0.0, -0.35);
-
-      animation1->addKeyFrame(Vector(0, 0, 0), Quaternion(), 0.1, ANIM_LINEAR, ANIM_CONSTANT);
-      animation1->addKeyFrame(Vector(-0.4, 0, 0), Quaternion(), 0.1, ANIM_LINEAR, ANIM_CONSTANT);
-      animation1->addKeyFrame(Vector(0, 0, 0), Quaternion(), 0.0, ANIM_LINEAR, ANIM_CONSTANT);
-
-      animation2->addKeyFrame(Vector(0.0, 0.0, -1.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_CONSTANT);
-      animation2->addKeyFrame(Vector(0.0, 0.0, 0.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_CONSTANT);
-
-      animation3->addKeyFrame(Vector(0.0, 0.0, 0.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_CONSTANT);
-      animation3->addKeyFrame(Vector(0.0, 0.0, -1.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_CONSTANT);
-    }
-  else if( this->leftRight == W_RIGHT)
-    {
-      this->setEmissionPoint(1.0, 0.0, 0.5);
-
-      this->objectComponent1->setRelCoor(Vector(0,0,0.35));
-      animation1->addKeyFrame(Vector(0, 0, .5), Quaternion(), 0.1, ANIM_LINEAR, ANIM_CONSTANT);
-      animation1->addKeyFrame(Vector(-0.4, 0, .5), Quaternion(), 0.1, ANIM_LINEAR, ANIM_CONSTANT);
-      animation1->addKeyFrame(Vector(0, 0, .5), Quaternion(), 0.0, ANIM_LINEAR, ANIM_CONSTANT);
-
-      animation2->addKeyFrame(Vector(.0, .0, 1.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_CONSTANT);
-      animation2->addKeyFrame(Vector(.0, .0, .0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_CONSTANT);
-
-      animation3->addKeyFrame(Vector(.0, .0, 0.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_CONSTANT);
-      animation3->addKeyFrame(Vector(.0, .0, 1.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_CONSTANT);
-    }*/
-
-  //  ObjectManager::getInstance()->cache(CL_TEST_BULLET, 100, p);
-  //ObjectManager::getInstance()->debug();
 
   this->setStateDuration(WS_SHOOTING, .4);
-  this->setStateDuration(WS_RELOADING, 1);
+  this->setStateDuration(WS_RELOADING, 2);
   this->setStateDuration(WS_ACTIVATING, .4);
   this->setStateDuration(WS_DEACTIVATING, .4);
@@ -100,4 +67,6 @@
 
   this->setProjectile(CL_TEST_BULLET);
+
+  this->setEmissionPoint(1.684, 0.472, 0);
   //this->getProjectileFactory()->prepare(100);
 }
@@ -112,28 +81,20 @@
 }
 
-
-/**
- *  this activates the weapon
-
-   This is needed, since there can be more than one weapon on a ship. the
-   activation can be connected with an animation. for example the weapon is
-   been armed out.
-*/
 void Turret::activate()
 {
 }
 
-
-/**
- *  this deactivates the weapon
-
-   This is needed, since there can be more than one weapon on a ship. the
-   activation can be connected with an animation. for example the weapon is
-   been armed out.
-*/
 void Turret::deactivate()
 {
 }
 
+void Turret::tick(float dt)
+{
+  Vector direction = this->getWeaponManager()->getFixedTarget()->getAbsCoor() - this->getAbsCoor();
+  direction.normalize();
+  Quaternion quat = Quaternion(direction, Vector(0,1,0)) * Quaternion ( -M_PI_2, Vector(0,1,0)) ;
+
+  this->setRelDir(quat);
+}
 
 /**
@@ -141,5 +102,4 @@
 
    this is called from the player.cc, when fire-button is been pushed
-   @todo: the ObjectManager deliveres Projectiles not TestBullets! this should be diffrent
 */
 void Turret::fire()
@@ -152,4 +112,5 @@
   {
     pj->setVelocity(this->getVelocity()+(target->getAbsCoor() - this->getAbsCoor())*.5);//this->getVelocity());
+    pj->setAbsDir(this->getAbsDir());
   }
   else
Index: /orxonox/trunk/src/world_entities/weapons/turret.h
===================================================================
--- /orxonox/trunk/src/world_entities/weapons/turret.h	(revision 4963)
+++ /orxonox/trunk/src/world_entities/weapons/turret.h	(revision 4964)
@@ -18,4 +18,5 @@
     virtual void deactivate();
 
+    virtual void tick(float dt);
     virtual void fire();
     virtual void destroy();
@@ -24,7 +25,4 @@
 
   private:
-    PNode* objectComponent1;         //<! the gun is made of multiple parts, these PNodes represent their location and orientation
-
-    int leftRight;   // this will become an enum
   };
 #endif /* _TURRET_H */
Index: /orxonox/trunk/src/world_entities/weapons/weapon_manager.h
===================================================================
--- /orxonox/trunk/src/world_entities/weapons/weapon_manager.h	(revision 4963)
+++ /orxonox/trunk/src/world_entities/weapons/weapon_manager.h	(revision 4964)
@@ -54,4 +54,5 @@
     void loadWeapons(const TiXmlElement* root);
 
+    void setSlotCount(unsigned int slotCount);
     // setting up the WeaponManager with the following functions
     void setSlotPosition(int slot, const Vector& position);
@@ -85,6 +86,4 @@
 
   private:
-    void setSlotCount(unsigned int slotCount);
-
     int getNextFreeSlot(int configID);
 
