Index: branches/spaceshipcontrol/src/world_entities/space_ships/helicopter.cc
===================================================================
--- branches/spaceshipcontrol/src/world_entities/space_ships/helicopter.cc	(revision 6485)
+++ branches/spaceshipcontrol/src/world_entities/space_ships/helicopter.cc	(revision 6497)
@@ -117,12 +117,12 @@
   bFire = false;
   xMouse = yMouse = 0;
-  mouseSensitivity = 0.001;
-  rotorspeed = 1;
-  tailrotorspeed = 0;
-
-  cycle = 0.0;
-
-
-  travelSpeed = 15.0;
+  mouseSensitivity = 0.05;
+  //rotorspeed = 1;
+  //tailrotorspeed = 0;
+
+  //cycle = 0.0;
+
+
+  //travelSpeed = 15.0;
   this->velocity = Vector(0.0,0.0,0.0);
   this->velocityDir = Vector(1.0,0.0,0.0);
@@ -249,4 +249,5 @@
 void Helicopter::tick (float time)
 {
+  /*
   tailrotorspeed += xMouse/20;
   if (tailrotorspeed >= 0.07) tailrotorspeed = 0.07;
@@ -256,21 +257,27 @@
   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);
+  Vector move = (velocity)*time;
 
   // this is the air friction (necessary for a smooth control)
   if(velocity.len() != 0) velocity -= velocity*0.1;
+  
+  //travelSpeed = velocity.len();
 
   //physics: Gravity
-  this->shiftCoor(Vector(0,-1,0));
+  /*this->shiftCoor(Vector(0,-1,0));
 
   this->shiftCoor(getAbsDirY()*rotorspeed);
-
+  */
+  
+  /*
   //hoover effect
   cycle += time;
   this->shiftCoor(Vector(0,1,0)*cos(this->cycle*2.0)*0.02);
+  */
 
   //readjust
@@ -281,5 +288,5 @@
 
   this->shiftCoor (move);
-  this->shiftDir(Quaternion(-M_PI/4*tailrotorspeed, Vector(0,1,0)));
+  //this->shiftDir(Quaternion(-M_PI/4*tailrotorspeed, Vector(0,1,0)));
 
   this->getWeaponManager()->tick(time);
@@ -295,6 +302,6 @@
 {
   Vector accel(0.0, 0.0, 0.0);
-  Vector rot(0.0, 0.0, 0.0);
-  float rotVal = 0.0;
+  float rotValX = 0.0;
+  float rotValZ = 0.0;
   /* FIXME: calculating the direction and orthDirection every timeSlice is redundant! save it somewhere */
   /* calculate the direction in which the craft is heading  */
@@ -304,10 +311,11 @@
      //this->shiftCoor(this->getAbsDirX());
      //accel -= this->getAbsDirY();
-     rot += Vector (0,0,1);
-     rotVal -= time/5;
+     
+     accel += Vector((this->getAbsDirX()).x,0,(this->getAbsDirX()).z);
+     if((this->getAbsDirX()).y >= -0.1) rotValZ -= time;
    }
    else
    {
-       if(this->getAbsDirX().y < -.02) this->shiftDir(Quaternion(time/8, Vector(0,0,1)));
+       if(this->getAbsDirX().y < -.02) this->shiftDir(Quaternion(time, Vector(0,0,1)));
    }
 
@@ -316,10 +324,11 @@
      //this->shiftCoor((this->getAbsDirX())*-1);
      //accel -= this->getAbsDirY();
-     rot += Vector (0,0,1);
-     rotVal += time/5;
+     
+     accel -= Vector((this->getAbsDirX()).x,0,(this->getAbsDirX()).z);
+     rotValZ += time;
    }
    else
    {
-         if(this->getAbsDirX().y > 0.02) this->shiftDir(Quaternion(-time/8, Vector(0,0,1)));
+         if(this->getAbsDirX().y > 0.02) this->shiftDir(Quaternion(-time, Vector(0,0,1)));
    }
 
@@ -329,10 +338,11 @@
     //accel -= this->getAbsDirY();
     //velocityDir.normalize();
-    rot += Vector(1,0,0);
-    rotVal -= time/5;
+    
+    accel -= Vector((this->getAbsDirZ()).x,0,(this->getAbsDirZ()).z);
+    rotValX -= time;
   }
   else
    {
-         if(this->getAbsDirZ().y > 0.02) this->shiftDir(Quaternion(time/5, Vector(1,0,0)));
+         if(this->getAbsDirZ().y > 0.02) this->shiftDir(Quaternion(time, Vector(1,0,0)));
    }
 
@@ -340,12 +350,13 @@
   {
     //this->shiftDir(Quaternion(-time, Vector(0,1,0)));
-    accel += this->getAbsDirY();
+    //accel += this->getAbsDirY();
     //velocityDir.normalize();
-    rot += Vector(1,0,0);
-    rotVal += time/5;
+    
+    accel += Vector((this->getAbsDirZ()).x,0,(this->getAbsDirZ()).z);
+    rotValX += time;
   }
   else
    {
-         if(this->getAbsDirZ().y < -0.02) this->shiftDir(Quaternion(-time/5, Vector(1,0,0)));
+         if(this->getAbsDirZ().y < -0.02) this->shiftDir(Quaternion(-time, Vector(1,0,0)));
    }
 
@@ -371,6 +382,7 @@
     //this->shiftDir(Quaternion(time, Vector(0,0,1)));
 
-    rotorspeed += 0.05;
-    if (rotorspeed >= 2) rotorspeed = 2;
+    accel += this->getAbsDirY();
+    //rotorspeed += 0.05;
+    //if (rotorspeed >= 2) rotorspeed = 2;
     //velocityDir.normalize();
     //rot += Vector(0,0,1);
@@ -379,5 +391,5 @@
   else
   {
-    if(rotorspeed >= 1.05) rotorspeed -= 0.05;
+    //if(rotorspeed >= 1.05) rotorspeed -= 0.05;
   }
 
@@ -386,6 +398,7 @@
     //this->shiftDir(Quaternion(-time, Vector(0,0,1)));
 
-    rotorspeed -= 0.05;
-    if (rotorspeed <= 0) rotorspeed = 0;
+    accel -= this->getAbsDirY();
+    //rotorspeed -= 0.05;
+    //if (rotorspeed <= 0) rotorspeed = 0;
     //velocityDir.normalize();
     //rot += Vector(0,0,1);
@@ -394,10 +407,10 @@
   else
   {
-    if(rotorspeed <= 0.05) rotorspeed += 0.05;
-  }
-
-  //velocity += accel;
-  rot.normalize();
-  this->shiftDir(Quaternion(rotVal, rot));
+    //if(rotorspeed <= 0.05) rotorspeed += 0.05;
+  }
+
+  velocity += accel;
+  if((this->getAbsDirX()).y <= 0.2 && (this->getAbsDirX()).y >= -0.2) this->shiftDir(Quaternion(rotValZ, Vector(0,0,1)));
+  if((this->getAbsDirZ()).y <= 0.2 && (this->getAbsDirZ()).y >= -0.2) this->shiftDir(Quaternion(rotValX, Vector(1,0,0)));
 }
 
@@ -452,5 +465,5 @@
     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)));
+    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 6485)
+++ branches/spaceshipcontrol/src/world_entities/space_ships/helicopter.h	(revision 6497)
@@ -58,5 +58,5 @@
     float                 yMouse;             //!< mouse moved in y-Direction
     float                 mouseSensitivity;   //!< the mouse sensitivity
-    float                 cycle;              //!< hovercycle
+    //float                 cycle;              //!< hovercycle
 
     Vector                velocity;           //!< the velocity of the player.
@@ -64,6 +64,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                 rotorspeed;         //!< the speed of the rotor.
+    //float                 tailrotorspeed;     //!< the relativ speed ot the tail rotor
 
     float                 airViscosity;
Index: branches/spaceshipcontrol/src/world_entities/space_ships/space_ship.cc
===================================================================
--- branches/spaceshipcontrol/src/world_entities/space_ships/space_ship.cc	(revision 6485)
+++ branches/spaceshipcontrol/src/world_entities/space_ships/space_ship.cc	(revision 6497)
@@ -292,6 +292,6 @@
 
   //hoover effect
-  cycle += time;
-  this->shiftCoor(Vector(0,1,0)*cos(this->cycle*2.0)*0.02);
+  //cycle += time;
+  //this->shiftCoor(Vector(0,1,0)*cos(this->cycle*2.0)*0.02);
 
   //readjust
