Index: branches/playability/src/world_entities/space_ships/space_ship.cc
===================================================================
--- branches/playability/src/world_entities/space_ships/space_ship.cc	(revision 10042)
+++ branches/playability/src/world_entities/space_ships/space_ship.cc	(revision 10043)
@@ -375,8 +375,6 @@
   this->travelDistancePlus = Vector2D(38.0, 43.0);
   this->travelDistanceMinus = Vector2D(-38.0, -43.0);
-  this->travelSpeed = 80;
   this->cameraSpeed = 40;
   this->cameraLook = 0.0f;
-  this->acceleration = 120.0f;
   //this->airFriction = 0.0f;
 
@@ -404,9 +402,4 @@
 {
   //this->direction = Quaternion (rot.getHeading(), Vector(0,1,0));
-}
-
-void SpaceShip::setTravelSpeed(float travelSpeed)
-{
-  this->travelSpeed = travelSpeed;
 }
 
@@ -533,4 +526,7 @@
   this->engineSpeedCur = this->engineSpeedBase + this->reactorOutput * this->engineEnergyShare;
 
+  // calculation of maxSpeed and acceleration:
+  this->travelSpeed = this->engineSpeedCur * 5;
+  this->acceleration = this->travelSpeed * 2;
 
   /*
@@ -569,6 +565,6 @@
   this->cameraNode.setRelDirSoft(this->getAbsDir(), 30.0f);
 
-  this->burstEmitter->setEmissionRate(travelSpeed);
-  this->burstEmitter->setEmissionVelocity(travelSpeed*.5, travelSpeed *.1);
+  this->burstEmitter->setEmissionRate(this->cameraSpeed + (velocity.z>0)*velocity.z);
+  this->burstEmitter->setEmissionVelocity(this->cameraSpeed + (velocity.z>0)*velocity.z, travelSpeed *.1);
 
   //orient the spaceship in direction of the mouse
@@ -833,7 +829,5 @@
   //the ship doesn't slide too much. 
   float airCoeff = 2.5;
-
   float pi = 3.14;
-
   
 
@@ -883,5 +877,4 @@
       if( this->systemFailure() )
         bForward = bBackward = bLeft = bRight = false;
-    
     
       if( this->bForward )
@@ -940,5 +933,5 @@
           this->velocity.z = 0.0f;
         }
-        this->setRelDirSoft(Quaternion(-pi/6, Vector(1,0,0)), 3);
+        this->setRelDirSoft(Quaternion(-pi/6, Vector(1,0,0)), 6);
       }
     
@@ -960,21 +953,32 @@
           this->velocity.z = 0.0f;
         }
-        this->setRelDirSoft(Quaternion(pi/6, Vector(1,0,0)), 3);
+        this->setRelDirSoft(Quaternion(pi/6, Vector(1,0,0)), 6);
       }
       if (!this->bRight && !this->bLeft)
       {
-        this->setRelDirSoft(Quaternion(0, Vector(1,0,0)), 3);
-      }
+        this->setRelDirSoft(Quaternion(0, Vector(1,0,0)), 6);
+      }
+      
 
       this->travelNode->shiftCoor(Vector(this->cameraSpeed * dt, 0, 0));
       this->shiftCoor (this->velocity * dt);
 
-
-      break;
+    //normalisation of the vectors (vector sum must be <= travelspeed)
+    float xzNorm = sqrt(pow(this->velocity.x, 2) + pow(this->velocity.z, 2));
+    if (xzNorm > this->travelSpeed)
+    {
+      this->velocity.x = this->velocity.x/xzNorm * this->travelSpeed;
+      this->velocity.z = this->velocity.z/xzNorm * this->travelSpeed;
+    }
+
+    //this moves camera and ship along the travel path. 
+    this->travelNode->shiftCoor(Vector(this->cameraSpeed * dt, 0, 0));
+    
+    //set new coordinates calculated through key- events. 
+    this->shiftCoor (this->velocity * dt);
+    break;
     }
     case Playable::Vertical:
-    {
       break;
-    }
     default:
       PRINTF(4)("Playmode %s Not Implemented in %s\n", Playable::playmodeToString(this->getPlaymode()).c_str(), this->getClassCName());
Index: branches/playability/src/world_entities/space_ships/space_ship.h
===================================================================
--- branches/playability/src/world_entities/space_ships/space_ship.h	(revision 10042)
+++ branches/playability/src/world_entities/space_ships/space_ship.h	(revision 10043)
@@ -30,5 +30,4 @@
 
     virtual void setPlayDirection(const Quaternion& rot, float speed = 0.0f);
-    void setTravelSpeed(float travelSpeed);
     /*
     void setTravelHeight(float travelHeight);
@@ -145,5 +144,5 @@
     */
 
-Vector                velocity;           //!< the velocity of the player.
+    Vector                velocity;           //!< the velocity of the player.
 
 // 2D-traveling
