Index: /branches/presentation/src/ai/attack_module.cc
===================================================================
--- /branches/presentation/src/ai/attack_module.cc	(revision 10713)
+++ /branches/presentation/src/ai/attack_module.cc	(revision 10714)
@@ -76,5 +76,5 @@
 	//float vMax=1000.0f/myRadius;
 	float vMax=maxSpeed;
-	float aMax=1000/myRadius;
+// 	float aMax=1000/myRadius;
 
 	//anti player collision
Index: /branches/presentation/src/lib/graphics/importer/static_model.cc
===================================================================
--- /branches/presentation/src/lib/graphics/importer/static_model.cc	(revision 10713)
+++ /branches/presentation/src/lib/graphics/importer/static_model.cc	(revision 10714)
@@ -82,4 +82,5 @@
 void StaticModel::finalize()
 {
+  this->extractMountPoints();
   data->finalize();
   this->updateBase();
@@ -100,8 +101,8 @@
 void StaticModel::extractMountPoints()
 {
-
+  printf("extracting MP...");
   // go through all groups and check if they are mounts
-  std::vector<StaticModelData::Group>::const_iterator groupIt = this->data->getGroups().begin();
-  for( ; groupIt != this->data->getGroups().end(); groupIt++)
+  std::vector<StaticModelData::Group>::iterator groupIt = this->data->getGroups().begin();
+  for( ; groupIt != this->data->getGroups().end();)
   {
     //PRINTF(0)("Found a MountPoint: %s\n", groupName.c_str());
@@ -112,7 +113,9 @@
 
     // check if the name has a "MP" prefix or else it won't work
-    if( groupName.find("MP.", 0) == std::string::npos)
+    if( groupName.find("MP.", 0) == std::string::npos){
+      groupIt++;
+//       printf("Found MP:  ");
       continue;
-
+    }
 
     PRINTF(5)("Found a MountPoint: %s\n", groupName.c_str());
@@ -125,4 +128,7 @@
       PRINTF(4)("the face count of %s is wrong, perhaps you missnamed this object or used the wrong mount point object (got %i faces)\n",
                 groupName.c_str(), (*groupIt)._faces.size());
+//       printf("wrong number of faces\n\n");
+      groupIt++;
+      continue;
     }
 
@@ -137,4 +143,5 @@
     }
 
+//     printf("confirmed  ");
 
     Vector center;
@@ -143,16 +150,21 @@
     Vector zAxis;
     // now process all points
+//     printf("entering loop: ");
     for( int i = 0; i < 3; i++)
     {
+//       printf("%i ", i);
       // convert the float vertices to vectors
       Vector a( this->data->getVertices()[triangle[i]._elements[0].vertexNumber * 3],
                 this->data->getVertices()[triangle[i]._elements[0].vertexNumber * 3 + 1],
                 this->data->getVertices()[triangle[i]._elements[0].vertexNumber * 3 + 2]);
+//       printf("a");
       Vector b( this->data->getVertices()[triangle[i]._elements[1].vertexNumber * 3],
                 this->data->getVertices()[triangle[i]._elements[1].vertexNumber * 3 + 1],
                 this->data->getVertices()[triangle[i]._elements[1].vertexNumber * 3 + 2]);
+//       printf("b");
       Vector c( this->data->getVertices()[triangle[i]._elements[2].vertexNumber * 3],
                 this->data->getVertices()[triangle[i]._elements[2].vertexNumber * 3 + 1],
                 this->data->getVertices()[triangle[i]._elements[2].vertexNumber * 3 + 2]);
+//       printf("c  ");
 
       Vector ab = a - b;
@@ -208,7 +220,17 @@
     }
 
+//     printf("adding MP\n");
     // now add the mount point
      this->addMountPoint( zAxis, yAxis, center, groupName);
+
+//     printf("removing item...");
+    // remove the group from the model list (mount points do not need to be drawn)
+//      std::vector<StaticModelData::Group>::iterator tmpIt =  groupIt;
+     groupIt++;
+//     printf("   removing...");
+//      this->data->getGroups().erase(tmpIt);
+//     printf("   REMOVED\n");
   }
+//   printf("done\n");
 }
 
Index: /branches/presentation/src/lib/graphics/importer/static_model_data.h
===================================================================
--- /branches/presentation/src/lib/graphics/importer/static_model_data.h	(revision 10713)
+++ /branches/presentation/src/lib/graphics/importer/static_model_data.h	(revision 10714)
@@ -129,5 +129,5 @@
   ///! HACK SOLUTION sTriangleExt should be const in the modelInfo.
   sTriangleExt* getTrianglesExt() { return &this->triangles[0]; };
-  const std::vector<Group>& getGroups() { return this->_modelGroups; }
+  std::vector<Group>& getGroups() { return this->_modelGroups; }
 
   float getScaleFactor() const  { return scaleFactor; }
Index: /branches/presentation/src/world_entities/creatures/fps_player.cc
===================================================================
--- /branches/presentation/src/world_entities/creatures/fps_player.cc	(revision 10713)
+++ /branches/presentation/src/world_entities/creatures/fps_player.cc	(revision 10714)
@@ -304,5 +304,5 @@
 //      this->weaponMan.setRelCoor(0, box->halfLength[1] * f, 0);
 //      this->cameraNode.setRelCoor(10, box->halfLength[1] * f, 0);
-     float v = 0.1f;
+//      float v = 0.1f; // unused variable
      //this->getWeaponManager().setSlotPosition(0, Vector(-8.0, box->halfLength[1] * v, 1.1));
      //this->getWeaponManager().setSlotPosition(1, Vector(5.0, box->halfLength[1] * v, 0.0));
Index: /branches/presentation/src/world_entities/space_ships/space_ship.cc
===================================================================
--- /branches/presentation/src/world_entities/space_ships/space_ship.cc	(revision 10713)
+++ /branches/presentation/src/world_entities/space_ships/space_ship.cc	(revision 10714)
@@ -274,4 +274,5 @@
   registerVar( new SynchronizeableBool( &bFire, &bFire, "bSecFire", PERMISSION_OWNER));
   registerVar( new SynchronizeableVector( &velocity, &velocity, "velocity", PERMISSION_MASTER_SERVER ) );
+//   registerVar( new SynchronizeableQuaternion( &mouseDir, &mouseDir, "mousedir", PERMISSION_OWNER ) );
 
   //this->airFriction = 0.5f;
@@ -554,5 +555,5 @@
 void SpaceShip::process(const Event &event)
 {
-  //Playable::process(event);
+//   Playable::process(event);
 
   if( event.type == KeyMapper::PEV_LEFT)
@@ -572,6 +573,8 @@
   else if( event.type == KeyMapper::PEV_FIRE2)
     this->bSecFire = event.bPressed;
-  else if( event.type == KeyMapper::PEV_FIRE1)
+  else if( event.type == KeyMapper::PEV_FIRE1){
+    printf("fireing primary");
     this->bFire = event.bPressed;
+  }
   else if( event.type == KeyMapper::PEV_NEXT_WEAPON && event.bPressed)
   {
@@ -580,6 +583,15 @@
   else if ( event.type == KeyMapper::PEV_PREVIOUS_WEAPON && event.bPressed)
     this->previousWeaponConfig();
-
-  if (!(State::getCamera()->getEventHandling()))
+  else if( event.type == EV_MOUSE_MOTION)
+  {
+//     printf("Spaceship Mouse Motion Event\n");
+//     dynamic_cast<Crosshair*>(this->weaponMan.getFixedTarget())->process(event);
+//     this->weaponMan.process(event);
+    this->xMouse += event.xRel;
+    this->yMouse += event.yRel;
+//     printf("Mouse Coord: %f, %f\n", this->xMouse, this->yMouse);
+    this->weaponMan.getFixedTarget()->setRelCoor(10000, 4*xMouse, 4*yMouse);
+  }
+  else if (!(State::getCamera()->getEventHandling()))
   {
     //PRINTF(0)("\n\n\n\n\n\n\n\nSETCAMERA %x\n\n\n\n\n\n\n", State::getCamera());
@@ -622,13 +634,4 @@
   }
 
-
-  /*
-  else if( event.type == EV_MOUSE_MOTION)
-  {
-
-    this->xMouse += event.xRel;
-    this->yMouse += event.yRel;
-  }
-  */
 }
 
@@ -821,5 +824,5 @@
         State::getCamera()->setEventHandling(false);
 
-        PRINTF(0)("\n\n\n\n\n\n\n\nSETCAMERA %x\n\n\n\n\n\n\n", State::getCamera());
+        PRINTF(0)("SETCAMERA %x\n", State::getCamera());
         State::getCamera()->setViewMode(Camera::ViewNormal);
         State::getCameraTargetNode()->setParent(this);
Index: /branches/presentation/src/world_entities/space_ships/space_ship.h
===================================================================
--- /branches/presentation/src/world_entities/space_ships/space_ship.h	(revision 10713)
+++ /branches/presentation/src/world_entities/space_ships/space_ship.h	(revision 10714)
@@ -168,12 +168,12 @@
     bool                  bInit;              //!< set true, if MP have been loaded
 
-    /*
+
     float                 xMouse;             //!< mouse moved in x-Direction
     float                 yMouse;             //!< mouse moved in y-Direction
     float                 mouseSensitivity;   //!< the mouse sensitivity
-    int                   yInvert;
-    int                   controlVelocityX;
-    int                   controlVelocityY;
-    */
+//     int                   yInvert;
+//     int                   controlVelocityX;
+//     int                   controlVelocityY;
+
 
     Vector                velocity;           //!< the velocity of the player.
@@ -199,7 +199,7 @@
     void                  setCameraFovy(float fovy);
 
-    /*
+
     Quaternion            mouseDir;           //!< the direction where the player wants to fly
-    Quaternion            oldMouseDir;        //!< the direction where the player wanted to fly
+    /*Quaternion            oldMouseDir;        //!< the direction where the player wanted to fly
     float                 shipInertia;        //!< the inertia of the ship(how fast the ship reacts to a mouse input)
     Quaternion            rotQuat;
Index: /branches/presentation/src/world_entities/weapons/crosshair.cc
===================================================================
--- /branches/presentation/src/world_entities/weapons/crosshair.cc	(revision 10713)
+++ /branches/presentation/src/world_entities/weapons/crosshair.cc	(revision 10714)
@@ -115,5 +115,6 @@
   if  (event.type == EV_MOUSE_MOTION)
   {
-    //this->setAbsCoor2D(event.x, event.y);
+    printf("Processing Crosshair Mouse Event\n");
+    this->setAbsCoor2D(event.x, event.y);
   }
 }
Index: /branches/presentation/src/world_entities/weapons/rf_cannon.cc
===================================================================
--- /branches/presentation/src/world_entities/weapons/rf_cannon.cc	(revision 10713)
+++ /branches/presentation/src/world_entities/weapons/rf_cannon.cc	(revision 10714)
@@ -138,5 +138,6 @@
 
   pj->setAbsCoor(this->emissionPoint[this->activeBarrel]->getAbsCoor());
-  pj->setAbsDir(this->getAbsDir());
+//   pj->setAbsDir(this->getAbsDir());
+//   pj->setAbsDir(Quaternion(0, dynamic_cast<WeaponManager*>(this->getParent())->getFixedTarget()->getAbsCoor() - this->getParent()->getAbsCoor()));
   pj->activate();
 
Index: /branches/presentation/src/world_entities/weapons/weapon_manager.cc
===================================================================
--- /branches/presentation/src/world_entities/weapons/weapon_manager.cc	(revision 10713)
+++ /branches/presentation/src/world_entities/weapons/weapon_manager.cc	(revision 10714)
@@ -630,3 +630,14 @@
 }
 
-
+/**
+ * processes the input
+ * @param event the Event coming as input
+ */
+// void WeaponManager::process(const Event &event)
+// {
+//   if  (event.type == EV_MOUSE_MOTION)
+//   {
+//     this->crosshair->process(event);
+// //     this->setAbsCoor2D(event.x, event.y);
+//   }
+// }
Index: /branches/presentation/src/world_entities/weapons/weapon_manager.h
===================================================================
--- /branches/presentation/src/world_entities/weapons/weapon_manager.h	(revision 10713)
+++ /branches/presentation/src/world_entities/weapons/weapon_manager.h	(revision 10714)
@@ -55,4 +55,7 @@
     void hideCrosshair();
     void setRotationSpeed(float speed);
+//     Crosshair* getCrosshair() {return this->crosshair; };
+
+//     virtual void process(const Event &event);
 
     void setSlotCount(unsigned int slotCount);
Index: /branches/presentation/src/world_entities/world_entity.cc
===================================================================
--- /branches/presentation/src/world_entities/world_entity.cc	(revision 10713)
+++ /branches/presentation/src/world_entities/world_entity.cc	(revision 10714)
@@ -347,4 +347,7 @@
 
   // extract the mount points
+  // Patrick: they get extracted automaticaly now within the model finalization process
+  /*
+
   if(model != NULL)
     model->extractMountPoints();
@@ -353,5 +356,5 @@
     PRINTF(0)("Worldentity %s has no mount points", (this->getName()).c_str());
     return;
-  }
+  }*/
 
   // first get all mount points from the model
