Index: branches/new_class_id/src/lib/util/Makefile.am
===================================================================
--- branches/new_class_id/src/lib/util/Makefile.am	(revision 9855)
+++ branches/new_class_id/src/lib/util/Makefile.am	(revision 9856)
@@ -28,5 +28,4 @@
 		filesys/net_link.cc \
 		\
-		preferences.cc \
 		threading.cc \
 		timer.cc
@@ -61,5 +60,4 @@
 		filesys/net_link.h \
 		\
-		preferences.h \
 		threading.h \
 		timer.h \
Index: branches/new_class_id/src/lib/util/loading/load_param_class_description.cc
===================================================================
--- branches/new_class_id/src/lib/util/loading/load_param_class_description.cc	(revision 9855)
+++ branches/new_class_id/src/lib/util/loading/load_param_class_description.cc	(revision 9856)
@@ -18,4 +18,5 @@
 #include "multi_type.h"
 #include "debug.h"
+#include <cassert>
 
 /**
Index: branches/new_class_id/src/lib/util/preferences.cc
===================================================================
--- branches/new_class_id/src/lib/util/preferences.cc	(revision 9855)
+++ 	(revision )
@@ -1,335 +1,0 @@
-/*
-   orxonox - the future of 3D-vertical-scrollers
-
-   Copyright (C) 2004 orx
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   ### File Specific:
-   main-programmer: Christoph Renner
-   co-programmer: ...
-*/
-
-//#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_WORLD_ENTITY
-
-#include "preferences.h"
-#include "lib/parser/ini_parser/ini_parser.h"
-#include "debug.h"
-
-ObjectListDefinition(Preferences);
-
-/**
- * standard constructor
- */
-Preferences::Preferences ()
-{
-  this->registerObject(this, Preferences::_objectList);
-   this->setName("Preferences");
-   this->fileName = "";
-}
-
-/**
- *  the singleton reference to this class
- */
-Preferences* Preferences::singletonRef = NULL;
-
-/**
-   @brief standard deconstructor
- */
-Preferences::~Preferences ()
-{
-  Preferences::singletonRef = NULL;
-}
-
-/**
- * Check if this item exists
- * @param section name of the section
- * @param name name of the item to check
- * @return true if the item exists
- */
-bool Preferences::exists( const std::string& section, const std::string& name)
-{
-  std::list<prefSection>::const_iterator it = data.begin();
-
-  for ( ; it!=data.end(); it++)
-  {
-    if ( it->sectionName == section )
-    {
-      std::list<prefItem>::const_iterator it2 = it->items.begin();
-
-      for ( ; it2!=it->items.end(); it2++)
-      {
-        if ( it2->name == name )
-          return true;
-      }
-
-      break;
-    }
-  }
-
-  return false;
-}
-
-/**
- * Check if this section exists
- * @param section name of the section
- * @param name name of the item to check
- * @return true if the item exists
- */
-bool Preferences::sectionExists( const std::string& section )
-{
-  std::list<prefSection>::const_iterator it = data.begin();
-
-  for ( ; it!=data.end(); it++)
-  {
-    if ( it->sectionName == section )
-    {
-      return true;
-    }
-  }
-
-  return false;
-}
-
-/**
- * Sets the value of an item. Creates it if doesn't exits.
- * @param section name of the section
- * @param name name of the item
- * @param value value
- */
-void Preferences::setString(const std::string& section, const std::string& name, const std::string& value, bool dontSetModified)
-{
-  MultiType t(value);
-  setMultiType(section, name, t, dontSetModified);
-}
-
-/**
- * Sets the value of an item. Creates it if doesn't exits.
- * @param section name of the section
- * @param name name of the item
- * @param value value
- */
-void Preferences::setInt(const std::string& section, const std::string& name, int value, bool dontSetModified)
-{
-  MultiType t(value);
-  setMultiType(section, name, t, dontSetModified);
-}
-
-/**
- * Sets the value of an item. Creates it if doesn't exits.
- * @param section name of the section
- * @param name name of the item
- * @param value value
- */
-void Preferences::setFloat(const std::string& section, const std::string& name, float value, bool dontSetModified)
-{
-  MultiType t(value);
-  setMultiType(section, name, t, dontSetModified);
-}
-
-/**
- * Get the value of an item
- * @param section name of the section
- * @param name name of the item to check
- * @param defaultValue value to return if item doesn't exist
- * @return value of the item if found. defaultValue else
- */
-std::string Preferences::getString(const std::string& section, const std::string& name, const std::string& defaultValue)
-{
-  return getMultiType(section, name, MultiType(defaultValue)).getString();
-}
-
-/**
- * Get the value of an item
- * @param section name of the section
- * @param name name of the item to check
- * @param defaultValue value to return if item doesn't exist
- * @return value of the item if found. defaultValue else
- */
-int Preferences::getInt(const std::string& section, const std::string& name, int defaultValue)
-{
-  return getMultiType(section, name, MultiType(defaultValue)).getInt();
-}
-
-/**
- * Get the value of an item
- * @param section name of the section
- * @param name name of the item to check
- * @param defaultValue value to return if item doesn't exist
- * @return value of the item if found. defaultValue else
- */
-float Preferences::getFloat(const std::string& section, const std::string& name, float defaultValue)
-{
-  return getMultiType(section, name, MultiType(defaultValue)).getFloat();
-}
-
-/**
- * Sets the value of an item. Creates it if doesn't exits.
- * @param section name of the section
- * @param name name of the item
- * @param value value
- */
-void Preferences::setMultiType(const std::string& section, const std::string& name, const MultiType& value, bool dontSetModified)
-{
-  std::list<prefSection>::iterator it = data.begin();
-
-  for ( ; it!=data.end(); it++)
-  {
-    if ( it->sectionName == section )
-    {
-      std::list<prefItem>::iterator it2 = it->items.begin();
-
-      for ( ; it2!=it->items.end(); it2++)
-      {
-        if ( it2->name == name )
-        {
-          if (!dontSetModified)
-            it2->modified = value.getString() != it2->value.getString();
-
-          it2->value = value;
-
-          return;
-        }
-      }
-      prefItem item;
-      item.value = value;
-      item.modified = !dontSetModified;
-      item.name = name;
-      it->items.push_back(item);
-      return;
-    }
-  }
-
-  prefItem item;
-  item.value = value;
-  item.modified = !dontSetModified;
-  item.name = name;
-
-  prefSection sec;
-  sec.items.push_back(item);
-  sec.sectionName = section;
-  data.push_back( sec );
-}
-
-/**
- * Get the value of an item
- * @param section name of the section
- * @param name name of the item to check
- * @param defaultValue value to return if item doesn't exist
- * @return value of the item if found. defaultValue else
- */
-MultiType Preferences::getMultiType(const std::string& section, const std::string& name,const MultiType& defaultValue)
-{
-  std::list<prefSection>::const_iterator it = data.begin();
-
-  for ( ; it!=data.end(); it++)
-  {
-    if ( it->sectionName == section )
-    {
-      std::list<prefItem>::const_iterator it2 = it->items.begin();
-
-      for ( ; it2!=it->items.end(); it2++)
-      {
-        if ( it2->name == name )
-        {
-          return it2->value;
-        }
-      }
-
-      break;
-    }
-  }
-
-  return defaultValue;
-}
-
-void Preferences::setUserIni(const std::string& fileName)
-{
-  this->fileName = fileName;
-}
-
-bool Preferences::save()
-{
-  if ( this->fileName == "" )
-  {
-    PRINTF(1)("You must call setUserIni before you can call save()\n");
-    return false;
-  }
-  IniParser iniParser(this->fileName);
-
-  std::list<prefSection>::iterator it = data.begin();
-  bool didChanges = false;
-  for ( ; it!=data.end(); it++)
-  {
-    std::list<prefItem>::iterator it2 = it->items.begin();
-
-    for ( ; it2!=it->items.end(); it2++)
-    {
-      if ( it2->modified )
-      {
-        iniParser.editVar(it2->name, it2->value.getString(), it->sectionName);
-        didChanges = true;
-      }
-    }
-  }
-  /// HACK DO WE HAVE TO CHECK THIS??
-  //if ( didChanges )
-  {
-    iniParser.writeFile( this->fileName );
-  }
-
-  return true;
-}
-
-/**
- * prints out all section with its items and values
- */
-void Preferences::debug()
-{
-  std::list<prefSection>::iterator it = data.begin();
-
-  for ( ; it!=data.end(); it++)
-  {
-    PRINTF(0)("%s\n", it->sectionName.c_str());
-    std::list<prefItem>::iterator it2 = it->items.begin();
-
-    for ( ; it2!=it->items.end(); it2++)
-    {
-      PRINTF(0)("--> %s = '%s'%s\n", it2->name.c_str(), it2->value.getString().c_str(), ((!it2->modified)?"":" <modified>"));
-    }
-  }
-}
-
-/**
- * list all keys in section
- * @param section section
- * @return list of keys
- */
-std::list< std::string > Preferences::listKeys( const std::string section )
-{
-  std::list<std::string> lst;
-
-  std::list<prefSection>::const_iterator it = data.begin();
-
-  for ( ; it!=data.end(); it++)
-  {
-    if ( it->sectionName == section )
-    {
-      std::list<prefItem>::const_iterator it2 = it->items.begin();
-
-      for ( ; it2!=it->items.end(); it2++)
-      {
-        lst.push_back( it2->name );
-      }
-
-      break;
-    }
-  }
-
-  return lst;
-}
-
-
Index: branches/new_class_id/src/lib/util/preferences.h
===================================================================
--- branches/new_class_id/src/lib/util/preferences.h	(revision 9855)
+++ 	(revision )
@@ -1,72 +1,0 @@
-/*!
- * @file proto_singleton.h
- * @brief Definition of the ... singleton Class
-*/
-
-#ifndef _PREFERENCES_H
-#define _PREFERENCES_H
-
-#include "base_object.h"
-#include "multi_type.h"
-#include <list>
-
-// FORWARD DECLARATION
-
-class IniFilePrefsReader;
-
-typedef struct {
-  std::string name;
-  MultiType value;
-  bool modified;
-} prefItem;
-
-typedef struct {
-  std::string sectionName;
-  std::list<prefItem> items;
-} prefSection ;
-
-
-//! A default singleton class.
-class Preferences : public BaseObject {
-  ObjectListDeclaration(Preferences);
- public:
-   virtual ~Preferences(void);
-  /** @returns a Pointer to the only object of this Class */
-   inline static Preferences* getInstance(void) { if (!singletonRef) singletonRef = new Preferences();  return singletonRef; };
-
-   //check if this entry exists
-   bool sectionExists(const std::string& section );
-   bool exists(const std::string& section, const std::string& name);
-
-   void setString(const std::string& section, const std::string& name, const std::string& value, bool dontSetModified = false);
-   void setInt(const std::string& section, const std::string& name, int value, bool dontSetModified = false);
-   void setFloat(const std::string& section, const std::string& name, float value, bool dontSetModified = false);
-   void setMultiType(const std::string& section, const std::string& name, const MultiType& value, bool dontSetModified = false);
-
-   std::string getString(const std::string& section, const std::string& name, const std::string& defaultValue);
-   int getInt(const std::string& section, const std::string& name, int defaultValue);
-   float getFloat(const std::string& section, const std::string& name, float defaultValue);
-   MultiType getMultiType(const std::string& section, const std::string& name, const MultiType& defaultValue);
-
-   void setUserIni(const std::string& fileName);
-
-   bool save();
-
-   void debug();
-
-   std::list<std::string> listKeys( const std::string section );
-
-
- private:
-   Preferences(void);
-   static Preferences* singletonRef;
-
-   std::list<prefSection> data;
-
-   std::list<IniFilePrefsReader*> iniFilePrefsReaders;
-
-   std::string fileName;
-
-};
-
-#endif /* _PREFERENCES_H */
