Index: branches/spaceshipcontrol/src/lib/event/event_handler.cc
===================================================================
--- branches/spaceshipcontrol/src/lib/event/event_handler.cc	(revision 5928)
+++ branches/spaceshipcontrol/src/lib/event/event_handler.cc	(revision 5964)
@@ -47,4 +47,5 @@
   this->flush(ES_ALL);
   this->withUNICODE(false);
+  this->grabEvents(false);
 
   this->state = ES_GAME;
@@ -255,4 +256,12 @@
 }
 
+void EventHandler::grabEvents(bool grabEvents)
+{
+     this->eventsGrabbed = grabEvents;
+     if(!grabEvents)
+      SDL_WM_GrabInput(SDL_GRAB_OFF);
+     else
+      SDL_WM_GrabInput(SDL_GRAB_ON); 
+}
 
 /**
Index: branches/spaceshipcontrol/src/lib/event/event_handler.h
===================================================================
--- branches/spaceshipcontrol/src/lib/event/event_handler.h	(revision 5928)
+++ branches/spaceshipcontrol/src/lib/event/event_handler.h	(revision 5964)
@@ -43,4 +43,5 @@
 
   void withUNICODE(bool enableUNICODE);
+  void grabEvents(bool grabEvents);
 
   void process();
@@ -62,4 +63,5 @@
 
   bool                       bUNICODE;                        //!< If unicode should be enabled.
+  bool                       eventsGrabbed;                   //!< If the events should be grabbed
 };
 
Index: branches/spaceshipcontrol/src/world_entities/space_ships/space_ship.cc
===================================================================
--- branches/spaceshipcontrol/src/world_entities/space_ships/space_ship.cc	(revision 5928)
+++ branches/spaceshipcontrol/src/world_entities/space_ships/space_ship.cc	(revision 5964)
@@ -31,4 +31,6 @@
 #include "key_mapper.h"
 #include "event_handler.h"
+
+#include "graphics_engine.h"
 
 using namespace std;
@@ -110,7 +112,13 @@
   PRINTF(4)("SPACESHIP INIT\n");
 
-
-  bUp = bDown = bLeft = bRight = bAscend = bDescend = false;
+  EventHandler::getInstance()->grabEvents(true);
+
+  bUp = bDown = bLeft = bRight = bAscend = bDescend = bRollL = bRollR = false;
   bFire = false;
+  xMouse = yMouse = 0;
+  mouseSensitivity = 0.001;
+  
+  
+  
 
   travelSpeed = 15.0;
@@ -124,8 +132,10 @@
 
   //add events to the eventlist
-  registerEvent(KeyMapper::PEV_UP);
-  registerEvent(KeyMapper::PEV_DOWN);
-  registerEvent(KeyMapper::PEV_LEFT);
-  registerEvent(KeyMapper::PEV_RIGHT);
+  registerEvent(SDLK_w);
+  registerEvent(SDLK_s);
+  registerEvent(SDLK_a);
+  registerEvent(SDLK_d);
+  registerEvent(SDLK_q);
+  registerEvent(SDLK_e);
   registerEvent(KeyMapper::PEV_FIRE1);
   registerEvent(KeyMapper::PEV_NEXT_WEAPON);
@@ -262,7 +272,7 @@
   
   // this is the air friction (necessary for a smooth control)
-  if(velocity.len() != 0) velocity -= velocity*0.005;
-  
-  this->shiftDir(Quaternion(-M_PI/4*xMouse*time/5, Vector(0,1,0))*Quaternion(-M_PI/4*yMouse*time/5, Vector(0,0,1)));
+  if(velocity.len() != 0) velocity -= velocity*0.01;
+  
+  //SDL_WarpMouse(GraphicsEngine::getInstance()->getResolutionX()/2, GraphicsEngine::getInstance()->getResolutionY()/2);
 
   this->shiftCoor (move);
@@ -288,5 +298,5 @@
    {
      //this->shiftCoor(this->getAbsDirX());
-      accel += this->getAbsDirX();
+      accel += (this->getAbsDirX())*2;
    }
 
@@ -294,5 +304,5 @@
    {
      //this->shiftCoor((this->getAbsDirX())*-1);
-     accel -= this->getAbsDirX();
+     accel -= (this->getAbsDirX())*2;
    }
 
@@ -308,4 +318,22 @@
   {
     this->shiftDir(Quaternion(-time, Vector(0,1,0)));
+
+    //    accel += rightDirection;
+    //velocityDir.normalize();
+    //rot += Vector(1,0,0);
+    //rotVal += .4;
+  }
+  
+  if( this->bRollL /* > -this->getRelCoor().z*2*/)
+  {
+    this->shiftDir(Quaternion(-time, Vector(1,0,0)));
+//    accel -= rightDirection;
+    //velocityDir.normalize();
+    //rot +=Vector(1,0,0);
+    //rotVal -= .4;
+  }
+  if( this->bRollR /* > this->getRelCoor().z*2*/)
+  {
+    this->shiftDir(Quaternion(time, Vector(1,0,0)));
 
     //    accel += rightDirection;
@@ -354,12 +382,10 @@
 void SpaceShip::process(const Event &event)
 {
-  if( event.type == KeyMapper::PEV_UP)
-      this->bUp = event.bPressed;
-  else if( event.type == KeyMapper::PEV_DOWN)
-      this->bDown = event.bPressed;
-  else if( event.type == KeyMapper::PEV_RIGHT)
-      this->bRight= event.bPressed;
-  else if( event.type == KeyMapper::PEV_LEFT)
-      this->bLeft = event.bPressed;
+  
+  
+  if( event.type == SDLK_a)
+      this->bRollL = event.bPressed;
+  else if( event.type == SDLK_d)
+      this->bRollR = event.bPressed;
   else if( event.type == KeyMapper::PEV_FIRE1)
       this->bFire = event.bPressed;
@@ -369,12 +395,13 @@
     this->getWeaponManager()->previousWeaponConfig();
 
-  else if( event.type == SDLK_PAGEUP)
-    this->bAscend = event.bPressed; //this->shiftCoor(0,.1,0);
-  else if( event.type == SDLK_PAGEDOWN)
-    this->bDescend = event.bPressed; //this->shiftCoor(0,-.1,0);
+  else if( event.type == SDLK_w)
+    this->bUp = event.bPressed; //this->shiftCoor(0,.1,0);
+  else if( event.type == SDLK_s)
+    this->bDown = event.bPressed; //this->shiftCoor(0,-.1,0);
   else if( event.type == EV_MOUSE_MOTION)
   {
     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)));
   }
 }
Index: branches/spaceshipcontrol/src/world_entities/space_ships/space_ship.h
===================================================================
--- branches/spaceshipcontrol/src/world_entities/space_ships/space_ship.h	(revision 5928)
+++ branches/spaceshipcontrol/src/world_entities/space_ships/space_ship.h	(revision 5964)
@@ -55,7 +55,10 @@
     bool                  bDescend;           //!< descend button presses.
     bool                  bFire;              //!< fire button pressed.
+    bool                  bRollL;             //!< rolling button pressed (left)
+    bool                  bRollR;             //!< rolling button pressed (right)
     
     float                 xMouse;             //!< mouse moved in x-Direction
     float                 yMouse;             //!< mouse moved in y-Direction
+    float                 mouseSensitivity;   //!< the mouse sensitivity
 
     Vector                velocity;           //!< the velocity of the player.
Index: branches/spaceshipcontrol/src/world_entities/weapons/crosshair.cc
===================================================================
--- branches/spaceshipcontrol/src/world_entities/weapons/crosshair.cc	(revision 5928)
+++ branches/spaceshipcontrol/src/world_entities/weapons/crosshair.cc	(revision 5964)
@@ -122,5 +122,5 @@
   if  (event.type == EV_MOUSE_MOTION)
   {
-    this->setAbsCoor2D(event.x, event.y);
+    //this->setAbsCoor2D(event.x, event.y);
   }
 }
@@ -157,5 +157,5 @@
                &objZ );
 
-  this->setAbsCoor(objX, objY, objZ);
+  //this->setAbsCoor(objX, objY, objZ);
 }
 
