Index: branches/spaceshipcontrol/src/world_entities/space_ships/helicopter.cc
===================================================================
--- branches/spaceshipcontrol/src/world_entities/space_ships/helicopter.cc	(revision 6698)
+++ branches/spaceshipcontrol/src/world_entities/space_ships/helicopter.cc	(revision 6699)
@@ -36,5 +36,5 @@
 
 /**
- *  creates the controlable Spaceship
+ *  creates the controlable Helicopter
  */
 Helicopter::Helicopter()
@@ -44,5 +44,5 @@
 
 /**
- *  destructs the spaceship, deletes alocated memory
+ *  destructs the helicopter, deletes alocated memory
  */
 Helicopter::~Helicopter ()
@@ -51,6 +51,6 @@
 
 /**
- * loads a Spaceships information from a specified file.
- * @param fileName the name of the File to load the spaceship from (absolute path)
+ * loads a Helicopter information from a specified file.
+ * @param fileName the name of the File to load the helicopter from (absolute path)
  */
 Helicopter::Helicopter(const char* fileName)
@@ -108,5 +108,5 @@
   this->setClassID(CL_HELICOPTER, "Helicopter");
 
-  PRINTF(4)("SPACESHIP INIT\n");
+  PRINTF(4)("HELICOPTER INIT\n");
 
   this->loadModel("models/ships/helicopter_#.obj", 1.0);
@@ -118,8 +118,25 @@
   xMouse = yMouse = 0;
   mouseSensitivity = 0.05;
+  controlVelocityX = 100;
+  controlVelocityY = 100;
   //rotorspeed = 1;
   //tailrotorspeed = 0;
 
   //cycle = 0.0;
+  
+  
+  // rotors
+  this->topRotor.addNodeFlags(PNODE_PROHIBIT_DELETE_WITH_PARENT);
+  this->tailRotor.addNodeFlags(PNODE_PROHIBIT_DELETE_WITH_PARENT);
+  
+  this->topRotor.setParent(this);
+  this->tailRotor.setParent(this);
+  
+  this->topRotor.setRelCoor(Vector(-0.877,0.627,0));
+  this->tailRotor.setRelCoor(Vector(-4.43,0.297,0.068));
+  this->tailRotor.setAbsDir(Quaternion(M_PI_2,Vector(1,0,0)));
+  
+  this->loadModel("models/ships/rotor.obj",1.0,3);
+  this->loadModel("models/ships/rotor.obj",0.15,4);
 
 
@@ -127,5 +144,4 @@
   this->velocity = Vector(0.0,0.0,0.0);
   this->velocityDir = Vector(1.0,0.0,0.0);
-
 //   GLGuiButton* button = new GLGuiPushButton();
 //   button->show();
@@ -221,5 +237,5 @@
 
 /**
- *  the action occuring if the spaceship left the game
+ *  the action occuring if the helicopter left the game
 */
 void Helicopter::leftWorld ()
@@ -249,13 +265,14 @@
 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;
-  */
+  if( xMouse != 0 || yMouse != 0)
+   {
+    if (xMouse > controlVelocityX) xMouse = controlVelocityX;
+    else if (xMouse < -controlVelocityX) xMouse = -controlVelocityX;
+    if (yMouse > controlVelocityY) yMouse = controlVelocityY;
+    else if (yMouse < -controlVelocityY) yMouse = -controlVelocityY;
+  }
+  // rotorrotation
+  this->topRotor.shiftDir(Quaternion(time*10, Vector(0,1,0)));
+  this->tailRotor.shiftDir(Quaternion(time*10, Vector(0,1,0)));
   
   // spaceship controlled movement
@@ -419,4 +436,28 @@
 {
   WorldEntity::draw();
+  
+  glMatrixMode(GL_MODELVIEW);
+    glPushMatrix();
+
+    /* translate */
+    glTranslatef (this->topRotor.getAbsCoor ().x,
+                  this->topRotor.getAbsCoor ().y,
+                  this->topRotor.getAbsCoor ().z);
+    Vector tmpRot = this->topRotor.getAbsDir().getSpacialAxis();
+    glRotatef (this->topRotor.getAbsDir().getSpacialAxisAngle(), tmpRot.x, tmpRot.y, tmpRot.z );
+    this->getModel(3)->draw();
+
+    glPopMatrix ();
+    glPushMatrix();
+
+    /* translate */
+    glTranslatef (this->tailRotor.getAbsCoor ().x,
+                  this->tailRotor.getAbsCoor ().y,
+                  this->tailRotor.getAbsCoor ().z);
+    tmpRot = this->tailRotor.getAbsDir().getSpacialAxis();
+    glRotatef (this->tailRotor.getAbsDir().getSpacialAxisAngle(), tmpRot.x, tmpRot.y, tmpRot.z );
+    this->getModel(4)->draw();
+
+    glPopMatrix ();
 
   this->getWeaponManager()->draw();
Index: branches/spaceshipcontrol/src/world_entities/space_ships/helicopter.h
===================================================================
--- branches/spaceshipcontrol/src/world_entities/space_ships/helicopter.h	(revision 6698)
+++ branches/spaceshipcontrol/src/world_entities/space_ships/helicopter.h	(revision 6699)
@@ -59,5 +59,10 @@
     int                   yInvert;
     float                 mouseSensitivity;   //!< the mouse sensitivity
+    int                   controlVelocityX;
+    int                   controlVelocityY;
     //float                 cycle;              //!< hovercycle
+    
+    PNode                   topRotor;
+    PNode                   tailRotor;
 
     Vector                velocity;           //!< the velocity of the player.
Index: branches/spaceshipcontrol/src/world_entities/space_ships/hover.cc
===================================================================
--- branches/spaceshipcontrol/src/world_entities/space_ships/hover.cc	(revision 6698)
+++ branches/spaceshipcontrol/src/world_entities/space_ships/hover.cc	(revision 6699)
@@ -110,5 +110,5 @@
   PRINTF(4)("HOVER INIT\n");
 
-  this->loadModel("models/ships/fighter.obj", 1.0);
+  this->loadModel("models/ships/nimrod_#.obj", 1.0);
 
   EventHandler::getInstance()->grabEvents(true);
@@ -118,4 +118,6 @@
   xMouse = yMouse = 0;
   mouseSensitivity = 0.05;
+  controlVelocityX = 100;
+  controlVelocityY = 100;
 
 
@@ -241,6 +243,12 @@
 void Hover::tick (float time)
 {
-  
-  
+  if( xMouse != 0 || yMouse != 0)
+   {
+    if (xMouse > controlVelocityX) xMouse = controlVelocityX;
+    else if (xMouse < -controlVelocityX) xMouse = -controlVelocityX;
+    if (yMouse > controlVelocityY) yMouse = controlVelocityY;
+    else if (yMouse < -controlVelocityY) yMouse = -controlVelocityY;
+   }
+   
   Quaternion xDir = Quaternion(-M_PI/4*xMouse*mouseSensitivity, Vector(0,1,0));
   Quaternion yDir = Quaternion(-M_PI/4*yMouse*mouseSensitivity, Vector(0,0,1));
@@ -261,7 +269,6 @@
   else this->shiftDir(xDir*yDir);
   
-  if((this->getAbsDirZ()).y > 0.1) this->shiftDir(Quaternion(0.01,Vector(1,0,0)));
-  else if((this->getAbsDirZ()).y < -0.1) this->shiftDir(Quaternion(-0.01,Vector(1,0,0)));
-
+  if((this->getAbsDirZ()).y > 0.05) this->shiftDir(Quaternion(0.02,Vector(1,0,0)));
+  else if((this->getAbsDirZ()).y < -0.05) this->shiftDir(Quaternion(-0.02,Vector(1,0,0)));
   
   // spaceship controlled movement
Index: branches/spaceshipcontrol/src/world_entities/space_ships/hover.h
===================================================================
--- branches/spaceshipcontrol/src/world_entities/space_ships/hover.h	(revision 6698)
+++ branches/spaceshipcontrol/src/world_entities/space_ships/hover.h	(revision 6699)
@@ -58,4 +58,6 @@
     float                 yMouse;             //!< mouse moved in y-Direction
     float                 mouseSensitivity;   //!< the mouse sensitivity
+    int                   controlVelocityX;
+    int                   controlVelocityY;
 
     Vector                velocity;           //!< the velocity of the player.
