Index: code/branches/presentation3/src/orxonox/controllers/ArtificialController.cc
===================================================================
--- code/branches/presentation3/src/orxonox/controllers/ArtificialController.cc	(revision 7096)
+++ code/branches/presentation3/src/orxonox/controllers/ArtificialController.cc	(revision 7097)
@@ -95,6 +95,7 @@
 
         XMLPortParam(ArtificialController, "team", setTeam, getTeam, xmlelement, mode).defaultValues(-1);
-        XMLPortParam(ArtificialController, "formationFlight", setFormationFlight, getFormationFlight, xmlelement, mode).defaultValues(true);
+        XMLPortParam(ArtificialController, "formationFlight", setFormationFlight, getFormationFlight, xmlelement, mode).defaultValues(false);
         XMLPortParam(ArtificialController, "formationSize", setFormationSize, getFormationSize, xmlelement, mode).defaultValues(STANDARD_MAX_FORMATION_SIZE);
+        XMLPortParam(ArtificialController, "passive", setPassive, getPassive, xmlelement, mode).defaultValues(false);
     }
 
@@ -109,8 +110,15 @@
         for (ObjectList<Pawn>::iterator it = ObjectList<Pawn>::begin(); it; ++it)
         {
-            if (!it->getController())
-                continue;
-
-            ArtificialController *aiController = orxonox_cast<ArtificialController*>(it->getController());
+            Controller* controller = 0;
+            
+            if (it->getController())
+                controller = it->getController();
+            else if (it->getXMLController())
+                controller = it->getXMLController();
+                
+            if (!controller)
+                continue;
+
+            ArtificialController *aiController = orxonox_cast<ArtificialController*>(controller);
 
             if(aiController)
@@ -134,8 +142,15 @@
         for (ObjectList<Pawn>::iterator it = ObjectList<Pawn>::begin(); it; ++it)
         {
-            if (!it->getController())
-                continue;
-
-            ArtificialController *aiController = orxonox_cast<ArtificialController*>(it->getController());
+            Controller* controller = 0;
+            
+            if (it->getController())
+                controller = it->getController();
+            else if (it->getXMLController())
+                controller = it->getXMLController();
+                
+            if (!controller)
+                continue;
+
+            ArtificialController *aiController = orxonox_cast<ArtificialController*>(controller);
 
             if(aiController && aiController->state_ == MASTER)
@@ -161,12 +176,19 @@
         for (ObjectList<Pawn>::iterator it = ObjectList<Pawn>::begin(); it; ++it)
         {
-            if (!it->getController())
-                continue;
-
-            currentHumanController = orxonox_cast<NewHumanController*>(it->getController());
+            Controller* controller = 0;
+            
+            if (it->getController())
+                controller = it->getController();
+            else if (it->getXMLController())
+                controller = it->getXMLController();
+                
+            if (!controller)
+                continue;
+
+            currentHumanController = orxonox_cast<NewHumanController*>(controller);
 
             if(currentHumanController) humanPawn = *it;
 
-            ArtificialController *aiController = orxonox_cast<ArtificialController*>(it->getController());
+            ArtificialController *aiController = orxonox_cast<ArtificialController*>(controller);
 
             if(aiController && aiController->state_ == MASTER)
@@ -202,8 +224,15 @@
         for (ObjectList<Pawn>::iterator it = ObjectList<Pawn>::begin(); it; ++it)
         {
-            if (!it->getController())
-                continue;
-
-            ArtificialController *aiController = orxonox_cast<ArtificialController*>(it->getController());
+            Controller* controller = 0;
+            
+            if (it->getController())
+                controller = it->getController();
+            else if (it->getXMLController())
+                controller = it->getXMLController();
+                
+            if (!controller)
+                continue;
+
+            ArtificialController *aiController = orxonox_cast<ArtificialController*>(controller);
 
             if(aiController)
@@ -223,8 +252,15 @@
         for (ObjectList<Pawn>::iterator it = ObjectList<Pawn>::begin(); it; ++it)
         {
-            if (!it->getController())
-                continue;
-
-            ArtificialController *aiController = orxonox_cast<ArtificialController*>(it->getController());
+            Controller* controller = 0;
+            
+            if (it->getController())
+                controller = it->getController();
+            else if (it->getXMLController())
+                controller = it->getXMLController();
+                
+            if (!controller)
+                continue;
+
+            ArtificialController *aiController = orxonox_cast<ArtificialController*>(controller);
 
             if(aiController)
@@ -356,5 +392,12 @@
 
             //has it an ArtificialController?
-            if (!it->getController())
+            Controller* controller = 0;
+            
+            if (it->getController())
+                controller = it->getController();
+            else if (it->getXMLController())
+                controller = it->getXMLController();
+                
+            if (!controller)
                 continue;
 
@@ -365,5 +408,5 @@
             teamSize++;
 
-            ArtificialController *newMaster = orxonox_cast<ArtificialController*>(it->getController());
+            ArtificialController *newMaster = orxonox_cast<ArtificialController*>(controller);
 
             //is it a master?
Index: code/branches/presentation3/src/orxonox/controllers/ArtificialController.h
===================================================================
--- code/branches/presentation3/src/orxonox/controllers/ArtificialController.h	(revision 7096)
+++ code/branches/presentation3/src/orxonox/controllers/ArtificialController.h	(revision 7097)
@@ -64,4 +64,9 @@
             inline int getFormationSize() const
                 { return this->maxFormationSize_; }
+                
+            inline void setPassive(bool passive)
+                { this->passive_ = passive; }
+            inline bool getPassive() const
+                { return this->passive_; }
 
             virtual void changedControllableEntity();
