Index: /branches/new_class_id/src/lib/collision_detection/aabb.cc
===================================================================
--- /branches/new_class_id/src/lib/collision_detection/aabb.cc	(revision 9686)
+++ /branches/new_class_id/src/lib/collision_detection/aabb.cc	(revision 9687)
@@ -21,5 +21,5 @@
 
 
-
+NewObjectListDefinition(AABB);
 /**
  *  standard constructor
@@ -27,5 +27,5 @@
 AABB::AABB ()
 {
-   this->setClassID(CL_OBB, "AABB");
+  this->registerObject(this, AABB::_objectList);
    this->halfLength[0] = this->halfLength[1] = this->halfLength[2] = 0.0f;
    this->bCollided = false;
Index: /branches/new_class_id/src/lib/collision_detection/aabb.h
===================================================================
--- /branches/new_class_id/src/lib/collision_detection/aabb.h	(revision 9686)
+++ /branches/new_class_id/src/lib/collision_detection/aabb.h	(revision 9687)
@@ -11,8 +11,7 @@
 #include "bounding_volume.h"
 
-template<class T> class tList;
-
 //! A class representing an extended bounding volume tree: an obb tree
 class AABB : public BoundingVolume {
+  NewObjectListDeclaration(AABB);
 
  public:
Index: /branches/new_class_id/src/lib/collision_detection/aabb_tree_node.cc
===================================================================
--- /branches/new_class_id/src/lib/collision_detection/aabb_tree_node.cc	(revision 9686)
+++ /branches/new_class_id/src/lib/collision_detection/aabb_tree_node.cc	(revision 9687)
@@ -32,12 +32,7 @@
 #include "debug.h"
 
-
-
-
-
-
 GLUquadricObj* AABBTreeNode_sphereObj = NULL;
 
-
+NewObjectListDefinition(AABBTreeNode);
 /**
  *  standard constructor
@@ -48,5 +43,5 @@
     : BVTreeNode()
 {
-  this->setClassID(CL_OBB_TREE_NODE, "AABBTreeNode");
+  this->registerObject(this, AABBTreeNode::_objectList);
 
   this->obbTree = &tree;
Index: /branches/new_class_id/src/lib/collision_detection/aabb_tree_node.h
===================================================================
--- /branches/new_class_id/src/lib/collision_detection/aabb_tree_node.h	(revision 9686)
+++ /branches/new_class_id/src/lib/collision_detection/aabb_tree_node.h	(revision 9687)
@@ -21,4 +21,5 @@
 class AABBTreeNode : public BVTreeNode
 {
+  NewObjectListDeclaration(AABBTreeNode);
 
 
Index: /branches/new_class_id/src/lib/collision_detection/bounding_sphere.cc
===================================================================
--- /branches/new_class_id/src/lib/collision_detection/bounding_sphere.cc	(revision 9686)
+++ /branches/new_class_id/src/lib/collision_detection/bounding_sphere.cc	(revision 9687)
@@ -20,5 +20,5 @@
 
 
-
+NewObjectListDefinition(BoundingSphere);
 /**
  *  standard constructor
@@ -26,5 +26,5 @@
 BoundingSphere::BoundingSphere ()
 {
-   this->setClassID(CL_BOUNDING_SPHERE, "BoundingSphere");
+  this->registerObject(this, BoundingSphere::_objectList);
 }
 
Index: /branches/new_class_id/src/lib/collision_detection/bounding_sphere.h
===================================================================
--- /branches/new_class_id/src/lib/collision_detection/bounding_sphere.h	(revision 9686)
+++ /branches/new_class_id/src/lib/collision_detection/bounding_sphere.h	(revision 9687)
@@ -1,3 +1,3 @@
-/*! 
+/*!
  * @file bounding_sphere.h
   *  Definition of a bounding sphere
@@ -14,4 +14,5 @@
 //! A class representing an extended bounding volume tree: an sphere
 class BoundingSphere : public BoundingVolume {
+  NewObjectListDeclaration(BoundingSphere);
 
  public:
Index: /branches/new_class_id/src/lib/collision_detection/bounding_volume.cc
===================================================================
--- /branches/new_class_id/src/lib/collision_detection/bounding_volume.cc	(revision 9686)
+++ /branches/new_class_id/src/lib/collision_detection/bounding_volume.cc	(revision 9687)
@@ -20,5 +20,5 @@
 
 
-
+NewObjectListDefinition(BoundingVolume);
 /**
  *  standard constructor
@@ -26,5 +26,5 @@
 BoundingVolume::BoundingVolume ()
 {
-  this->setClassID(CL_BOUNDING_VOLUME, "BoundingVolume");
+  this->registerObject(this, BoundingVolume::_objectList);
   this->modelInf = NULL;
   this->triangleIndexes = NULL;
Index: /branches/new_class_id/src/lib/collision_detection/bounding_volume.h
===================================================================
--- /branches/new_class_id/src/lib/collision_detection/bounding_volume.h	(revision 9686)
+++ /branches/new_class_id/src/lib/collision_detection/bounding_volume.h	(revision 9687)
@@ -17,4 +17,5 @@
 //! An abstract class representing a bounding volume
 class BoundingVolume : public BaseObject {
+  NewObjectListDeclaration(BoundingVolume);
 
   public:
Index: /branches/new_class_id/src/lib/collision_detection/bv_tree.cc
===================================================================
--- /branches/new_class_id/src/lib/collision_detection/bv_tree.cc	(revision 9686)
+++ /branches/new_class_id/src/lib/collision_detection/bv_tree.cc	(revision 9687)
@@ -21,5 +21,5 @@
 
 
-
+NewObjectListDefinition(BVTree);
 /**
  *  standard constructor
@@ -27,5 +27,5 @@
 BVTree::BVTree ()
 {
-   this->setClassID(CL_BV_TREE, "BVTree");
+  this->registerObject(this, BVTree::_objectList);
 
 }
Index: /branches/new_class_id/src/lib/collision_detection/bv_tree.h
===================================================================
--- /branches/new_class_id/src/lib/collision_detection/bv_tree.h	(revision 9686)
+++ /branches/new_class_id/src/lib/collision_detection/bv_tree.h	(revision 9687)
@@ -36,4 +36,5 @@
 class BVTree : public BaseObject
 {
+  NewObjectListDeclaration(BVTree);
 
   public:
Index: /branches/new_class_id/src/lib/collision_detection/bv_tree_node.cc
===================================================================
--- /branches/new_class_id/src/lib/collision_detection/bv_tree_node.cc	(revision 9686)
+++ /branches/new_class_id/src/lib/collision_detection/bv_tree_node.cc	(revision 9687)
@@ -20,5 +20,5 @@
 
 
-
+NewObjectListDefinition(BVTreeNode);
 /**
  *  standard constructor
@@ -26,5 +26,5 @@
 BVTreeNode::BVTreeNode ()
 {
-   this->setClassID(CL_BV_TREE_NODE, "BVTreeNode");
+  this->registerObject(this, BVTreeNode::_objectList);
 
 }
Index: /branches/new_class_id/src/lib/collision_detection/bv_tree_node.h
===================================================================
--- /branches/new_class_id/src/lib/collision_detection/bv_tree_node.h	(revision 9686)
+++ /branches/new_class_id/src/lib/collision_detection/bv_tree_node.h	(revision 9687)
@@ -24,4 +24,5 @@
 //! A class that represents a bounding volume tree
 class BVTreeNode : public BaseObject {
+  NewObjectListDeclaration(BVTreeNode);
 
 
Index: /branches/new_class_id/src/lib/collision_detection/cd_engine.cc
===================================================================
--- /branches/new_class_id/src/lib/collision_detection/cd_engine.cc	(revision 9686)
+++ /branches/new_class_id/src/lib/collision_detection/cd_engine.cc	(revision 9687)
@@ -20,6 +20,4 @@
 #include "debug.h"
 
-#include "class_list.h"
-
 #include "model.h"
 #include "world_entity.h"
@@ -36,11 +34,11 @@
 
 
-
+NewObjectListDefinition(CDEngine);
 /**
- *  standard constructor
+ * @brief standard constructor
  */
 CDEngine::CDEngine ()
 {
-  this->setClassID(CL_CD_ENGINE, "CDEngine");
+  this->registerObject(this, CDEngine::_objectList);
 
   this->bAbordOnFirstCollision = false;
@@ -103,13 +101,9 @@
 void CDEngine::checkCollisionGround(std::list<WorldEntity*>& list1)
 {
-
-  std::list<BaseObject*>::const_iterator bspIterator;
   std::list<WorldEntity*>::iterator entityIterator;
-  const std::list<BaseObject*>* bspList = ClassList::getList(CL_BSP_ENTITY);
-  if( bspList == NULL)
-    return;
-
   // for all bsp managers check all entities
-  for( bspIterator = bspList->begin(); bspIterator != bspList->end(); bspIterator++) {
+  for( NewObjectList<BspEntity>::const_iterator bspIterator = BspEntity::objectList().begin();
+       bspIterator != BspEntity::objectList().end();
+       bspIterator++) {
       for(entityIterator = list1.begin(); entityIterator != list1.end(); entityIterator++)
       {
Index: /branches/new_class_id/src/lib/collision_detection/cd_engine.h
===================================================================
--- /branches/new_class_id/src/lib/collision_detection/cd_engine.h	(revision 9686)
+++ /branches/new_class_id/src/lib/collision_detection/cd_engine.h	(revision 9687)
@@ -36,4 +36,5 @@
 //! The class representing the collision detection system of orxonox
 class CDEngine : public BaseObject {
+  NewObjectListDeclaration(CDEngine);
 
   friend class WorldEntity;
Index: /branches/new_class_id/src/lib/collision_detection/obb.cc
===================================================================
--- /branches/new_class_id/src/lib/collision_detection/obb.cc	(revision 9686)
+++ /branches/new_class_id/src/lib/collision_detection/obb.cc	(revision 9687)
@@ -21,5 +21,5 @@
 
 
-
+NewObjectListDefinition(OBB);
 /**
  *  standard constructor
@@ -27,5 +27,5 @@
 OBB::OBB ()
 {
-   this->setClassID(CL_OBB, "OBB");
+  this->registerObject(this, OBB::_objectList);
    this->halfLength[0] = this->halfLength[1] = this->halfLength[2] = 0.0f;
    this->bCollided = false;
Index: /branches/new_class_id/src/lib/collision_detection/obb.h
===================================================================
--- /branches/new_class_id/src/lib/collision_detection/obb.h	(revision 9686)
+++ /branches/new_class_id/src/lib/collision_detection/obb.h	(revision 9687)
@@ -15,4 +15,5 @@
 //! A class representing an extended bounding volume tree: an obb tree
 class OBB : public BoundingVolume {
+  NewObjectListDeclaration(OBB);
 
  public:
Index: /branches/new_class_id/src/lib/collision_detection/obb_tree.cc
===================================================================
--- /branches/new_class_id/src/lib/collision_detection/obb_tree.cc	(revision 9686)
+++ /branches/new_class_id/src/lib/collision_detection/obb_tree.cc	(revision 9687)
@@ -27,5 +27,5 @@
 
 
-
+NewObjectListDefinition(OBBTree);
 /**
  *  standard constructor
@@ -51,5 +51,5 @@
 void OBBTree::init()
 {
-  this->setClassID(CL_OBB_TREE, "OBBTree");
+  this->registerObject(this, OBBTree::_objectList);
   this->rootNode = NULL;
   this->id = 0;
Index: /branches/new_class_id/src/lib/collision_detection/obb_tree.h
===================================================================
--- /branches/new_class_id/src/lib/collision_detection/obb_tree.h	(revision 9686)
+++ /branches/new_class_id/src/lib/collision_detection/obb_tree.h	(revision 9687)
@@ -20,4 +20,5 @@
 class OBBTree : public BVTree
 {
+  NewObjectListDeclaration(OBBTree);
 
   public:
Index: /branches/new_class_id/src/lib/collision_detection/obb_tree_node.cc
===================================================================
--- /branches/new_class_id/src/lib/collision_detection/obb_tree_node.cc	(revision 9686)
+++ /branches/new_class_id/src/lib/collision_detection/obb_tree_node.cc	(revision 9687)
@@ -38,5 +38,5 @@
 GLUquadricObj* OBBTreeNode_sphereObj = NULL;
 
-
+NewObjectListDefinition(OBBTreeNode);
 /**
  *  standard constructor
@@ -47,5 +47,5 @@
     : BVTreeNode()
 {
-  this->setClassID(CL_OBB_TREE_NODE, "OBBTreeNode");
+  this->registerObject(this, OBBTreeNode::_objectList);
 
   this->obbTree = &tree;
@@ -284,5 +284,5 @@
 
 /**
- *  calculate the eigenvectors for the object oriented box
+ * @brief calculate the eigenvectors for the object oriented box
  * @param box: reference to the box
  * @param modelInf: the model info structure of the model
@@ -361,5 +361,5 @@
 
 /**
- *  this separates an ob-box in the middle
+ * @brief this separates an ob-box in the middle
  * @param box: the box to separate
  *
Index: /branches/new_class_id/src/lib/collision_detection/obb_tree_node.h
===================================================================
--- /branches/new_class_id/src/lib/collision_detection/obb_tree_node.h	(revision 9686)
+++ /branches/new_class_id/src/lib/collision_detection/obb_tree_node.h	(revision 9687)
@@ -17,10 +17,8 @@
 class PNode;
 
-
 //! A class that represents a bounding volume tree
 class OBBTreeNode : public BVTreeNode
 {
-
-
+  NewObjectListDeclaration(OBBTreeNode);
   public:
     OBBTreeNode(const OBBTree& tree, OBBTreeNode* prev, int depth);
Index: /branches/new_class_id/src/lib/particles/dot_particles.cc
===================================================================
--- /branches/new_class_id/src/lib/particles/dot_particles.cc	(revision 9686)
+++ /branches/new_class_id/src/lib/particles/dot_particles.cc	(revision 9687)
@@ -24,7 +24,5 @@
 #include "shell_command.h"
 
-#include "parser/tinyxml/tinyxml.h"
-#include <algorithm>
-
+#include "class_id.h"
 
 CREATE_FACTORY(DotParticles, CL_DOT_PARTICLES);
Index: /branches/new_class_id/src/lib/particles/model_particles.cc
===================================================================
--- /branches/new_class_id/src/lib/particles/model_particles.cc	(revision 9686)
+++ /branches/new_class_id/src/lib/particles/model_particles.cc	(revision 9687)
@@ -24,7 +24,5 @@
 #include "shell_command.h"
 
-#include "parser/tinyxml/tinyxml.h"
-#include <algorithm>
-
+#include "class_id.h"
 
 CREATE_FACTORY(ModelParticles, CL_MODEL_PARTICLES);
Index: /branches/new_class_id/src/lib/particles/spark_particles.cc
===================================================================
--- /branches/new_class_id/src/lib/particles/spark_particles.cc	(revision 9686)
+++ /branches/new_class_id/src/lib/particles/spark_particles.cc	(revision 9687)
@@ -24,10 +24,5 @@
 #include "shell_command.h"
 
-#include "parser/tinyxml/tinyxml.h"
-#include <algorithm>
-
-
-
-
+#include "class_id.h"
 
 CREATE_FACTORY(SparkParticles, CL_SPARK_PARTICLES);
Index: /branches/new_class_id/src/lib/particles/sprite_particles.cc
===================================================================
--- /branches/new_class_id/src/lib/particles/sprite_particles.cc	(revision 9686)
+++ /branches/new_class_id/src/lib/particles/sprite_particles.cc	(revision 9687)
@@ -24,7 +24,5 @@
 #include "shell_command.h"
 
-#include "parser/tinyxml/tinyxml.h"
-#include <algorithm>
-
+#include "class_id.h"
 
 CREATE_FACTORY(SpriteParticles, CL_SPRITE_PARTICLES);
Index: /branches/new_class_id/src/world_entities/bsp_entity.h
===================================================================
--- /branches/new_class_id/src/world_entities/bsp_entity.h	(revision 9686)
+++ /branches/new_class_id/src/world_entities/bsp_entity.h	(revision 9687)
@@ -18,5 +18,5 @@
 class BspEntity : public WorldEntity
 {
-
+  NewObjectListDeclaration(BspEntity);
  public:
   BspEntity(const TiXmlElement* root = NULL);
@@ -28,5 +28,5 @@
 
   void init();
-  
+
   virtual void varChangeHandler( std::list<int> & id );
 
@@ -40,5 +40,5 @@
  private:
    BspManager* bspManager;
-   
+
    std::string name;                   //!< store name
    std::string name_write;             //!< temp variable to store name
