Index: /code/branches/AI_HS15/src/orxonox/controllers/CommonController.cc
===================================================================
--- /code/branches/AI_HS15/src/orxonox/controllers/CommonController.cc	(revision 10762)
+++ /code/branches/AI_HS15/src/orxonox/controllers/CommonController.cc	(revision 10763)
@@ -190,10 +190,11 @@
     void CommonController::moveToPosition(const Vector3& target)
     {
+        float factor = 1;
         if (!this->getControllableEntity())
             return;
         if (this->rank_ == Rank::DIVISIONLEADER)
-            SPEED *= 0.8;
+            factor = 0.8;
         if (this->rank_ == Rank::SECTIONLEADER)
-            SPEED *= 0.9;
+            factor = 0.9;
         
         //100 is (so far) the smallest tolerance (empirically found) that can be reached, 
@@ -233,5 +234,7 @@
                 }
             }
-            this->getControllableEntity()->moveFrontBack(1.2f*SPEED);
+                    orxout (internal_error) << "MOVING" <<endl ;
+
+            this->getControllableEntity()->moveFrontBack(1.2f*SPEED*factor);
         }
         else
@@ -257,13 +260,13 @@
     {
         //check pointers
-        if (!this->getControllableEntity() || !this->target_ || !this->target_->getControllableEntity())
+        if (!this->getControllableEntity() || !this->target_)
             return false;
-        
+
         //check if this points in the direction of target_
 
         Vector3 myPosition = this->getControllableEntity()->getWorldPosition();
-        Vector3 targetPosition = this->target_->getControllableEntity()->getWorldPosition();
+        Vector3 targetPosition = this->target_->getWorldPosition();
         Vector3 differenceVector = targetPosition - myPosition;
-        float scalarProduct = differenceVector * WorldEntity::FRONT;
+        float scalarProduct = differenceVector.dotProduct(WorldEntity::FRONT);
         Vector3 projection = scalarProduct * WorldEntity::FRONT;
         if ((differenceVector - projection).length() > 50)
@@ -282,5 +285,5 @@
                 allyPosition = it->getControllableEntity()->getWorldPosition();
                 allyDifference = allyPosition - myPosition;
-                allyScalarProduct = allyDifference * WorldEntity::FRONT;
+                allyScalarProduct = allyDifference.dotProduct(WorldEntity::FRONT);
                 allyProjection = allyScalarProduct * WorldEntity::FRONT;
                 if (allyScalarProduct < 0 || allyScalarProduct > scalarProduct)
@@ -291,4 +294,8 @@
         }
 
+        Pawn* pawn = orxonox_cast<Pawn*>(this->getControllableEntity());
+        if (pawn)
+            pawn->setAimPosition(WorldEntity::FRONT);
+    
         return true;
 
Index: /code/branches/AI_HS15/src/orxonox/controllers/CommonController.h
===================================================================
--- /code/branches/AI_HS15/src/orxonox/controllers/CommonController.h	(revision 10762)
+++ /code/branches/AI_HS15/src/orxonox/controllers/CommonController.h	(revision 10763)
@@ -109,5 +109,5 @@
 
             void setTarget(ControllableEntity* target);
-
+            
             void setTargetOrientation(const Quaternion& orient);
             void setTargetOrientation(ControllableEntity* target);
Index: /code/branches/AI_HS15/src/orxonox/controllers/DivisionController.cc
===================================================================
--- /code/branches/AI_HS15/src/orxonox/controllers/DivisionController.cc	(revision 10762)
+++ /code/branches/AI_HS15/src/orxonox/controllers/DivisionController.cc	(revision 10763)
@@ -40,5 +40,5 @@
         
         this->setFormationMode(FormationMode::DIAMOND);
-
+        this->target_ = 0;
         this->myFollower_ = 0;
         this->myWingman_ = 0;
@@ -46,6 +46,4 @@
         this->rank_ = Rank::DIVISIONLEADER;
 
-        Vector3* pos = new Vector3(-4000,-1000,-2000);
-        this->setTargetPosition(*pos);
 
     }
@@ -76,4 +74,8 @@
     void DivisionController::action()
     {
+/*
+        Vector3* pos = new Vector3(4000,1000,2000);
+        this->setTargetPosition(*pos);*/
+
         setTargetPositionOfFollower();
         setTargetPositionOfWingman();
Index: /code/branches/AI_HS15/src/orxonox/controllers/FleetController.cc
===================================================================
--- /code/branches/AI_HS15/src/orxonox/controllers/FleetController.cc	(revision 10762)
+++ /code/branches/AI_HS15/src/orxonox/controllers/FleetController.cc	(revision 10763)
@@ -58,5 +58,5 @@
         this->divisions_.clear();
         
-        /*for (ObjectList<DivisionController>::iterator it = ObjectList<DivisionController>::begin(); it; ++it)
+        for (ObjectList<DivisionController>::iterator it = ObjectList<DivisionController>::begin(); it; ++it)
         {
             if ((this->getControllableEntity()->getTeam() == (it)->getControllableEntity()->getTeam()))
@@ -65,14 +65,19 @@
             } 
         }
+        /*for(std::vector<WeakPtr<DivisionController> >::iterator it2 = divisions_.begin(); it2 != divisions_.end(); ++it2) 
+        {
+            (*it2)->setTargetPosition(this->getControllableEntity()->getWorldPosition());   
+        }*/ 
         for (ObjectList<Controller>::iterator it = ObjectList<Controller>::begin(); it; ++it)
         {
-            if ((this->getControllableEntity()->getTeam() != (it)->getControllableEntity()->getTeam()) && (it)->getControllableEntity()->getTeam() != 0)
+            if ((this->getControllableEntity()->getTeam() != (it)->getControllableEntity()->getTeam()) && (it)->getControllableEntity()->getTeam() == 0)
             {
                 for(std::vector<WeakPtr<DivisionController> >::iterator it2 = divisions_.begin(); it2 != divisions_.end(); ++it2) {
                     (*it2)->setTarget(it->getControllableEntity());   
+                    (*it2)->setTargetPosition(it->getControllableEntity()->getWorldPosition());
                 }               
                 break;
             } 
-        }*/
+        }
 
     }
