Index: /branches/spaceshipcontrol/src/world_entities/space_ships/helicopter.cc
===================================================================
--- /branches/spaceshipcontrol/src/world_entities/space_ships/helicopter.cc	(revision 6377)
+++ /branches/spaceshipcontrol/src/world_entities/space_ships/helicopter.cc	(revision 6378)
@@ -117,4 +117,6 @@
   xMouse = yMouse = 0;
   mouseSensitivity = 0.001;
+  rotorspeed = 1;
+  tailrotorspeed = 0;
 
   cycle = 0.0;
@@ -258,9 +260,17 @@
 */
 void Helicopter::tick (float time)
-{
+{ 
+  tailrotorspeed += xMouse/20;
+  if (tailrotorspeed >= 0.07) tailrotorspeed = 0.07;
+  else if (tailrotorspeed <= -0.07) tailrotorspeed = -0.07;
+  
+  if (tailrotorspeed > 0.0008) tailrotorspeed -= 0.001;
+  else if (tailrotorspeed < -0.0008) tailrotorspeed += 0.001;
+  if (tailrotorspeed <= 0.001 && tailrotorspeed >= -0.001) tailrotorspeed = 0;
+  
   // spaceship controlled movement
   this->calculateVelocity(time);
 
-  Vector move = (velocity)*time;
+  Vector move = (velocity);
 
   // this is the air friction (necessary for a smooth control)
@@ -268,5 +278,7 @@
 
   //physics: Gravity
-  this->shiftCoor(Vector(0,-0.05,0));
+  this->shiftCoor(Vector(0,-1,0));
+  
+  this->shiftCoor(getAbsDirY()*rotorspeed);
 
   //hoover effect
@@ -281,4 +293,5 @@
 
   this->shiftCoor (move);
+  this->shiftDir(Quaternion(-M_PI/4*tailrotorspeed, Vector(0,1,0)));
 
   this->getWeaponManager()->tick(time);
@@ -302,8 +315,7 @@
    {
      //this->shiftCoor(this->getAbsDirX());
-
-     accel += this->getAbsDirX()*2;
+     //accel -= this->getAbsDirY();
      rot += Vector (0,0,1);
-     rotVal -= time/8;
+     rotVal -= time/5;
    }
    else
@@ -315,7 +327,7 @@
    {
      //this->shiftCoor((this->getAbsDirX())*-1);
-     accel -= this->getAbsDirX()*2;
+     //accel -= this->getAbsDirY();
      rot += Vector (0,0,1);
-     rotVal += time/8;
+     rotVal += time/5;
    }
    else
@@ -327,8 +339,8 @@
   {
     //this->shiftDir(Quaternion(time, Vector(0,1,0)));
-    accel -= this->getAbsDirZ()*2;
+    //accel -= this->getAbsDirY();
     //velocityDir.normalize();
     rot += Vector(1,0,0);
-    rotVal -= time/8;
+    rotVal -= time/5;
   }
   else
@@ -340,5 +352,5 @@
   {
     //this->shiftDir(Quaternion(-time, Vector(0,1,0)));
-    accel += this->getAbsDirZ()*2;
+    accel += this->getAbsDirY();
     //velocityDir.normalize();
     rot += Vector(1,0,0);
@@ -371,20 +383,31 @@
     //this->shiftDir(Quaternion(time, Vector(0,0,1)));
 
-    accel += (this->getAbsDirY())*3;
+    rotorspeed += 0.05;
+    if (rotorspeed >= 2) rotorspeed = 2;
     //velocityDir.normalize();
     //rot += Vector(0,0,1);
     //rotVal += .4;
   }
+  else
+  {
+    if(rotorspeed >= 1.05) rotorspeed -= 0.05;
+  }
+  
   if (this->bDescend )
   {
     //this->shiftDir(Quaternion(-time, Vector(0,0,1)));
 
-    accel -= (this->getAbsDirY())*3;
+    rotorspeed -= 0.05;
+    if (rotorspeed <= 0) rotorspeed = 0;
     //velocityDir.normalize();
     //rot += Vector(0,0,1);
     //rotVal -= .4;
   }
-
-  velocity += accel;
+  else
+  {
+    if(rotorspeed <= 0.05) rotorspeed += 0.05;
+  }
+
+  //velocity += accel;
   rot.normalize();
   this->shiftDir(Quaternion(rotVal, rot));
@@ -438,8 +461,8 @@
   else if( event.type == EV_MOUSE_MOTION)
   {
-    this->xMouse = event.xRel;
-    this->yMouse = event.yRel;
-    if(((this->getAbsDirX().y) <= .2 && yMouse > 0) || ((this->getAbsDirX().y) >= -.2 && yMouse < 0)) yMouse = 0;
-    this->shiftDir(Quaternion(-M_PI/4*xMouse*mouseSensitivity, Vector(0,1,0))*Quaternion(-M_PI/4*yMouse*mouseSensitivity, Vector(0,0,1)));
+    this->xMouse = event.xRel*mouseSensitivity;
+    this->yMouse = event.yRel*mouseSensitivity;
+    
+    //this->shiftDir(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/helicopter.h
===================================================================
--- /branches/spaceshipcontrol/src/world_entities/space_ships/helicopter.h	(revision 6377)
+++ /branches/spaceshipcontrol/src/world_entities/space_ships/helicopter.h	(revision 6378)
@@ -67,4 +67,6 @@
     float                 travelSpeed;        //!< the current speed of the player (to make soft movement)
     float                 acceleration;       //!< the acceleration of the player.
+    float                 rotorspeed;         //!< the speed of the rotor.
+    float                 tailrotorspeed;     //!< the relativ speed ot the tail rotor
 
     float                 airViscosity;
