Index: trunk/src/world_entities/mount_point.cc
===================================================================
--- trunk/src/world_entities/mount_point.cc	(revision 10439)
+++ trunk/src/world_entities/mount_point.cc	(revision 10440)
@@ -21,5 +21,5 @@
 #include "util/loading/load_param_xml.h"
 
-
+#include "weapons/weapon_slot.h"
 
 #include "mount_point.h"
@@ -178,4 +178,8 @@
       this->_mount->toList( (OM_LIST)(this->getOMListNumber()+1));
     }
+    else if( obj->isA( WeaponSlot::staticClassID()))
+    {
+      PRINTF(0)("=========+>we got a weapon slot\n");
+    }
   }
   else
Index: trunk/src/world_entities/npcs/npc.cc
===================================================================
--- trunk/src/world_entities/npcs/npc.cc	(revision 10439)
+++ trunk/src/world_entities/npcs/npc.cc	(revision 10440)
@@ -34,4 +34,5 @@
 #include "debug.h"
 #include "loading/load_param.h"
+#include "util/loading/load_param_xml.h"
 #include "track/track.h"
 
@@ -58,16 +59,19 @@
 
   this->toList(OM_GROUP_01);
+  this->bAIEnabled = false;
 
   if( root != NULL)
-	  this->loadParams(root);
-
-  std::cout << "Team Number: " << teamNumber << "\n";
-  std::cout << "Swarm Number:" << swarmNumber << "\n";
-
-//add to track
-  if(this->entityTrack)
-    this->setParent(this->entityTrack->getTrackNode());
-  else
-  AIEngine::getInstance()->addAI(teamNumber,swarmNumber,(WorldEntity*)this,maxSpeed,attackDistance);
+    this->loadParams(root);
+
+  if( this->bAIEnabled)
+  {
+    std::cout << "Team Number: " << teamNumber << "\n";
+    std::cout << "Swarm Number:" << swarmNumber << "\n";
+
+    if( this->entityTrack)
+      this->setParent(this->entityTrack->getTrackNode());
+    else
+      AIEngine::getInstance()->addAI(teamNumber,swarmNumber,(WorldEntity*)this,maxSpeed,attackDistance);
+  }
 
   this->bFire = false;
@@ -123,5 +127,5 @@
 
 
- 
+
 
 }
@@ -144,4 +148,7 @@
    WorldEntity::loadParams(root);
 
+  LoadParam(root, "enableAI", this, NPC, enableAI)
+      .describe("enables the AI algorithms");
+
   LoadParam(root, "team", this, NPC, setTeamNumber)
   .describe("this sets the team number")
@@ -159,4 +166,27 @@
   .describe("this sets the NPC distance to target")
   .defaultValues(0);
+
+
+    // Track
+  LoadParamXML(root, "Weapons", this, NPC, addWeapons)
+  .describe("creates and adds weapons");
+}
+
+
+void NPC::addWeapons(const TiXmlElement* root)
+{
+  if( root == NULL)
+    return;
+
+  LOAD_PARAM_START_CYCLE(root, element);
+  {
+    PRINTF(0)("got weapon: %s\n", element->Value());
+    BaseObject* obj = Factory::fabricate(element);
+    if( obj != NULL && obj->isA( Weapon::staticClassID()))
+    {
+      PRINTF(0)("created a weapon\n");
+    }
+  }
+  LOAD_PARAM_END_CYCLE(element);
 }
 
Index: trunk/src/world_entities/npcs/npc.h
===================================================================
--- trunk/src/world_entities/npcs/npc.h	(revision 10439)
+++ trunk/src/world_entities/npcs/npc.h	(revision 10440)
@@ -20,4 +20,5 @@
 
 
+  void addWeapons(const TiXmlElement* root);
   bool addWeapon(Weapon* weapon, int configID = -1, int slotID = -1);
   void removeWeapon(Weapon* weapon);
@@ -31,5 +32,5 @@
   inline void fire(){ this->bFire=true;}
 
-
+  inline void enableAI() { this->bAIEnabled = true; }
 
 private:
@@ -51,4 +52,6 @@
 
   AIModule*             aiModule;
+
+  bool                  bAIEnabled;   //!< true is AI enabled
 };
 
Index: trunk/src/world_entities/weapons/weapon_slot.cc
===================================================================
--- trunk/src/world_entities/weapons/weapon_slot.cc	(revision 10439)
+++ trunk/src/world_entities/weapons/weapon_slot.cc	(revision 10440)
@@ -19,4 +19,5 @@
 #include "weapon_slot.h"
 #include "util/loading/factory.h"
+#include "util/loading/load_param.h"
 
 
@@ -27,5 +28,4 @@
 {
   this->registerObject(this, WeaponSlot::_objectList);
-
 }
 
@@ -34,4 +34,6 @@
    this->registerObject(this, WeaponSlot::_objectList);
 
+   if( root != NULL)
+     this->loadParams( root);
 }
 
@@ -39,2 +41,22 @@
 WeaponSlot::~WeaponSlot()
 {}
+
+
+
+void WeaponSlot::loadParams(const TiXmlElement* root)
+{
+  PNode::loadParams( root);
+
+    // now check for the orx class to create
+  LoadParam(root, "WeaponClass", this, WeaponSlot, setWeaponClass)
+  .describe("Sets the class this mount points should host");
+}
+
+
+
+
+void WeaponSlot::setWeaponClass()
+{
+
+}
+
Index: trunk/src/world_entities/weapons/weapon_slot.h
===================================================================
--- trunk/src/world_entities/weapons/weapon_slot.h	(revision 10439)
+++ trunk/src/world_entities/weapons/weapon_slot.h	(revision 10440)
@@ -23,4 +23,7 @@
   virtual ~WeaponSlot();
 
+  virtual void loadParams(const TiXmlElement* root);
+
+  void setWeaponClass();
 
   long getCapability() { return this->capability; }
