Index: /branches/spaceshipcontrol/src/world_entities/playable.h
===================================================================
--- /branches/spaceshipcontrol/src/world_entities/playable.h	(revision 6113)
+++ /branches/spaceshipcontrol/src/world_entities/playable.h	(revision 6114)
@@ -34,4 +34,5 @@
 
     virtual void process(const Event &event) = 0;
+    
 
 
Index: /branches/spaceshipcontrol/src/world_entities/space_ships/space_ship.cc
===================================================================
--- /branches/spaceshipcontrol/src/world_entities/space_ships/space_ship.cc	(revision 6113)
+++ /branches/spaceshipcontrol/src/world_entities/space_ships/space_ship.cc	(revision 6114)
@@ -117,6 +117,6 @@
   bFire = false;
   xMouse = yMouse = 0;
-  mouseSensitivity = 0.005;
-  airViscosity = 0.1;
+  mouseSensitivity = 0.001;
+  airViscosity = 1.0;
   cycle = 0.0;
 
@@ -124,5 +124,5 @@
   travelSpeed = 15.0;
   this->velocity = Vector(0.0,0.0,0.0);
-  this->velocityDir = Vector(1.0,0.0,0.0);
+  this->mouseDir = this->getAbsDir();
 
 //   GLGuiButton* button = new GLGuiPushButton();
@@ -174,4 +174,7 @@
 //   this->getWeaponManager()->setSlotDirection(9, Quaternion(+M_PI, Vector(1,0,0)));:
 
+  this->getWeaponManager()->getFixedTarget()->setParent(this);
+  this->getWeaponManager()->getFixedTarget()->setRelCoor(100000,0,0);
+
 }
 
@@ -264,5 +267,11 @@
   velocity += ((this->getAbsDirX())*travelSpeed-velocity)*airViscosity;
   velocity = (velocity.getNormalized())*travelSpeed;
-
+  
+  //orient the spaceship in direction of the mouse
+   Quaternion rotQuat = Quaternion::quatSlerp( this->getAbsDir(),mouseDir,fabsf(time));
+   if (this->getAbsDir().distance(rotQuat) > 0.001)  
+     this->setAbsDir( Quaternion::quatSlerp( this->getAbsDir(),mouseDir,fabsf(time)));
+   //this->setAbsDirSoft(mouseDir,5);
+   
   // this is the air friction (necessary for a smooth control)
   if(velocity.len() != 0) velocity -= velocity*0.01;
@@ -337,5 +346,5 @@
   if( this->bRollL /* > -this->getRelCoor().z*2*/)
   {
-    this->shiftDir(Quaternion(-time, Vector(1,0,0)));
+    mouseDir *= Quaternion(-time, Vector(1,0,0));
 //    accel -= rightDirection;
     //velocityDir.normalize();
@@ -345,5 +354,5 @@
   if( this->bRollR /* > this->getRelCoor().z*2*/)
   {
-    this->shiftDir(Quaternion(time, Vector(1,0,0)));
+    mouseDir *= Quaternion(time, Vector(1,0,0));
 
     //    accel += rightDirection;
@@ -413,5 +422,6 @@
     this->xMouse = event.xRel;
     this->yMouse = event.yRel;
-    this->shiftDir(Quaternion(-M_PI/4*xMouse*mouseSensitivity, Vector(0,1,0))*Quaternion(-M_PI/4*yMouse*mouseSensitivity, Vector(0,0,1)));
+    mouseDir *= (Quaternion(-M_PI/4*xMouse*mouseSensitivity, Vector(0,1,0))*Quaternion(-M_PI/4*yMouse*mouseSensitivity, Vector(0,0,1)));
+    
   }
 }
Index: /branches/spaceshipcontrol/src/world_entities/space_ships/space_ship.h
===================================================================
--- /branches/spaceshipcontrol/src/world_entities/space_ships/space_ship.h	(revision 6113)
+++ /branches/spaceshipcontrol/src/world_entities/space_ships/space_ship.h	(revision 6114)
@@ -8,4 +8,5 @@
 
 #include "playable.h"
+
 
 template<class T> class tList;
@@ -64,5 +65,5 @@
 
     Vector                velocity;           //!< the velocity of the player.
-    Vector                velocityDir;        //!< the direction of the velocity of the spaceship
+    Quaternion            mouseDir;           //!< the direction where the player wants to fly
     float                 travelSpeed;        //!< the current speed of the player (to make soft movement)
     float                 acceleration;       //!< the acceleration of the player.
Index: /branches/spaceshipcontrol/src/world_entities/weapons/crosshair.cc
===================================================================
--- /branches/spaceshipcontrol/src/world_entities/weapons/crosshair.cc	(revision 6113)
+++ /branches/spaceshipcontrol/src/world_entities/weapons/crosshair.cc	(revision 6114)
@@ -67,5 +67,5 @@
   this->setSize(GraphicsEngine::getInstance()->getResolutionX()/10.0);
 
-//  this->setBindNode(this);
+  this->setBindNode(this);
   this->material = new Material;
 
@@ -166,5 +166,5 @@
 {
   glPushMatrix();
-  glTranslatef(GraphicsEngine::getInstance()->getResolutionX()/2, GraphicsEngine::getInstance()->getResolutionY()/2, 0);
+  glTranslatef(this->getAbsCoor2D().x, this->getAbsCoor2D().y, 0);
 
   glRotatef(this->getAbsDir2D(), 0,0,1);
Index: /branches/spaceshipcontrol/src/world_entities/weapons/laser.cc
===================================================================
--- /branches/spaceshipcontrol/src/world_entities/weapons/laser.cc	(revision 6113)
+++ /branches/spaceshipcontrol/src/world_entities/weapons/laser.cc	(revision 6114)
@@ -45,5 +45,5 @@
   this->energyMin = 1;
   this->energyMax = 10;
-  this->lifeSpan = 1.0;
+  this->lifeSpan = 5.0;
 
   this->emitter = new ParticleEmitter(Vector(0,1,0), M_2_PI, 100, 5);
Index: /branches/spaceshipcontrol/src/world_entities/weapons/test_gun.cc
===================================================================
--- /branches/spaceshipcontrol/src/world_entities/weapons/test_gun.cc	(revision 6113)
+++ /branches/spaceshipcontrol/src/world_entities/weapons/test_gun.cc	(revision 6114)
@@ -186,5 +186,5 @@
   pj->setParent(NullParent::getInstance());
 
-  pj->setVelocity(this->getVelocity() + this->getAbsDir().apply(Vector(1,0,0))*50+VECTOR_RAND(5));
+  pj->setVelocity(this->getAbsDir().apply(Vector(1,0,0))*250 + VECTOR_RAND(5));
 
   pj->setAbsCoor(this->getEmissionPoint());
