Index: /branches/spaceshipcontrol/src/world_entities/space_ships/space_ship.cc
===================================================================
--- /branches/spaceshipcontrol/src/world_entities/space_ships/space_ship.cc	(revision 6722)
+++ /branches/spaceshipcontrol/src/world_entities/space_ships/space_ship.cc	(revision 6723)
@@ -367,5 +367,9 @@
      //this->shiftCoor((this->getAbsDirX())*-1);
      //accel -= (this->getAbsDirX())*2;
+    //if(velocity.len() > 50)
      accel -= (this->getAbsDirX())*0.5*acceleration;
+
+
+
    }
 
Index: /branches/spaceshipcontrol/src/world_entities/weapons/aim.cc
===================================================================
--- /branches/spaceshipcontrol/src/world_entities/weapons/aim.cc	(revision 6722)
+++ /branches/spaceshipcontrol/src/world_entities/weapons/aim.cc	(revision 6723)
@@ -73,6 +73,7 @@
   this->source = NULL;
 
-  this->range = 0;
-  this->angle = 0;
+  this->range = 10000;
+  this->angle = M_PI_4;
+  this->group = OM_GROUP_01;
   this->anim = new tAnimation<Aim>(this, &Aim::setSize);
   this->anim->setInfinity(ANIM_INF_CONSTANT);
@@ -106,11 +107,7 @@
 {
   std::list<WorldEntity*>::iterator entity;
-  Vector diffVec(0.0, 0.0, 0.0);
-  diffVec = ( this->getAbsCoor() - this->source->getAbsCoor() );
-
-//only look for target if the aim hasn`t locked a target yet or if the actual target is out of range
-  if( this == PNode::getNullParent() || diffVec.len() > range  || ( acos( (this->source->getAbsDirX()).dot(diffVec)/(diffVec.len() * (this->source->getAbsDirX()).len() ) ) > angle))
-  for (entity = State::getObjectManager()->getObjectList(OM_GROUP_00).begin();
-       entity != State::getObjectManager()->getObjectList(OM_GROUP_00).end();
+
+  for (entity = State::getObjectManager()->getObjectList(group).begin();
+       entity != State::getObjectManager()->getObjectList(group).end();
        entity ++)
   {
@@ -119,5 +116,5 @@
     if ( diffVec.len() < range  &&  acos( (this->source->getAbsDirX()).dot(diffVec)/(diffVec.len() * (this->source->getAbsDirX()).len() ) ) < angle)
     {
-      if (this->getParent() != (*entity))
+      //if (this->getParent() != (*entity))
       {
         this->anim->replay();
@@ -127,6 +124,10 @@
     }
   }
-//if no target found:
-  this->setParent(PNode::getNullParent());
+
+   //if no target found:
+   this->setParent(PNode::getNullParent());
+
+
+
 }
 
@@ -165,5 +166,13 @@
 
 //  if (this->source->getAbsCoor().x > this->getAbsCoor().x )
+  diffVec = ( this->getAbsCoor() - this->source->getAbsCoor() );
+//only look for target if the aim hasn`t locked a target yet or if the actual target is out of range
+   if(this->getParent() == PNode::getNullParent() || 
+      diffVec.len() > range  || 
+      ( acos( (this->source->getAbsDirX()).dot(diffVec)/(diffVec.len() * (this->source->getAbsDirX()).len() ) ) > angle))
+    {
      this->searchTarget();
+    }
+
 //   float z = 0.0f;
 //   glReadPixels ((int)this->getAbsCoor2D().x,
@@ -196,4 +205,6 @@
 {
 
+ if( this->getParent() != PNode::getNullParent() )
+  {
   glPushMatrix();
   glTranslatef(this->getAbsCoor2D().x, this->getAbsCoor2D().y, 0);
@@ -212,4 +223,5 @@
   glEnd();
   glPopMatrix();
-
-}
+  }
+
+}
Index: /branches/spaceshipcontrol/src/world_entities/weapons/aim.h
===================================================================
--- /branches/spaceshipcontrol/src/world_entities/weapons/aim.h	(revision 6722)
+++ /branches/spaceshipcontrol/src/world_entities/weapons/aim.h	(revision 6723)
@@ -9,4 +9,5 @@
 #include "p_node.h"
 #include "element_2d.h"
+#include "object_manager.h"
 
 // FORWARD DECLARATION
@@ -42,4 +43,5 @@
   void setRange(float range){this->range = range;};
   void setAngle(float angle){this->angle = angle;};
+  void setGroup(OM_LIST group){this->group = group;};
 
   void setSize(float size);
@@ -58,4 +60,6 @@
    float            range;                //!<
    float            angle;                //!<
+   Vector           diffVec;
+   OM_LIST          group;
 
    PNode*           source;               //!< Where this Shot has come from.
Index: /branches/spaceshipcontrol/src/world_entities/weapons/aiming_turret.cc
===================================================================
--- /branches/spaceshipcontrol/src/world_entities/weapons/aiming_turret.cc	(revision 6722)
+++ /branches/spaceshipcontrol/src/world_entities/weapons/aiming_turret.cc	(revision 6723)
@@ -98,6 +98,6 @@
   this->target = new Aim(this);
   this->target->setVisibility(false);
-  this->target->setRange(100);
-  this->target->setAngle(M_PI);
+  this->target->setRange(1000);
+  this->target->setAngle(M_PI_4);
 }
 
@@ -148,5 +148,4 @@
   pj->setAbsDir(this->getAbsDir());
   pj->activate();
-  this->target->searchTarget();
 }
 
Index: /branches/spaceshipcontrol/src/world_entities/weapons/targeting_turret.cc
===================================================================
--- /branches/spaceshipcontrol/src/world_entities/weapons/targeting_turret.cc	(revision 6722)
+++ /branches/spaceshipcontrol/src/world_entities/weapons/targeting_turret.cc	(revision 6723)
@@ -93,5 +93,5 @@
   this->target->setVisibility(false);
   this->target->setRange(100);
-  this->target->setAngle(M_PI_4/2);
+  this->target->setAngle(M_PI_4/16);
   this->lockedTime = 0;
   this->neededLockTime = 2;
@@ -147,10 +147,10 @@
             /*target->getAbsCoor() - this->getAbsCoor()*/)*.5);//this->getVelocity());
 
-  pj->setTarget(this->target->getParent());
+  pj->setTarget(lockedTarget);
   pj->setParent(PNode::getNullParent());
   pj->setAbsCoor(this->getEmissionPoint());
   pj->setAbsDir(this->getAbsDir());
   pj->activate();
-  this->target->searchTarget();
+  
 }
 
