Index: /trunk/src/lib/collision_detection/cd_engine.cc
===================================================================
--- /trunk/src/lib/collision_detection/cd_engine.cc	(revision 7369)
+++ /trunk/src/lib/collision_detection/cd_engine.cc	(revision 7370)
@@ -106,8 +106,8 @@
 //}
 
-void CDEngine::checkCollisions(std::list<WorldEntity*>& list1, std::list<WorldEntity*>& list2)
+void CDEngine::checkCollisions(ObjectManager::EntityList& list1, ObjectManager::EntityList& list2)
 {
   BVTree* tree;
-  std::list<WorldEntity*>::iterator entity1, entity2, pre1, pre2;
+  ObjectManager::EntityList::iterator entity1, entity2, pre1, pre2;
   PRINTF(3)("checking for collisions\n");
 
@@ -195,7 +195,7 @@
 
 
-void CDEngine::drawBV(const std::list<WorldEntity*>& drawList ) const
-{
-  std::list<WorldEntity*>::const_iterator entity;
+void CDEngine::drawBV(const ObjectManager::EntityList& drawList ) const
+{
+  ObjectManager::EntityList::const_iterator entity;
   for (entity = drawList.begin(); entity != drawList.end(); entity++)
     if ((*entity)->isVisible())
Index: /trunk/src/lib/data/data_tank.h
===================================================================
--- /trunk/src/lib/data/data_tank.h	(revision 7369)
+++ /trunk/src/lib/data/data_tank.h	(revision 7370)
@@ -25,5 +25,5 @@
     virtual ErrorMessage init() {}
     /** loads the data into the DataTank @param root is the xml root parameter for for loadParams() connection */
-    virtual ErrorMessage loadData(TiXmlElement* root = NULL) {}
+    virtual ErrorMessage loadData(const TiXmlElement* root = NULL) {}
     /** unloads the data again from the DataTank */
     virtual ErrorMessage unloadData() {}
Index: /trunk/src/lib/graphics/graphics_engine.cc
===================================================================
--- /trunk/src/lib/graphics/graphics_engine.cc	(revision 7369)
+++ /trunk/src/lib/graphics/graphics_engine.cc	(revision 7370)
@@ -584,12 +584,4 @@
       dynamic_cast<GraphicsEffect*>(*it)->draw();
   }
-}
-
-void GraphicsEngine::draw(const std::list<WorldEntity*>& drawList ) const
-{
-  std::list<WorldEntity*>::const_iterator entity;
-  for (entity = drawList.begin(); entity != drawList.end(); entity++)
-    if ((*entity)->isVisible())
-      (*entity)->draw();
 }
 
Index: /trunk/src/lib/graphics/graphics_engine.h
===================================================================
--- /trunk/src/lib/graphics/graphics_engine.h	(revision 7369)
+++ /trunk/src/lib/graphics/graphics_engine.h	(revision 7370)
@@ -69,5 +69,4 @@
     void tick(float dt);
     void draw() const;
-    void draw(const std::list<WorldEntity*>& drawList) const;
     void displayFPS(bool display);
 
Index: /trunk/src/story_entities/campaign_data.cc
===================================================================
--- /trunk/src/story_entities/campaign_data.cc	(revision 7369)
+++ /trunk/src/story_entities/campaign_data.cc	(revision 7370)
@@ -56,10 +56,10 @@
 
 /**
- *  loads the Parameters of a Campaign
+ * @brief loads the Parameters of a Campaign
  * @param root: The XML-element to load from
  */
 void CampaignData::loadParams(const TiXmlElement* root)
 {
-  LoadParamXML(root, "WorldList", this, CampaignData, loadData)
+  LoadParamXML(root, "WorldList", this, CampaignData, loadDataDyn)
       .describe("A List of Worlds to be loaded in this Campaign");
 }
@@ -67,8 +67,8 @@
 
 /**
- *  loads a WorldList
+ * @brief loads a WorldList
  * @param root: the XML-element to load from
  */
-void CampaignData::loadData(const TiXmlElement* root)
+void CampaignData::loadDataDyn(const TiXmlElement* root)
 {
   if( root == NULL)
Index: /trunk/src/story_entities/campaign_data.h
===================================================================
--- /trunk/src/story_entities/campaign_data.h	(revision 7369)
+++ /trunk/src/story_entities/campaign_data.h	(revision 7370)
@@ -17,27 +17,27 @@
 {
 
-  public:
-    CampaignData(const TiXmlElement* root);
-    virtual ~CampaignData();
+public:
+  CampaignData(const TiXmlElement* root);
+  virtual ~CampaignData();
 
-    virtual void loadParams(const TiXmlElement* root);
+  virtual void loadParams(const TiXmlElement* root);
 
-    void loadData(const TiXmlElement* root);
+  void addStoryEntity(StoryEntity* se);
 
-    void addStoryEntity(StoryEntity* se);
+  StoryEntity* getFirstLevel();
+  StoryEntity* getNextLevel();
+  StoryEntity* getLevel(int storyID);
 
-    StoryEntity* getFirstLevel();
-    StoryEntity* getNextLevel();
-    StoryEntity* getLevel(int storyID);
+  /** @param storyEntity the current entity to be set */
+  inline void setCurrentEntity(StoryEntity* storyEntity) { this->currentEntity = storyEntity; }
+  /** @return the current StoryEntity played*/
+  inline StoryEntity* getCurrentEntity() { return this->currentEntity; }
 
-    /** @param storyEntity the current entity to be set */
-    inline void setCurrentEntity(StoryEntity* storyEntity) { this->currentEntity = storyEntity; }
-    /** @return the current StoryEntity played*/
-    inline StoryEntity* getCurrentEntity() { return this->currentEntity; }
+private:
+  void loadDataDyn(const TiXmlElement* root);
 
-
-  private:
-    StoryEntity*                  currentEntity;                //!< reference to the currently used StoryEntity
-    std::list<StoryEntity*>       storyEntities;                //!< list of story entities
+private:
+  StoryEntity*                  currentEntity;                //!< reference to the currently used StoryEntity
+  std::list<StoryEntity*>       storyEntities;                //!< list of story entities
 };
 
Index: /trunk/src/story_entities/game_world.cc
===================================================================
--- /trunk/src/story_entities/game_world.cc	(revision 7369)
+++ /trunk/src/story_entities/game_world.cc	(revision 7370)
@@ -184,8 +184,8 @@
 {
   PRINTF(3)("GameWorld::~GameWorld() - unloading the current GameWorld\n");
+  delete this->shell;
 
   this->dataTank->unloadData();
 
-  delete this->shell;
   this->shell = NULL;
   delete AnimationPlayer::getInstance();
@@ -322,11 +322,11 @@
 
 /**
- *  ticks a WorldEntity list
+ * @brief ticks a WorldEntity list
  * @param entityList list of the WorldEntities
  * @param dt time passed since last frame
  */
-void GameWorld::tick(std::list<WorldEntity*> entityList, float dt)
-{
-  std::list<WorldEntity*>::iterator entity, next;
+void GameWorld::tick(ObjectManager::EntityList entityList, float dt)
+{
+  ObjectManager::EntityList::iterator entity, next;
   next = entityList.begin();
   while (next != entityList.end())
@@ -367,11 +367,6 @@
 
     // TICK everything
-    this->tick(this->dataTank->objectManager->getObjectList(OM_DEAD_TICK), this->dtS);
-    this->tick(this->dataTank->objectManager->getObjectList(OM_ENVIRON), this->dtS);
-    this->tick(this->dataTank->objectManager->getObjectList(OM_COMMON), this->dtS);
-    this->tick(this->dataTank->objectManager->getObjectList(OM_GROUP_00), this->dtS);
-    this->tick(this->dataTank->objectManager->getObjectList(OM_GROUP_00_PROJ), this->dtS);
-    this->tick(this->dataTank->objectManager->getObjectList(OM_GROUP_01), this->dtS);
-    this->tick(this->dataTank->objectManager->getObjectList(OM_GROUP_01_PROJ), this->dtS);
+    for (i = 0; i < this->dataTank->tickLists.size(); ++i)
+      this->tick(this->dataTank->objectManager->getObjectList(this->dataTank->tickLists[i]), this->dtS);
 
     /* update tick the rest */
@@ -439,5 +434,17 @@
 
 /**
- *  runs through all entities calling their draw() methods
+ * @brief draws all entities in the list drawList
+ * @param drawList the List of entities to draw.
+ */
+void GameWorld::drawEntityList(const ObjectManager::EntityList& drawList) const
+{
+  ObjectManager::EntityList::const_iterator entity;
+  for (entity = drawList.begin(); entity != drawList.end(); entity++)
+    if ((*entity)->isVisible())
+      (*entity)->draw();
+}
+
+/**
+ * @brief runs through all entities calling their draw() methods
  */
 void GameWorld::draw ()
@@ -451,11 +458,6 @@
 
   /* draw all WorldEntiy groups */
-  engine->draw(State::getObjectManager()->getObjectList(OM_ENVIRON_NOTICK));
-  engine->draw(State::getObjectManager()->getObjectList(OM_ENVIRON));
-  engine->draw(State::getObjectManager()->getObjectList(OM_COMMON));
-  engine->draw(State::getObjectManager()->getObjectList(OM_GROUP_00));
-  engine->draw(State::getObjectManager()->getObjectList(OM_GROUP_00_PROJ));
-  engine->draw(State::getObjectManager()->getObjectList(OM_GROUP_01));
-  engine->draw(State::getObjectManager()->getObjectList(OM_GROUP_01_PROJ));
+  for (unsigned int i = 0; i < this->dataTank->drawLists.size(); ++i)
+   this->drawEntityList(State::getObjectManager()->getObjectList(this->dataTank->drawLists[i]));
 
 
@@ -463,10 +465,6 @@
   {
     CDEngine* engine = CDEngine::getInstance();
-    engine->drawBV(State::getObjectManager()->getObjectList(OM_ENVIRON_NOTICK));
-    engine->drawBV(State::getObjectManager()->getObjectList(OM_ENVIRON));
-    engine->drawBV(State::getObjectManager()->getObjectList(OM_COMMON));
-    engine->drawBV(State::getObjectManager()->getObjectList(OM_GROUP_00));
-    engine->drawBV(State::getObjectManager()->getObjectList(OM_GROUP_01));
-    engine->drawBV(State::getObjectManager()->getObjectList(OM_GROUP_01_PROJ));
+    for (unsigned int i = 0; i < this->dataTank->drawLists.size(); ++i)
+      engine->drawBV(State::getObjectManager()->getObjectList(this->dataTank->drawLists[i]));
   }
 
Index: /trunk/src/story_entities/game_world.h
===================================================================
--- /trunk/src/story_entities/game_world.h	(revision 7369)
+++ /trunk/src/story_entities/game_world.h	(revision 7370)
@@ -63,8 +63,10 @@
     virtual void synchronize();
     virtual void handleInput();
-    virtual void tick(std::list<WorldEntity*> worldEntity, float dt);
+    virtual void tick(ObjectManager::EntityList worldEntity, float dt);
     virtual void tick();
     virtual void update();
     virtual void collide();
+
+    void drawEntityList(const ObjectManager::EntityList& drawList ) const;
     virtual void draw();
     virtual void display();
Index: /trunk/src/story_entities/game_world_data.cc
===================================================================
--- /trunk/src/story_entities/game_world_data.cc	(revision 7369)
+++ /trunk/src/story_entities/game_world_data.cc	(revision 7370)
@@ -114,5 +114,5 @@
  * @param root reference to the xml root element
  */
-ErrorMessage GameWorldData::loadData(TiXmlElement* root)
+ErrorMessage GameWorldData::loadData(const TiXmlElement* root)
 {
   // load the parameters
@@ -145,10 +145,10 @@
 
 /**
- *  loads the GUI data
+ * @brief loads the GUI data
  * @param root reference to the xml root element
  */
-ErrorMessage GameWorldData::loadGUI(TiXmlElement* root)
-{
-  TiXmlElement* element = root->FirstChildElement("LoadScreen");
+ErrorMessage GameWorldData::loadGUI(const TiXmlElement* root)
+{
+  const TiXmlElement* element = root->FirstChildElement("LoadScreen");
   if( element == NULL)
   {
@@ -169,5 +169,5 @@
 
 /**
- *  unloads the GUI data
+ * @brief unloads the GUI data
  */
 ErrorMessage GameWorldData::unloadGUI()
@@ -178,10 +178,10 @@
 
 /**
- *  loads the world entities from the xml file
+ * @brief loads the world entities from the xml file
  * @param root reference to the xml root parameter
  */
-ErrorMessage GameWorldData::loadWorldEntities(TiXmlElement* root)
-{
-  TiXmlElement* element = root->FirstChildElement("WorldEntities");
+ErrorMessage GameWorldData::loadWorldEntities(const TiXmlElement* root)
+{
+  const TiXmlElement* element = root->FirstChildElement("WorldEntities");
 
   if( element == NULL)
@@ -201,10 +201,10 @@
 
       //todo do this more elegant
-      if( element->Value() != NULL && !strcmp( element->Value(), "SkyBox"))
+      if( element->Value() == "SkyBox" && created->isA(CL_SKYBOX))
       {
         this->sky = dynamic_cast<WorldEntity*>(created);
         State::setSkyBox(dynamic_cast<SkyBox*>(this->sky));
       }
-      if( element->Value() != NULL && !strcmp( element->Value(), "Terrain"))
+      if( element->Value() == "Terrain" && created->isA(CL_TERRAIN))
       {
         this->terrain = dynamic_cast<Terrain*>(created);
@@ -223,9 +223,27 @@
   Playable* playable;
   const list<BaseObject*>* playableList = ClassList::getList(CL_PLAYABLE);
-  if (playableList != NULL)
-  {
+  if (playableList != NULL && !playableList->empty())
+  {
+    /// TODO Make this also loadable
     playable = dynamic_cast<Playable*>(playableList->front());
     this->localPlayer->setPlayable(playable);
   }
+
+  // Fill the EntityLists. Tick then Draw:
+  this->tickLists.push_back(OM_DEAD_TICK);
+  this->tickLists.push_back(OM_ENVIRON);
+  this->tickLists.push_back(OM_COMMON);
+  this->tickLists.push_back(OM_GROUP_00);
+  this->tickLists.push_back(OM_GROUP_00_PROJ);
+  this->tickLists.push_back(OM_GROUP_01);
+  this->tickLists.push_back(OM_GROUP_01_PROJ);
+
+  this->drawLists.push_back(OM_ENVIRON_NOTICK);
+  this->drawLists.push_back(OM_ENVIRON);
+  this->drawLists.push_back(OM_COMMON);
+  this->drawLists.push_back(OM_GROUP_00);
+  this->drawLists.push_back(OM_GROUP_00_PROJ);
+  this->drawLists.push_back(OM_GROUP_01);
+  this->drawLists.push_back(OM_GROUP_01_PROJ);
 
   /* init the pnode tree */
@@ -248,10 +266,10 @@
   if (nodeList != NULL)
     while (!nodeList->empty())
-  {
-//    ClassList::debug( 3, CL_PARENT_NODE);
-//    PNode::getNullParent()->debugNode(0);
-//    printf("%s::%s\n", nodeList->front()->getClassName(), nodeList->front()->getName());
-    delete nodeList->front();
-  }
+    {
+      //    ClassList::debug( 3, CL_PARENT_NODE);
+      //    PNode::getNullParent()->debugNode(0);
+      //    printf("%s::%s\n", nodeList->front()->getClassName(), nodeList->front()->getName());
+      delete nodeList->front();
+    }
   /* remove the player object */
   if( this->localPlayer)
@@ -271,12 +289,13 @@
 
   nodeList = ClassList::getList(CL_ELEMENT_2D);
-    if (nodeList != NULL)
-       while (!nodeList->empty())
-         delete nodeList->front();
-
-
-
-
-  // unload the resources !!
+  if (nodeList != NULL)
+    while (!nodeList->empty())
+      delete nodeList->front();
+
+  // At this Point all the WorldEntites should be unloaded.
+  this->tickLists.clear();
+  this->drawLists.clear();
+
+  // unload the resources loaded in this Level !!
   ResourceManager::getInstance()->unloadAllByPriority(RP_LEVEL);
 
@@ -296,8 +315,8 @@
 
 /**
- *  loads the scene data
+ * @brief loads the scene data
  * @param root reference to the xml root element
  */
-ErrorMessage GameWorldData::loadScene(TiXmlElement* root)
+ErrorMessage GameWorldData::loadScene(const TiXmlElement* root)
 {
   LoadParamXML(root, "LightManager", LightManager::getInstance(), LightManager, loadParams);
Index: /trunk/src/story_entities/game_world_data.h
===================================================================
--- /trunk/src/story_entities/game_world_data.h	(revision 7369)
+++ /trunk/src/story_entities/game_world_data.h	(revision 7370)
@@ -35,5 +35,5 @@
 
     virtual ErrorMessage init();
-    virtual ErrorMessage loadData(TiXmlElement* root);
+    virtual ErrorMessage loadData(const TiXmlElement* root);
     virtual ErrorMessage unloadData();
 
@@ -43,7 +43,7 @@
 
   protected:
-    virtual ErrorMessage loadGUI(TiXmlElement* root);
-    virtual ErrorMessage loadWorldEntities(TiXmlElement* root);
-    virtual ErrorMessage loadScene(TiXmlElement* root);
+    virtual ErrorMessage loadGUI(const TiXmlElement* root);
+    virtual ErrorMessage loadWorldEntities(const TiXmlElement* root);
+    virtual ErrorMessage loadScene(const TiXmlElement* root);
 
     virtual ErrorMessage unloadGUI();
@@ -64,6 +64,6 @@
     GameRules*                    gameRule;       //!< Reference to the game rules of this game
 
-    std::list<OM_LIST>            tickLists;      //!< The Lists in the GameWorld that should be ticked.
-    std::list<OM_LIST>            drawLists;      //!< The Lists in the GameWorld, that should be drawn.
+    std::vector<OM_LIST>          tickLists;      //!< The Lists in the GameWorld that should be ticked.
+    std::vector<OM_LIST>          drawLists;      //!< The Lists in the GameWorld, that should be drawn.
 };
 
Index: /trunk/src/story_entities/multi_player_world_data.cc
===================================================================
--- /trunk/src/story_entities/multi_player_world_data.cc	(revision 7369)
+++ /trunk/src/story_entities/multi_player_world_data.cc	(revision 7370)
@@ -85,5 +85,5 @@
  * @param root reference to the xml root element
  */
-ErrorMessage MultiPlayerWorldData::loadGUI(TiXmlElement* root)
+ErrorMessage MultiPlayerWorldData::loadGUI(const TiXmlElement* root)
 {
   /* call underlying function */
@@ -106,8 +106,8 @@
  * @param root reference to the xml root parameter
  */
-ErrorMessage MultiPlayerWorldData::loadWorldEntities(TiXmlElement* root)
+ErrorMessage MultiPlayerWorldData::loadWorldEntities(const TiXmlElement* root)
 {
   /* load the spawning points */
-  TiXmlElement* element = root->FirstChildElement("SpawningPoints");
+  const TiXmlElement* element = root->FirstChildElement("SpawningPoints");
   if( element == NULL)
   {
@@ -244,5 +244,5 @@
  * @param root reference to the xml root element
  */
-ErrorMessage MultiPlayerWorldData::loadScene(TiXmlElement* root)
+ErrorMessage MultiPlayerWorldData::loadScene(const TiXmlElement* root)
 {
   /* call underlying function */
Index: /trunk/src/story_entities/multi_player_world_data.h
===================================================================
--- /trunk/src/story_entities/multi_player_world_data.h	(revision 7369)
+++ /trunk/src/story_entities/multi_player_world_data.h	(revision 7370)
@@ -28,7 +28,7 @@
 
   protected:
-    virtual ErrorMessage loadGUI(TiXmlElement* root);
-    virtual ErrorMessage loadWorldEntities(TiXmlElement* root);
-    virtual ErrorMessage loadScene(TiXmlElement* root);
+    virtual ErrorMessage loadGUI(const TiXmlElement* root);
+    virtual ErrorMessage loadWorldEntities(const TiXmlElement* root);
+    virtual ErrorMessage loadScene(const TiXmlElement* root);
 
     virtual ErrorMessage unloadGUI();
Index: /trunk/src/story_entities/simple_game_menu.cc
===================================================================
--- /trunk/src/story_entities/simple_game_menu.cc	(revision 7369)
+++ /trunk/src/story_entities/simple_game_menu.cc	(revision 7370)
@@ -253,5 +253,4 @@
 ErrorMessage SimpleGameMenu::unloadData()
 {
-
   EventHandler::getInstance()->unsubscribe(this, ES_MENU);
 
@@ -316,5 +315,5 @@
 
 /**
- *  no collision detection in the menu
+ * @brief no collision detection in the menu
  */
 void SimpleGameMenu::collide()
@@ -325,5 +324,5 @@
 
 /**
- *  animate the scene
+ * @brief animate the scene
  */
 void SimpleGameMenu::animateScene(float dt)
@@ -337,5 +336,5 @@
 
 /**
- * event dispatcher funciton
+ * @brief event dispatcher funciton
  * @param event the incoming event
  */
@@ -515,5 +514,5 @@
  * @param root reference to the xml root element
  */
-ErrorMessage SimpleGameMenuData::loadGUI(TiXmlElement* root)
+ErrorMessage SimpleGameMenuData::loadGUI(const TiXmlElement* root)
 {
   /* call underlying function */
@@ -536,7 +535,9 @@
  * @param root reference to the xml root parameter
  */
-ErrorMessage SimpleGameMenuData::loadWorldEntities(TiXmlElement* root)
-{
-  TiXmlElement* element = root->FirstChildElement("WorldEntities");
+ErrorMessage SimpleGameMenuData::loadWorldEntities(const TiXmlElement* root)
+{
+  GameWorldData::loadWorldEntities(root);
+  /*
+  const TiXmlElement* element = root->FirstChildElement("WorldEntities");
 
   if( element != NULL)
@@ -544,5 +545,5 @@
     element = element->FirstChildElement();
     PRINTF(4)("Loading WorldEntities\n");
-    while( element != NULL)
+    while(element != NULL)
     {
       BaseObject* created = Factory::fabricate(element);
@@ -550,15 +551,17 @@
         printf("Created a %s: %s\n", created->getClassName(), created->getName());
 
-      if( element->Value() != NULL && !strcmp( element->Value(), "SkyBox"))
+      if( element->Value() == "SkyBox")
         this->sky = dynamic_cast<WorldEntity*>(created);
-      if( element->Value() != NULL && !strcmp( element->Value(), "Terrain"))
+      if( element->Value() == "Terrain")
         this->terrain = dynamic_cast<Terrain*>(created);
       element = element->NextSiblingElement();
     }
+
     PRINTF(4)("Done loading WorldEntities\n");
   }
 
-  /* init the pnode tree */
+  // init the pnode tree
   PNode::getNullParent()->init();
+  */
 }
 
@@ -578,5 +581,5 @@
  * @param root reference to the xml root element
  */
-ErrorMessage SimpleGameMenuData::loadScene(TiXmlElement* root)
+ErrorMessage SimpleGameMenuData::loadScene(const TiXmlElement* root)
 {
   /* call underlying function */
Index: /trunk/src/story_entities/simple_game_menu.h
===================================================================
--- /trunk/src/story_entities/simple_game_menu.h	(revision 7369)
+++ /trunk/src/story_entities/simple_game_menu.h	(revision 7370)
@@ -106,7 +106,7 @@
 
   protected:
-    virtual ErrorMessage loadGUI(TiXmlElement* root);
-    virtual ErrorMessage loadWorldEntities(TiXmlElement* root);
-    virtual ErrorMessage loadScene(TiXmlElement* root);
+    virtual ErrorMessage loadGUI(const TiXmlElement* root);
+    virtual ErrorMessage loadWorldEntities(const TiXmlElement* root);
+    virtual ErrorMessage loadScene(const TiXmlElement* root);
 
     virtual ErrorMessage unloadGUI();
Index: /trunk/src/story_entities/single_player_world_data.cc
===================================================================
--- /trunk/src/story_entities/single_player_world_data.cc	(revision 7369)
+++ /trunk/src/story_entities/single_player_world_data.cc	(revision 7370)
@@ -53,5 +53,5 @@
  * @param root reference to the xml root element
  */
-ErrorMessage SinglePlayerWorldData::loadGUI(TiXmlElement* root)
+ErrorMessage SinglePlayerWorldData::loadGUI(const TiXmlElement* root)
 {
   /* call underlying function */
@@ -74,5 +74,5 @@
  * @param root reference to the xml root parameter
  */
-ErrorMessage SinglePlayerWorldData::loadWorldEntities(TiXmlElement* root)
+ErrorMessage SinglePlayerWorldData::loadWorldEntities(const TiXmlElement* root)
 {
   /* call underlying function */
@@ -95,5 +95,5 @@
  * @param root reference to the xml root element
  */
-ErrorMessage SinglePlayerWorldData::loadScene(TiXmlElement* root)
+ErrorMessage SinglePlayerWorldData::loadScene(const TiXmlElement* root)
 {
   /* call underlying function */
Index: /trunk/src/story_entities/single_player_world_data.h
===================================================================
--- /trunk/src/story_entities/single_player_world_data.h	(revision 7369)
+++ /trunk/src/story_entities/single_player_world_data.h	(revision 7370)
@@ -26,7 +26,7 @@
 
   protected:
-    virtual ErrorMessage loadGUI(TiXmlElement* root);
-    virtual ErrorMessage loadWorldEntities(TiXmlElement* root);
-    virtual ErrorMessage loadScene(TiXmlElement* root);
+    virtual ErrorMessage loadGUI(const TiXmlElement* root);
+    virtual ErrorMessage loadWorldEntities(const TiXmlElement* root);
+    virtual ErrorMessage loadScene(const TiXmlElement* root);
 
     virtual ErrorMessage unloadGUI();
Index: /trunk/src/util/object_manager.cc
===================================================================
--- /trunk/src/util/object_manager.cc	(revision 7369)
+++ /trunk/src/util/object_manager.cc	(revision 7370)
@@ -133,5 +133,5 @@
   //  if (level >= 1)
     {
-      std::list<WorldEntity*>::const_iterator entity;
+      ObjectManager::EntityList::const_iterator entity;
       for (entity = this->objectLists[omList].begin(); entity != this->objectLists[omList].end(); entity++)
       {
Index: /trunk/src/world_entities/environments/water.cc
===================================================================
--- /trunk/src/world_entities/environments/water.cc	(revision 7369)
+++ /trunk/src/world_entities/environments/water.cc	(revision 7370)
@@ -211,6 +211,6 @@
 void Water::tick(float dt)
 {
-  std::list<WorldEntity*> entityList = State::getObjectManager()->getObjectList(OM_GROUP_01_PROJ);
-  std::list<WorldEntity*>::iterator entity = entityList.begin();
+  ObjectManager::EntityList entityList = State::getObjectManager()->getObjectList(OM_GROUP_01_PROJ);
+  ObjectManager::EntityList::iterator entity = entityList.begin();
   while (entity != entityList.end())
   {
Index: /trunk/src/world_entities/power_ups/weapon_power_up.cc
===================================================================
--- /trunk/src/world_entities/power_ups/weapon_power_up.cc	(revision 7369)
+++ /trunk/src/world_entities/power_ups/weapon_power_up.cc	(revision 7370)
@@ -88,5 +88,5 @@
   this->weapon = dynamic_cast<Weapon*>((weaponXML == NULL)
       ? Factory::fabricate(static_cast<ClassID>(this->weapon->getLeafClassID()))
-      : Factory::fabricate((TiXmlElement*)this->getXmlElem()->FirstChildElement("weapon")));
+      : Factory::fabricate((const TiXmlElement*)this->getXmlElem()->FirstChildElement("weapon")));
   this->model = this->weapon->getModel(0);
 }
Index: /trunk/src/world_entities/spawning_point.h
===================================================================
--- /trunk/src/world_entities/spawning_point.h	(revision 7369)
+++ /trunk/src/world_entities/spawning_point.h	(revision 7370)
@@ -70,5 +70,5 @@
     ClassID                   classID;                        //!< the classid of the entity to spawn
     SpawningPointMode         mode;                           //!< the mode of the spawning point
-    std::list<WorldEntity*>   queue;                          //!< queue of waiting WorldEntities to be spawned
+    ObjectManager::EntityList   queue;                          //!< queue of waiting WorldEntities to be spawned
     bool                      bSpawning;                      //!< flag to indicate if this spawning point is active or not
 };
Index: /trunk/src/world_entities/weapons/aim.cc
===================================================================
--- /trunk/src/world_entities/weapons/aim.cc	(revision 7369)
+++ /trunk/src/world_entities/weapons/aim.cc	(revision 7370)
@@ -107,5 +107,5 @@
 void Aim::searchTarget()
 {
-  std::list<WorldEntity*>::iterator entity;
+  ObjectManager::EntityList::iterator entity;
 
   for (entity = State::getObjectManager()->getObjectList(group).begin();
Index: /trunk/src/world_entities/world_entity.h
===================================================================
--- /trunk/src/world_entities/world_entity.h	(revision 7369)
+++ /trunk/src/world_entities/world_entity.h	(revision 7370)
@@ -82,5 +82,5 @@
   OM_LIST& getOMListNumber() { return this->objectListNumber; }
   /** @returns a Reference to the Iterator */
-  std::list<WorldEntity*>::iterator& getEntityIterator() { return this->objectListIterator; }
+  ObjectManager::EntityList::iterator& getEntityIterator() { return this->objectListIterator; }
 
   int       writeState(const byte* data, int length, int sender);
@@ -121,5 +121,5 @@
 
   OM_LIST                           objectListNumber;   //!< The ObjectList from ObjectManager this Entity is in.
-  std::list<WorldEntity*>::iterator objectListIterator; //!< The iterator position of this Entity in the given list of the ObjectManager.
+  ObjectManager::EntityList::iterator objectListIterator; //!< The iterator position of this Entity in the given list of the ObjectManager.
 
   float                   scaling;
