Index: trunk/src/story_entities/game_world.cc
===================================================================
--- trunk/src/story_entities/game_world.cc	(revision 7193)
+++ trunk/src/story_entities/game_world.cc	(revision 7221)
@@ -145,5 +145,5 @@
   GameLoader* loader = GameLoader::getInstance();
 
-  if( getLoadFile() == NULL)
+  if( getLoadFile().empty())
   {
     PRINTF(1)("GameWorld has no path specified for loading\n");
@@ -155,5 +155,5 @@
   if( !XMLDoc->LoadFile())
   {
-    PRINTF(1)("loading XML File: %s @ %s:l%d:c%d\n", XMLDoc->ErrorDesc(), this->getLoadFile(), XMLDoc->ErrorRow(), XMLDoc->ErrorCol());
+    PRINTF(1)("loading XML File: %s @ %s:l%d:c%d\n", XMLDoc->ErrorDesc(), this->getLoadFile().c_str(), XMLDoc->ErrorRow(), XMLDoc->ErrorCol());
     delete XMLDoc;
     return (ErrorMessage){213,"XML File parsing error","GameWorld::load()"};
Index: trunk/src/story_entities/game_world_data.cc
===================================================================
--- trunk/src/story_entities/game_world_data.cc	(revision 7193)
+++ trunk/src/story_entities/game_world_data.cc	(revision 7221)
@@ -129,6 +129,6 @@
   // load the parameters
   // name
-  const char* string = grabParameter( root, "name");
-  if( string == NULL)
+  std::string string = grabParameter( root, "name");
+  if( string.empty() )
   {
     PRINTF(2)("GameWorld is missing a proper 'name'\n");
@@ -136,5 +136,5 @@
   }
   else
-    this->setName(string);
+    this->setName(string.c_str());
 
   this->loadGUI(root);
@@ -343,5 +343,5 @@
 
   if (this->music != NULL)
-    this->setSoundTrack(NULL);
+    this->setSoundTrack("");
   this->music = NULL;
   /* stop the sound eninge */
@@ -354,5 +354,5 @@
 
 
-void GameWorldData::setSoundTrack(const char* name)
+void GameWorldData::setSoundTrack(const std::string& name)
 {
   if (this->music != NULL)
@@ -360,10 +360,9 @@
   this->music = NULL;
 
-  if (name != NULL)
-  {
-    PRINTF(3)("Setting Sound Track to %s\n", name);
-    char* oggFile = ResourceManager::getFullName(name); /// FIXME
+  if (!name.empty())
+  {
+    PRINTF(3)("Setting Sound Track to %s\n", name.c_str());
+    std::string oggFile = ResourceManager::getFullName(name);
     this->music = new OggPlayer(oggFile);
-    delete[] oggFile;
 
     //(OggPlayer*)ResourceManager::getInstance()->load(name, OGG, RP_LEVEL);
Index: trunk/src/story_entities/game_world_data.h
===================================================================
--- trunk/src/story_entities/game_world_data.h	(revision 7193)
+++ trunk/src/story_entities/game_world_data.h	(revision 7221)
@@ -42,5 +42,5 @@
 
     /* interface functions */
-    void setSoundTrack(const char* name);
+    void setSoundTrack(const std::string& name);
     void loadGameRule(const TiXmlElement* root);
 
Index: trunk/src/story_entities/movie_loader.cc
===================================================================
--- trunk/src/story_entities/movie_loader.cc	(revision 7193)
+++ trunk/src/story_entities/movie_loader.cc	(revision 7221)
@@ -36,5 +36,5 @@
 }
 
-MovieLoader::~MovieLoader() 
+MovieLoader::~MovieLoader()
 {
   delete this->movie_player;
@@ -56,5 +56,5 @@
 }
 
-void MovieLoader::loadMovie(const char* filename)
+void MovieLoader::loadMovie(const std::string& filename)
 {
   movie_player->loadMovie(filename);
@@ -78,5 +78,5 @@
 
   this->movie_player->start(0);
-  
+
   this->isRunning = true;
   this->run();
@@ -139,5 +139,5 @@
 
   // calculate time difference in milliseconds (Uint32)
-  this->dt = currentFrame - this->lastFrame; 
+  this->dt = currentFrame - this->lastFrame;
   // calculate time difference in seconds (float)
   this->dts = (float)this->dt / 1000.0f;
Index: trunk/src/story_entities/movie_loader.h
===================================================================
--- trunk/src/story_entities/movie_loader.h	(revision 7193)
+++ trunk/src/story_entities/movie_loader.h	(revision 7221)
@@ -43,5 +43,5 @@
 
   private:
-    void loadMovie(const char* filename);
+    void loadMovie(const std::string& filename);
     void setFPS(float fps);
     void tick();
Index: trunk/src/story_entities/simple_game_menu.cc
===================================================================
--- trunk/src/story_entities/simple_game_menu.cc	(revision 7193)
+++ trunk/src/story_entities/simple_game_menu.cc	(revision 7221)
@@ -63,5 +63,6 @@
   this->menuSelectedIndex = 0;
 
-  this->loadParams(root);
+  if (root != NULL)
+    this->loadParams(root);
 
   State::setMenuID(this->getNextStoryID());
@@ -70,5 +71,5 @@
 
 /**
- *  remove the SimpleGameMenu from memory
+ *  @brief remove the SimpleGameMenu from memory
  *
  *  delete everything explicitly, that isn't contained in the parenting tree!
@@ -85,5 +86,5 @@
 
 /**
- * loads the parameters of a SimpleGameMenu from an XML-element
+ * @brief loads the parameters of a SimpleGameMenu from an XML-element
  * @param root the XML-element to load from
  */
@@ -99,5 +100,5 @@
 
 /**
- * this is executed just before load
+ * @brief this is executed just before load
  *
  * since the load function sometimes needs data, that has been initialized
@@ -125,5 +126,5 @@
 
 /**
- * load the data
+ * @brief load the data
  */
 ErrorMessage SimpleGameMenu::loadData()
@@ -265,5 +266,5 @@
 
 /**
- * start the menu
+ * @brief start the menu
  */
 bool SimpleGameMenu::start()
Index: trunk/src/story_entities/story_entity.cc
===================================================================
--- trunk/src/story_entities/story_entity.cc	(revision 7193)
+++ trunk/src/story_entities/story_entity.cc	(revision 7221)
@@ -40,9 +40,9 @@
   this->isRunning = false;
 
-  this->loadFile = NULL;
+  this->loadFile = "";
   this->storyID = -1;
-  this->description = NULL;
-  this->menuItemImage = NULL;
-  this->menuScreenshoot = NULL;
+  this->description = "";
+  this->menuItemImage = "";
+  this->menuScreenshoot = "";
   this->nextStoryID = WORLD_ID_GAMEEND;
   this->bMenuEntry = false;
@@ -100,12 +100,9 @@
  * @param name the name of the path
  */
-void StoryEntity::setLoadFile(const char* fileName)
+void StoryEntity::setLoadFile(const std::string& fileName)
 {
-  if (this->loadFile)
-    delete this->loadFile;
   if (ResourceManager::isFile(fileName))
   {
-    this->loadFile = new char[strlen(fileName)+1];
-    strcpy(this->loadFile, fileName);
+    this->loadFile =  fileName;
   }
   else
@@ -120,14 +117,7 @@
  * @param name name
  */
-void StoryEntity::setDescription(const char* description)
+void StoryEntity::setDescription(const std::string& description)
 {
-  if (this->description)
-    delete[] this->description;
-  if (description!= NULL)
-  {
-    this->description= new char[strlen(description)+1];
-    strcpy(this->description, description);
-  }
-  else this->description= NULL;
+  this->description = description;
 }
 
@@ -149,11 +139,11 @@
 {
   PRINTF(3)("Grabbing the Worlds Settings\n", this->getLoadFile());
-  if( getLoadFile() == NULL)
-    return;
+  if( getLoadFile().empty())
+        return;
   TiXmlDocument XMLDoc(this->getLoadFile());
   // load the xml world file for further loading
   if( !XMLDoc.LoadFile())
   {
-    PRINTF(1)("loading XML File: %s @ %s:l%d:c%d\n", XMLDoc.ErrorDesc(), this->getLoadFile(), XMLDoc.ErrorRow(), XMLDoc.ErrorCol());
+    PRINTF(1)("loading XML File: %s @ %s:l%d:c%d\n", XMLDoc.ErrorDesc(), this->getLoadFile().c_str(), XMLDoc.ErrorRow(), XMLDoc.ErrorCol());
     return;
   }
@@ -181,28 +171,16 @@
  * @param name name
  */
-void StoryEntity::setMenuItemImage(const char* image)
+void StoryEntity::setMenuItemImage(const std::string& image)
 {
-  if (this->menuItemImage)
-    delete[] this->menuItemImage;
-  if (image != NULL)
-  {
-    this->menuItemImage = new char[strlen(image)+1];
-    strcpy(this->menuItemImage, image);
-  }
-  else this->menuItemImage = NULL;
+  this->menuItemImage = image;
 }
 
 
-/** sets the menu screenshoot of this StoryEntity @param name name */
-void StoryEntity::setMenuScreenshoot(const char* image)
+/** sets the menu screenshoot of this StoryEntity
+ * @param name name
+ */
+void StoryEntity::setMenuScreenshoot(const std::string& image)
 {
-  if (this->menuScreenshoot)
-    delete[] this->menuScreenshoot;
-  if (image != NULL)
-  {
-    this->menuScreenshoot = new char[strlen(image)+1];
-    strcpy(this->menuScreenshoot, image);
-  }
-  else this->menuScreenshoot = NULL;
+  this->menuScreenshoot = image;
 }
 
Index: trunk/src/story_entities/story_entity.h
===================================================================
--- trunk/src/story_entities/story_entity.h	(revision 7193)
+++ trunk/src/story_entities/story_entity.h	(revision 7221)
@@ -61,14 +61,14 @@
   inline int getStoryID() { return this->storyID; }
 
-  void setLoadFile( const char* fileName);
+  void setLoadFile(const std::string& fileName);
   /** @returns the Filename this StoryEntity was loaded with */
-  const char* getLoadFile() const { return this->loadFile; }
+  const std::string& getLoadFile() const { return this->loadFile; }
 
   void setNextStoryID(int nextStoryID);
   /**  gets the story id of the current entity @returns story id */
   inline int getNextStoryID() const { return this->nextStoryID; }
-  inline void setDescription(const char* description);
+  inline void setDescription(const std::string& description);
   /** @returns the description of this StoryEntity */
-  inline const char* getDescription() { return this->description; }
+  inline const std::string& getDescription() { return this->description; }
 
   void grabWorldInfo();
@@ -78,26 +78,26 @@
   inline bool isContainedInMenu() { return this->bMenuEntry; }
   /** sets the menu item image of this StoryEntity @param name name */
-  inline void setMenuItemImage(const char* image);
+  inline void setMenuItemImage(const std::string& image);
   /** @returns the menu item image of this StoryEntity */
-  inline const char* getMenuItemImage() { return this->menuItemImage; }
-  inline void setMenuScreenshoot(const char* image);
+  inline const std::string& getMenuItemImage() { return this->menuItemImage; }
+  inline void setMenuScreenshoot(const std::string& image);
   /** @returns the menu screenshoot of this StoryEntity */
-  inline const char* getMenuScreenshoot() { return this->menuScreenshoot; }
+  inline const std::string& getMenuScreenshoot() { return this->menuScreenshoot; }
 
   protected:
-    bool isInit;            //!< if the entity is initialized, this has to be true.
-    bool isRunning;         //!< is true if the entity is running
-    bool isPaused;          //!< is true if the entity is paused
+    bool          isInit;            //!< if the entity is initialized, this has to be true.
+    bool          isRunning;         //!< is true if the entity is running
+    bool          isPaused;          //!< is true if the entity is paused
 
 
  private:
-    int     storyID;          //!< this is the number of this entity, identifying it in a list/tree...
-    int     nextStoryID;      //!< if this entity has finished, this entity shall be called
-    char*   loadFile;         //!< The file from which this world is loaded
+    int           storyID;          //!< this is the number of this entity, identifying it in a list/tree...
+    int           nextStoryID;      //!< if this entity has finished, this entity shall be called
+    std::string   loadFile;         //!< The file from which this world is loaded
 
-    char*   description;      //!< the description of the StoryEntity
-    char*   menuItemImage;    //!< the item image of the StoryEntity
-    char*   menuScreenshoot;  //!< the screenshoot of the StoryEntity
-    bool    bMenuEntry;       //!< If true, this GameWorld apears in the SimpleMenu: SimpleMenu specific
+    std::string   description;      //!< the description of the StoryEntity
+    std::string   menuItemImage;    //!< the item image of the StoryEntity
+    std::string   menuScreenshoot;  //!< the screenshoot of the StoryEntity
+    bool          bMenuEntry;       //!< If true, this GameWorld apears in the SimpleMenu: SimpleMenu specific
 };
 
