Index: /branches/new_class_id/src/lib/util/loading/new_resource_manager.cc
===================================================================
--- /branches/new_class_id/src/lib/util/loading/new_resource_manager.cc	(revision 9797)
+++ /branches/new_class_id/src/lib/util/loading/new_resource_manager.cc	(revision 9798)
@@ -49,6 +49,6 @@
   //this->unloadAllByPriority(RP_GAME);
 
-//   if (!this->resourceList.empty())
-//     PRINTF(1)("Not removed all Resources, since there are still %d resources registered\n", this->resourceList.size());
+  //   if (!this->resourceList.empty())
+  //     PRINTF(1)("Not removed all Resources, since there are still %d resources registered\n", this->resourceList.size());
 
   NewResourceManager::_singletonRef = NULL;
@@ -110,4 +110,28 @@
 
 
+
+unsigned int NewResourceManager::addKeepLevelName(const std::string& keepLevelName)
+{
+  this->_keepLevelNames.push_back(keepLevelName);
+  return _keepLevelNames.size()-1;
+}
+
+unsigned int NewResourceManager::getKeepLevelID(const std::string& keepLevelName) const
+{
+  for (unsigned int i = 0; i < this->_keepLevelNames.size(); ++i)
+    if (this->_keepLevelNames[i] == keepLevelName)
+      return i;
+
+  PRINTF(2)("KeepLevel '%s' not found. Using 0 instead\n", keepLevelName.c_str());
+  return 0;
+}
+
+const std::string& NewResourceManager::getKeepLevelID(unsigned int keepLevelID) const
+{
+  assert(keepLevelID < this->_keepLevelNames.size());
+  return this->_keepLevelNames[keepLevelID];
+}
+
+
 /**
  * @brief outputs debug information about the NewResourceManager
@@ -118,5 +142,13 @@
   PRINT(0)("= RESOURCE-MANAGER DEBUG INFORMATION =\n");
   PRINT(0)("======================================\n");
-  PRINT(0)("Listing %d Types: \n", this->_resourceTypes.size());
+  PRINT(0)(" MainGlobal search path is %s\n", this->_mainGlobalPath.name().c_str());
+  if(!this->_globalPaths.empty())
+  {
+    PRINT(0)(" Additional Global search Paths are: ");
+    for (unsigned int i = 0; i < this->_globalPaths.size(); ++i)
+      PRINT(0)("'%s' ", this->_globalPaths[i].name().c_str());
+    PRINT(0)("\n");
+  }
+  PRINT(0)(" Listing %d Types: \n", this->_resourceTypes.size());
   std::vector<Resources::Type*>::const_iterator it;
   for (it = this->_resourceTypes.begin(); it != this->_resourceTypes.end(); ++it)
@@ -127,4 +159,8 @@
   }
 
+  PRINT(0)("KeepLevels are: ");
+  for (unsigned int i = 0; i < this->_keepLevelNames.size(); ++i)
+    PRINT(0)("%d:'%s'  ", i, this->_keepLevelNames[i].c_str());
+  PRINT(0)("\n");
   PRINT(0)("==================================RM==\n");
 }
Index: /branches/new_class_id/src/lib/util/loading/new_resource_manager.h
===================================================================
--- /branches/new_class_id/src/lib/util/loading/new_resource_manager.h	(revision 9797)
+++ /branches/new_class_id/src/lib/util/loading/new_resource_manager.h	(revision 9798)
@@ -26,5 +26,7 @@
   void registerType(Resources::Type* type);
 
-  void addKeepLevel(unsigned int i, const std::string& keepLevel);
+  unsigned int addKeepLevelName(const std::string& keepLevelName);
+  unsigned int getKeepLevelID(const std::string& keepLevelName) const;
+  const std::string& getKeepLevelID(unsigned int keepLevelID) const;
 
   const std::vector<Resources::Type*> resourceTypes() const { return _resourceTypes; };
@@ -55,5 +57,5 @@
   std::vector<Directory>             _globalPaths;
 
-  std::vector<Resources::KeepLevel>  _keepLevels;
+  std::vector<std::string>           _keepLevelNames;
 };
 
Index: /branches/new_class_id/src/lib/util/loading/resource.cc
===================================================================
--- /branches/new_class_id/src/lib/util/loading/resource.cc	(revision 9797)
+++ /branches/new_class_id/src/lib/util/loading/resource.cc	(revision 9798)
@@ -109,11 +109,9 @@
 //// KEEPLEVEL ////
 ///////////////////
-std::vector<std::string> Resources::KeepLevel::_keepLevelNames;
-void Resources::KeepLevel::defineKeepLevelName(unsigned int level, const std::string& name)
+Resources::KeepLevel::KeepLevel(const std::string& keepLevelName)
 {
-  if (_keepLevelNames.size() <= level)
-    _keepLevelNames.resize(level+1);
-  _keepLevelNames[level] = name;
+  this->_keepLevel = NewResourceManager::getInstance()->getKeepLevelID(keepLevelName);
 }
+
 
 
Index: /branches/new_class_id/src/lib/util/loading/resource.h
===================================================================
--- /branches/new_class_id/src/lib/util/loading/resource.h	(revision 9797)
+++ /branches/new_class_id/src/lib/util/loading/resource.h	(revision 9798)
@@ -22,9 +22,7 @@
     KeepLevel(const std::string& keepLevelName);
 
-    static void defineKeepLevelName(unsigned int level, const std::string& name);
+    unsigned int keepLevel() const { return _keepLevel; };
   private:
     unsigned int                        _keepLevel;
-  private:
-    static std::vector<std::string>     _keepLevelNames;
   };
 
Index: /branches/new_class_id/src/orxonox.cc
===================================================================
--- /branches/new_class_id/src/orxonox.cc	(revision 9797)
+++ /branches/new_class_id/src/orxonox.cc	(revision 9798)
@@ -370,4 +370,10 @@
   NewResourceManager::getInstance()->addResourceSubPath("Texture", "pictures");
 
+  NewResourceManager::getInstance()->addKeepLevelName("Imediately");
+  NewResourceManager::getInstance()->addKeepLevelName("LevelEnd");
+  NewResourceManager::getInstance()->addKeepLevelName("CampaignEnd");
+  NewResourceManager::getInstance()->addKeepLevelName("GameEnd");
+
+
   NewResourceManager::getInstance()->debug();
   //  DynamicLoader::loadDyLib("libtest.so");
