Index: /branches/std/src/lib/coord/p_node.cc
===================================================================
--- /branches/std/src/lib/coord/p_node.cc	(revision 7218)
+++ /branches/std/src/lib/coord/p_node.cc	(revision 7219)
@@ -680,5 +680,5 @@
  * @param bias the speed to iterate to this new Positions
  */
-void PNode::setParentSoft(const char* parentName, float bias)
+void PNode::setParentSoft(const std::string& parentName, float bias)
 {
   PNode* parentNode = dynamic_cast<PNode*>(ClassList::getObject(parentName, CL_PARENT_NODE));
@@ -701,5 +701,5 @@
 void PNode::setParentMode (const std::string& parentingMode)
 {
-  this->setParentMode(PNode::charToParentingMode(parentingMode));
+  this->setParentMode(PNode::stringToParentingMode(parentingMode));
 }
 
@@ -927,5 +927,5 @@
            this->getAbsDirV().y,
            this->getAbsDirV().z,
-           this->parentingModeToChar(parentMode),
+           this->parentingModeToString(parentMode),
            childNodeCount);
   if (depth >= 2 || depth == 0)
@@ -1049,5 +1049,5 @@
  * @return the converted string
  */
-const char* PNode::parentingModeToChar(int parentingMode)
+const char* PNode::parentingModeToString(int parentingMode)
 {
   if (parentingMode == PNODE_LOCAL_ROTATE)
@@ -1068,5 +1068,5 @@
  * @return the int corresponding to the named parentingMode
  */
-PARENT_MODE PNode::charToParentingMode(const std::string& parentingMode)
+PARENT_MODE PNode::stringToParentingMode(const std::string& parentingMode)
 {
   if (parentingMode == "local-rotate")
Index: /branches/std/src/lib/coord/p_node.h
===================================================================
--- /branches/std/src/lib/coord/p_node.h	(revision 7218)
+++ /branches/std/src/lib/coord/p_node.h	(revision 7219)
@@ -158,5 +158,5 @@
 
   void setParentSoft(PNode* parentNode, float bias = 1.0);
-  void setParentSoft(const char* parentName, float bias = 1.0);
+  void setParentSoft(const std::string& parentName, float bias = 1.0);
 
   // PARENTING_MODE AND OTHER FLAGS //
@@ -183,6 +183,6 @@
 
   // HELPER_FUNCTIONS //
-  static const char* parentingModeToChar(int parentingMode);
-  static PARENT_MODE charToParentingMode(const std::string& parentingMode);
+  static const char* parentingModeToString(int parentingMode);
+  static PARENT_MODE stringToParentingMode(const std::string& parentingMode);
   float distance(const PNode* node) const { return (this->getAbsCoor() - node->getAbsCoor()).len(); };
 
Index: /branches/std/src/lib/graphics/graphics_engine.cc
===================================================================
--- /branches/std/src/lib/graphics/graphics_engine.cc	(revision 7218)
+++ /branches/std/src/lib/graphics/graphics_engine.cc	(revision 7219)
@@ -78,11 +78,4 @@
   this->screen = NULL;
 
-
-  // Hardware
-  this->hwRenderer = NULL;
-  this->hwVendor = NULL;
-  this->hwVersion = NULL;
-  this->hwExtensions = NULL;
-
   // initialize the Modules
   TextEngine::getInstance();
@@ -103,9 +96,4 @@
   // delete what has to be deleted here
   this->displayFPS( false );
-
-  delete[] this->hwRenderer;
-  delete[] this->hwVendor;
-  delete[] this->hwVersion;
-  delete this->hwExtensions;
 
   //TextEngine
@@ -312,28 +300,24 @@
   //  printf("%s %s %s\n %s", renderer, vendor, version, extensions);
 
-  if (this->hwRenderer == NULL && renderer != NULL)
-  {
-    this->hwRenderer = new char[strlen(renderer)+1];
-    strcpy(this->hwRenderer, renderer);
-  }
-  if (this->hwVendor == NULL && vendor != NULL)
-  {
-    this->hwVendor = new char[strlen(vendor)+1];
-    strcpy(this->hwVendor, vendor);
-  }
-  if (this->hwVersion == NULL && version != NULL)
-  {
-    this->hwVersion = new char[strlen(version)+11];
-    strcpy(this->hwVersion, version);
-  }
-
-  if (this->hwExtensions == NULL && extensions != NULL)
-    this->hwExtensions = new SubString((char*)glGetString(GL_EXTENSIONS), " \n\t,");
+  if (renderer != NULL)
+  {
+    this->hwRenderer == renderer;
+  }
+  if (vendor != NULL)
+  {
+    this->hwVendor == vendor;
+  }
+  if (version != NULL)
+  {
+    this->hwVersion == version;
+  }
+
+  if (extensions != NULL)
+    this->hwExtensions.split(extensions, " \n\t,");
 
   PRINT(4)("Running on : vendor: %s,  renderer: %s,  version:%s\n", vendor, renderer, version);
   PRINT(4)("Extensions:\n");
-  if (this->hwExtensions != NULL)
-    for (unsigned int i = 0; i < this->hwExtensions->getCount(); i++)
-      PRINT(4)("%d: %s\n", i, this->hwExtensions->getString(i));
+  for (unsigned int i = 0; i < this->hwExtensions.getCount(); i++)
+    PRINT(4)("%d: %s\n", i, this->hwExtensions.getString(i).c_str());
 
 
@@ -529,10 +513,9 @@
  * @return true if it is, false otherwise
  */
-bool GraphicsEngine::hwSupportsEXT(const char* extension)
-{
-  if (this->hwExtensions != NULL)
-    for (unsigned int i = 0; i < this->hwExtensions->getCount(); i++)
-      if ( this->hwExtensions->getString(i) == extension)
-        return true;
+bool GraphicsEngine::hwSupportsEXT(const std::string& extension)
+{
+  for (unsigned int i = 0; i < this->hwExtensions.getCount(); i++)
+    if ( this->hwExtensions.getString(i) == extension)
+      return true;
   return false;
 }
@@ -587,5 +570,5 @@
 void GraphicsEngine::draw() const
 {
-//  LightManager::getInstance()->draw();
+  //  LightManager::getInstance()->draw();
 
   GraphicsEngine::storeMatrices();
@@ -668,7 +651,7 @@
   switch (event.type)
   {
-      case EV_VIDEO_RESIZE:
-      this->resolutionChanged(event.resize);
-      break;
-  }
-}
+  case EV_VIDEO_RESIZE:
+    this->resolutionChanged(event.resize);
+    break;
+  }
+}
Index: /branches/std/src/lib/graphics/graphics_engine.h
===================================================================
--- /branches/std/src/lib/graphics/graphics_engine.h	(revision 7218)
+++ /branches/std/src/lib/graphics/graphics_engine.h	(revision 7219)
@@ -14,11 +14,11 @@
 #include "sdlincl.h"
 #include "glincl.h"
+#include <list>
 
-#include <list>
+#include "substring.h"
 
 // Forward Declaration
 class Text;
 class IniParser;
-class SubString;
 class WorldEntity;
 class GraphicsEffect;
@@ -74,5 +74,5 @@
 
     void listModes();
-    bool hwSupportsEXT(const char* extension);
+    bool hwSupportsEXT(const std::string& extension);
 
     /** @brief swaps the GL_BUFFERS */
@@ -116,8 +116,8 @@
 
     // HARDWARE-Settings:
-    char*                      hwRenderer;         //!< HW-renderer-string
-    char*                      hwVendor;           //!< HW-vendor-string
-    char*                      hwVersion;          //!< HW-version-string
-    SubString*                 hwExtensions;       //!< All suported Extensions.
+    std::string                hwRenderer;         //!< HW-renderer-string
+    std::string                hwVendor;           //!< HW-vendor-string
+    std::string                hwVersion;          //!< HW-version-string
+    SubString                  hwExtensions;       //!< All suported Extensions.
 
     // FPS-related
Index: /branches/std/src/lib/graphics/render2D/element_2d.cc
===================================================================
--- /branches/std/src/lib/graphics/render2D/element_2d.cc	(revision 7218)
+++ /branches/std/src/lib/graphics/render2D/element_2d.cc	(revision 7219)
@@ -726,5 +726,5 @@
 void Element2D::setParentMode2D (const std::string& parentingMode)
 {
-  this->setParentMode2D(Element2D::charToParentingMode2D(parentingMode));
+  this->setParentMode2D(Element2D::stringToParentingMode2D(parentingMode));
 }
 
@@ -952,5 +952,5 @@
             this->relCoordinate.y,
             this->getAbsDir2D(),
-            Element2D::parentingModeToChar2D(parentMode),
+            Element2D::parentingModeToString2D(parentMode),
             Element2D::layer2DToChar(this->layer));
 
@@ -1074,5 +1074,5 @@
  * @return the converted string
  */
-const char* Element2D::parentingModeToChar2D(int parentingMode)
+const char* Element2D::parentingModeToString2D(int parentingMode)
 {
   if (parentingMode == E2D_PARENT_LOCAL_ROTATE)
@@ -1093,5 +1093,5 @@
  * @return the int corresponding to the named parentingMode
  */
-E2D_PARENT_MODE Element2D::charToParentingMode2D(const std::string& parentingMode)
+E2D_PARENT_MODE Element2D::stringToParentingMode2D(const std::string& parentingMode)
 {
   if (parentingMode == "local-rotate")
Index: /branches/std/src/lib/graphics/render2D/element_2d.h
===================================================================
--- /branches/std/src/lib/graphics/render2D/element_2d.h	(revision 7218)
+++ /branches/std/src/lib/graphics/render2D/element_2d.h	(revision 7219)
@@ -212,6 +212,6 @@
 
     // helper functions //
-    static const char* parentingModeToChar2D(int parentingMode);
-    static E2D_PARENT_MODE charToParentingMode2D(const std::string& parentingMode);
+    static const char* parentingModeToString2D(int parentingMode);
+    static E2D_PARENT_MODE stringToParentingMode2D(const std::string& parentingMode);
 
     static const char* layer2DToChar(E2D_LAYER layer);
Index: /branches/std/src/lib/shell/shell_command.cc
===================================================================
--- /branches/std/src/lib/shell/shell_command.cc	(revision 7218)
+++ /branches/std/src/lib/shell/shell_command.cc	(revision 7219)
@@ -41,6 +41,4 @@
   PRINTF(5)("create shellcommand %s %s\n", commandName, className);
   this->setName(commandName);
-  this->description = NULL;
-  this->alias = NULL;
   this->executor = executor.clone();
   this->executor->setName(commandName);
@@ -177,5 +175,5 @@
       for (alias = ShellCommandClass::aliasList->begin(); alias != ShellCommandClass::aliasList->end(); alias++ )
       {
-        if ((*alias)->getName() != NULL && inputSplits.getString(0) == (*alias)->getName() && (*alias)->getCommand() != NULL &&
+        if (inputSplits.getString(0) == (*alias)->getName() && (*alias)->getCommand() != NULL &&
             (*alias)->getCommand()->shellClass != NULL )
         {
@@ -258,5 +256,5 @@
  * @param description the description of the Given command
  */
-ShellCommand* ShellCommand::describe(const char* description)
+ShellCommand* ShellCommand::describe(const std::string& description)
 {
   if (this == NULL)
@@ -338,6 +336,6 @@
       /*      for (unsigned int i = 0; i< elem->paramCount; i++)
        printf("%s ", ShellCommand::paramToString(elem->parameters[i]));*/
-      if ((*cmdIT)->description != NULL)
-       printf("- %s", (*cmdIT)->description);
+      if (!(*cmdIT)->description.empty())
+        printf("- %s", (*cmdIT)->description.c_str());
       printf("\n");
 
Index: /branches/std/src/lib/shell/shell_command.h
===================================================================
--- /branches/std/src/lib/shell/shell_command.h	(revision 7218)
+++ /branches/std/src/lib/shell/shell_command.h	(revision 7219)
@@ -63,5 +63,5 @@
     static bool execute (const std::string& executionString);
 
-    ShellCommand* describe(const char* description);
+    ShellCommand* describe(const std::string& description);
     ShellCommand* setAlias(const char* alias);
     ShellCommand* defaultValues(const MultiType& value0 = MT_NULL, const MultiType& value1 = MT_NULL,
@@ -89,5 +89,5 @@
     ShellCommandAlias*               alias;                                //!< An Alias for the Class.
 
-    const char*                      description;                          //!< A description for this commnand. (initially NULL). Assigned with (create)->describe("blablabla");
+    std::string                      description;                          //!< A description for this commnand. (initially NULL). Assigned with (create)->describe("blablabla");
     Executor*                        executor;                             //!< The Executor, that really executes the Function.
 
@@ -100,5 +100,5 @@
   public:
     /** @returns the Name of the Alias. */
-    const char* getName() const { return this->aliasName; };
+    const std::string& getName() const { return this->aliasName; };
     /** @returns the Command, this Alias is asociated with */
     ShellCommand* getCommand() const { return this->command; };
@@ -106,8 +106,8 @@
   private:
     /** @param aliasName the name of the Alias @param command the Command, to associate this alias with */
-    ShellCommandAlias(const char* aliasName, ShellCommand* command) { this->aliasName = aliasName; this->command = command; };
+    ShellCommandAlias(const std::string& aliasName, ShellCommand* command) { this->aliasName = aliasName; this->command = command; };
 
   private:
-    const char*     aliasName;       //!< the name of the Alias
+    std::string     aliasName;       //!< the name of the Alias
     ShellCommand*   command;         //!< a pointer to the command, this alias executes.
 };
Index: /branches/std/src/lib/shell/shell_command_class.cc
===================================================================
--- /branches/std/src/lib/shell/shell_command_class.cc	(revision 7218)
+++ /branches/std/src/lib/shell/shell_command_class.cc	(revision 7219)
@@ -130,5 +130,5 @@
  * @returns the CommandClass if found, NULL otherwise
  */
-const ShellCommandClass* ShellCommandClass::isRegistered(const char* className)
+const ShellCommandClass* ShellCommandClass::isRegistered(const std::string& className)
 {
   if (ShellCommandClass::commandClassList == NULL)
@@ -203,6 +203,6 @@
           /*          for (unsigned int i = 0; i< elem->paramCount; i++)
             PRINT(0)("%s ", ShellCommand::paramToString(elem->parameters[i]));*/
-          if ((*cmdIT)->description != NULL)
-            PRINT(0)("- %s", (*cmdIT)->description);
+          if (!(*cmdIT)->description.empty())
+            PRINT(0)("- %s", (*cmdIT)->description.c_str());
           PRINT(0)("\n");
         }
Index: /branches/std/src/lib/shell/shell_command_class.h
===================================================================
--- /branches/std/src/lib/shell/shell_command_class.h	(revision 7218)
+++ /branches/std/src/lib/shell/shell_command_class.h	(revision 7219)
@@ -39,5 +39,5 @@
     virtual ~ShellCommandClass();
 
-    static const ShellCommandClass* isRegistered(const char* className);
+    static const ShellCommandClass* isRegistered(const std::string& className);
     static void initCommandClassList();
 
Index: /branches/std/src/lib/util/executor/functor_list.h
===================================================================
--- /branches/std/src/lib/util/executor/functor_list.h	(revision 7218)
+++ /branches/std/src/lib/util/executor/functor_list.h	(revision 7219)
@@ -21,5 +21,5 @@
    l_SHORT:     short
    l_FLOAT:     float
-   l_CSTRING:    const char*
+   l_STRING:    const std::string&
    l_XML_ELEM:  TiXmlElement*
  */
Index: /branches/std/src/lib/util/loading/load_param_description.cc
===================================================================
--- /branches/std/src/lib/util/loading/load_param_description.cc	(revision 7218)
+++ /branches/std/src/lib/util/loading/load_param_description.cc	(revision 7219)
@@ -134,8 +134,7 @@
  * @param className the name of the class to be loadable
  */
-LoadClassDescription::LoadClassDescription(const char* className)
-{
-  this->className = new char[strlen(className)+1];
-  strcpy(this->className, className);
+LoadClassDescription::LoadClassDescription(const std::string& className)
+{
+  this->className = className;
 
   if (LoadClassDescription::classList == NULL)
@@ -156,6 +155,4 @@
     this->paramList.pop_front();
   }
-
-  delete[] this->className;
 }
 
@@ -182,5 +179,5 @@
    Otherwise it returns a new classDescription
  */
-LoadClassDescription* LoadClassDescription::addClass(const char* className)
+LoadClassDescription* LoadClassDescription::addClass(const std::string& className)
 {
   if (LoadClassDescription::classList != NULL)
@@ -189,5 +186,5 @@
     while (it != LoadClassDescription::classList->end())
     {
-      if (!strcmp((*it)->className, className))
+      if ((*it)->className == className)
       {
         return (*it);
@@ -200,8 +197,8 @@
 
 /**
- *  does the same as addClass(const char* className), but with params
+ *  does the same as addClass(const std::string& className), but with params
  * @param paramName the name of the parameter to add.
  */
-LoadParamDescription* LoadClassDescription::addParam(const char* paramName)
+LoadParamDescription* LoadClassDescription::addParam(const std::string& paramName)
 {
   std::list<LoadParamDescription*>::iterator it = this->paramList.begin();
@@ -226,5 +223,5 @@
  * @todo implement it
  */
-void LoadClassDescription::printAll(const char* fileName)
+void LoadClassDescription::printAll(const std::string& fileName)
 {
   PRINT(3)("===============================================================\n");
@@ -235,5 +232,5 @@
     while (classDesc != LoadClassDescription::classList->end())
     {
-      PRINT(3)("<%s>\n", (*classDesc)->className);
+      PRINT(3)("<%s>\n", (*classDesc)->className.c_str());
       std::list<LoadParamDescription*>::iterator param = (*classDesc)->paramList.begin();
       while (param != (*classDesc)->paramList.end())
@@ -242,5 +239,5 @@
         param++;
       }
-      PRINT(3)("</%s>\n\n", (*classDesc)->className);
+      PRINT(3)("</%s>\n\n", (*classDesc)->className.c_str());
       classDesc++;
     }
@@ -257,10 +254,10 @@
  * !! The strings MUST NOT be deleted !!
  */
-std::list<const char*> LoadClassDescription::searchClassWithShort(const char* classNameBegin)
+std::list<std::string> LoadClassDescription::searchClassWithShort(const std::string& classNameBegin)
 {
   /// FIXME
   // NOT USED
 /*  unsigned int searchLength = strlen(classNameBegin);
-  std::list<const char*> retVal;
+  std::list<const std::string&> retVal;
 
   tIterator<LoadClassDescription>* iterator = LoadClassDescription::classList->getIterator();
Index: /branches/std/src/lib/util/loading/load_param_description.h
===================================================================
--- /branches/std/src/lib/util/loading/load_param_description.h	(revision 7218)
+++ /branches/std/src/lib/util/loading/load_param_description.h	(revision 7219)
@@ -59,20 +59,20 @@
   friend class CLoadParam;
 public:
-  LoadClassDescription(const char* className);
+  LoadClassDescription(const std::string& className);
   ~LoadClassDescription();
 
-  static LoadClassDescription* addClass(const char* className);
-  LoadParamDescription* addParam(const char* paramName);
+  static LoadClassDescription* addClass(const std::string& className);
+  LoadParamDescription* addParam(const std::string& paramName);
 
   static void deleteAllDescriptions();
 
-  static void printAll(const char* fileName = NULL);
-  static std::list<const char*> searchClassWithShort(const char* classNameBegin);
-  //  static const LoadParamDescription* getClass(const char* className);
+  static void printAll(const std::string& fileName = "");
+  static std::list<std::string> searchClassWithShort(const std::string& classNameBegin);
+  //  static const LoadParamDescription* getClass(const std::string& className);
 
 private:
   static bool                              parametersDescription;  //!< if parameter-description should be enabled.
   static std::list<LoadClassDescription*>* classList;              //!< a list, that stores all the loadable classes. (after one instance has been loaded)
-  char*                                    className;              //!< name of the class
+  std::string                              className;              //!< name of the class
 
   std::list<LoadParamDescription*>         paramList;              //!< List of parameters this class knows.
Index: /branches/std/src/lib/util/multi_type.cc
===================================================================
--- /branches/std/src/lib/util/multi_type.cc	(revision 7218)
+++ /branches/std/src/lib/util/multi_type.cc	(revision 7219)
@@ -93,13 +93,4 @@
 {
   this->setChar(value);
-}
-
-/**
- * @brief creates a multiType out of a C-String
- * @param value the Value of this MulitType
- */
-MultiType::MultiType(const char* value)
-{
-  this->setString(value);
 }
 
@@ -485,15 +476,15 @@
  * @returns: the Type as MT_Type
  */
-MT_Type MultiType::StringToMultiType(const char* type)
-{
-  if (!strncmp(type, "bool", 4))
+MT_Type MultiType::StringToMultiType(const std::string& type)
+{
+  if (type == "bool")
     return MT_BOOL;
-  if (!strncmp(type, "int", 3))
+  if (type == "int")
     return MT_INT;
-  if (!strncmp(type, "float", 5))
+  if (type, "float")
     return MT_FLOAT;
-  if (!strncmp(type, "char", 4))
+  if (type == "char")
     return MT_CHAR;
-  if (!strncmp(type, "string", 6))
+  if (type == "string")
     return MT_STRING;
 
Index: /branches/std/src/lib/util/multi_type.h
===================================================================
--- /branches/std/src/lib/util/multi_type.h	(revision 7218)
+++ /branches/std/src/lib/util/multi_type.h	(revision 7219)
@@ -39,5 +39,4 @@
     MultiType(double value);
     MultiType(char value);
-    MultiType(const char* value);
     MultiType(const std::string& value);
     MultiType(const MultiType& multiType);
@@ -95,5 +94,5 @@
 
     static const char* MultiTypeToString(MT_Type type);
-    static MT_Type StringToMultiType(const char* type);
+    static MT_Type StringToMultiType(const std::string& type);
 
   private:
