Index: /branches/presentation/src/lib/graphics/importer/static_model.cc
===================================================================
--- /branches/presentation/src/lib/graphics/importer/static_model.cc	(revision 10727)
+++ /branches/presentation/src/lib/graphics/importer/static_model.cc	(revision 10728)
@@ -101,8 +101,8 @@
 void StaticModel::extractMountPoints()
 {
-  printf("extracting MP...");
+//   printf("extracting MP...");
   // go through all groups and check if they are mounts
   std::vector<StaticModelData::Group>::iterator groupIt = this->data->getGroups().begin();
-  for( ; groupIt != this->data->getGroups().end();)
+  for( ; groupIt != this->data->getGroups().end(); groupIt++)
   {
     //PRINTF(0)("Found a MountPoint: %s\n", groupName.c_str());
@@ -114,5 +114,5 @@
     // check if the name has a "MP" prefix or else it won't work
     if( groupName.find("MP.", 0) == std::string::npos){
-      groupIt++;
+//       groupIt++;
 //       printf("Found MP:  ");
       continue;
@@ -129,5 +129,5 @@
                 groupName.c_str(), (*groupIt)._faces.size());
 //       printf("wrong number of faces\n\n");
-      groupIt++;
+//       groupIt++;
       continue;
     }
@@ -226,8 +226,8 @@
 //     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++;
+     std::vector<StaticModelData::Group>::iterator tmpIt =  groupIt;
+//      groupIt++;
 //     printf("   removing...");
-//      this->data->getGroups().erase(tmpIt);
+     this->data->getGroups().erase(tmpIt);
 //     printf("   REMOVED\n");
   }
Index: /branches/presentation/src/util/track/action_box.cc
===================================================================
--- /branches/presentation/src/util/track/action_box.cc	(revision 10727)
+++ /branches/presentation/src/util/track/action_box.cc	(revision 10728)
@@ -98,7 +98,7 @@
   assert( _track );
   assert( State::getActionBox() == NULL );
-  
+
   State::setActionBox( this );
-  
+
   this->width_2 = width_2;
   this->height_2 = height_2;
@@ -106,7 +106,7 @@
   this->stretch = stretch;
   this->track = _track;
-  
+
   setParent( _track->getTrackNode() );
-    
+
   toList( OM_COMMON );
 }
Index: /branches/presentation/src/util/track/action_box.h
===================================================================
--- /branches/presentation/src/util/track/action_box.h	(revision 10727)
+++ /branches/presentation/src/util/track/action_box.h	(revision 10728)
@@ -16,26 +16,26 @@
     virtual void tick (float time);
     virtual void draw () const;
-    
+
     ActionBox( Track* _track, float width_2, float height_2, float depth, float stretch );
     ~ActionBox();
-    
-       
+
+
     bool isPointInBox( const Vector& pos );
-    
+
     float getWidth_2(){ return width_2; }
     float getHeight_2(){ return height_2; }
     float getDepth(){ return depth; }
     float getStretch(){ return stretch; }
-    
+
   private:
     void updatePlanes();
-    
+
     float width_2;   //! width/2 of near plane
     float height_2;  //! height/2 of near plane
     float depth;     //! distance between near and far plane
     float stretch;   //! far plane will be stretched by this factor
-    
+
     Track* track;
-    
+
     Plane planes[6];  //! planes for collision. normale must point towards middle
 };
Index: /branches/presentation/src/world_entities/projectiles/nadion_blast.cc
===================================================================
--- /branches/presentation/src/world_entities/projectiles/nadion_blast.cc	(revision 10727)
+++ /branches/presentation/src/world_entities/projectiles/nadion_blast.cc	(revision 10728)
@@ -213,6 +213,7 @@
   float matrix[4][4];
   glTranslatef (this->getAbsCoor ().x, this->getAbsCoor ().y, this->getAbsCoor ().z);
-  glRotatef(this->angle, 1.0f, 0.0f, 0.0f); //spinning missile
-//   glRotatef(this->angle, this->flightDirection.x, this->flightDirection.y, this->flightDirection.z);
+//   glRotatef(this->angle, 1.0f, 0.0f, 0.0f); //spinning missile 
+// HACK, need to be removed, once the AbsDir is correct, replace with the one above
+  glRotatef(this->angle, this->flightDirection.x, this->flightDirection.y, this->flightDirection.z); 
   this->getAbsDir().matrix (matrix);
   glMultMatrixf((float*)matrix);
Index: /branches/presentation/src/world_entities/space_ships/space_ship.cc
===================================================================
--- /branches/presentation/src/world_entities/space_ships/space_ship.cc	(revision 10727)
+++ /branches/presentation/src/world_entities/space_ships/space_ship.cc	(revision 10728)
@@ -453,23 +453,23 @@
 {
 
-//   if( !this->bInit)
-//   {
-//     // now get slots from the mount points
-//     std::map<int, MountPoint*>::iterator it = this->mountPointMap.begin();
-//     for( ;it != this->mountPointMap.end(); it++)
-//     {
-//       WeaponSlot* ws = dynamic_cast<WeaponSlot*>((*it).second->getMount());
-//       if( ws != NULL && ws->isA(WeaponSlot::staticClassID()))
-//       {
-//         int slot = ws->getWeaponSlot();
-// //         int side = ws->getWeaponSide(); //FIXME / REMOVE: is not used// HACK needed for some weapons (left/right)
-//         this->getWeaponManager().setSlotPosition(slot, (*it).second->getCenter());
-//         this->getWeaponManager().setSlotDirection(slot, ws->getRelDir());
-// //         PRINTF(0)("setting slot %i\n", slot);
-// //         (*it).second->getCenter().debug();
-//       }
-//     }
-//   this->bInit = true;
-//   }
+  if( !this->bInit)
+  {
+    // now get slots from the mount points
+    std::map<int, MountPoint*>::iterator it = this->mountPointMap.begin();
+    for( ;it != this->mountPointMap.end(); it++)
+    {
+      WeaponSlot* ws = dynamic_cast<WeaponSlot*>((*it).second->getMount());
+      if( ws != NULL && ws->isA(WeaponSlot::staticClassID()))
+      {
+        int slot = ws->getWeaponSlot();
+//         int side = ws->getWeaponSide(); //FIXME / REMOVE: is not used// HACK needed for some weapons (left/right)
+        this->getWeaponManager().setSlotPosition(slot, (*it).second->getCenter());
+        this->getWeaponManager().setSlotDirection(slot, ws->getRelDir());
+//         PRINTF(0)("setting slot %i\n", slot);
+//         (*it).second->getCenter().debug();
+      }
+    }
+  this->bInit = true;
+  }
 
   // Playable::tick(time);
Index: /branches/presentation/src/world_entities/weapons/disruptor.cc
===================================================================
--- /branches/presentation/src/world_entities/weapons/disruptor.cc	(revision 10727)
+++ /branches/presentation/src/world_entities/weapons/disruptor.cc	(revision 10728)
@@ -125,7 +125,7 @@
 
 
+  this->shootAnim[0][0]->addKeyFrame(Vector(0.0, 0.0, 0.0) * this->getScaling(), Quaternion(), 0.0333, ANIM_LINEAR, ANIM_NULL);
+  this->shootAnim[0][0]->addKeyFrame(Vector(-0.5, 0.0, 0.0) * this->getScaling(), Quaternion(), 0.2, ANIM_LINEAR, ANIM_NULL);
   this->shootAnim[0][0]->addKeyFrame(Vector(0.0, 0.0, 0.0) * this->getScaling(), Quaternion(), 0.1, ANIM_LINEAR, ANIM_NULL);
-  this->shootAnim[0][0]->addKeyFrame(Vector(-0.5, 0.0, 0.0) * this->getScaling(), Quaternion(), 0.2, ANIM_LINEAR, ANIM_NULL);
-//   this->shootAnim[0][0]->addKeyFrame(Vector(0.0, 0.0, 0.0) * this->getScaling(), Quaternion(), 0.1, ANIM_LINEAR, ANIM_NULL);
 
   Animation3D* animation2 = this->getAnimation(WS_ACTIVATING, this);
Index: /branches/presentation/src/world_entities/weapons/nadion_laser.cc
===================================================================
--- /branches/presentation/src/world_entities/weapons/nadion_laser.cc	(revision 10727)
+++ /branches/presentation/src/world_entities/weapons/nadion_laser.cc	(revision 10728)
@@ -148,4 +148,6 @@
   pj->setAbsCoor(this->getEmissionPoint());
 //   pj->setAbsDir(Quaternion(this->getDefaultTarget()->getAbsCoor() - this->getAbsCoor(), Vector(0,0,0)));
+//   pj->setAbsDir(Quaternion(tmp.getNormalized(), this->getParent()->getAbsDir().apply(Vector(0,1,0))));
+
   pj->setAbsDir(this->getAbsDir());
   pj->activate();
Index: /branches/presentation/src/world_entities/weapons/rf_cannon.cc
===================================================================
--- /branches/presentation/src/world_entities/weapons/rf_cannon.cc	(revision 10727)
+++ /branches/presentation/src/world_entities/weapons/rf_cannon.cc	(revision 10728)
@@ -142,4 +142,5 @@
   pj->setAbsCoor(this->emissionPoint[this->activeBarrel]->getAbsCoor());
 //   pj->setAbsDir(this->getAbsDir());
+//   pj->setAbsDir(Quaternion(tmp.getNormalized(), this->getParent()->getAbsDir().apply(Vector(0,1,0))));
 
   pj->activate();
Index: /branches/presentation/src/world_entities/weapons/weapon_manager.h
===================================================================
--- /branches/presentation/src/world_entities/weapons/weapon_manager.h	(revision 10727)
+++ /branches/presentation/src/world_entities/weapons/weapon_manager.h	(revision 10728)
@@ -55,7 +55,5 @@
     void hideCrosshair();
     void setRotationSpeed(float speed);
-//     Crosshair* getCrosshair() {return this->crosshair; };
 
-//     virtual void process(const Event &event);
 
     void setSlotCount(unsigned int slotCount);
@@ -63,5 +61,4 @@
     // setting up the WeaponManager with the following functions
     void setSlotPosition(int slot, const Vector& position, PNode* parent = NULL);
-//     inline void setSlotPosition(float slot, float x, float y,float z) {setSlotPosition((int)slot, Vector(x,y,z));};
     void setSlotDirection(int slot, const Quaternion& rotation);
     /** @param slot the slot to get the relative position from @returns the relative position of the Carrier to the Slot */
@@ -104,7 +101,5 @@
 
     void fire();
-    //! @TODO: implement this function (maybe also in Weapon itself)
     void releaseFire();
-    //inline void setFire() { this->bFire = true; };
 
     void tick(float dt);
@@ -113,5 +108,5 @@
     void debug() const;
 
- // private:
+
     int getNextFreeSlot(int configID, long capability = WTYPE_ALL);
     CountPointer<AmmoContainer>& getAmmoContainer(const ClassID& projectileType);
