Index: /trunk/src/story_entities/game_world_data.cc
===================================================================
--- /trunk/src/story_entities/game_world_data.cc	(revision 10393)
+++ /trunk/src/story_entities/game_world_data.cc	(revision 10394)
@@ -102,6 +102,6 @@
     localCamera->setName ("GameWorld-Camera");
   State::setCamera(localCamera, localCamera->getTarget());
-  CameraMan* camMan = new CameraMan();
-  State::setCameraman(camMan);
+  //CameraMan* camMan = new CameraMan();
+  //State::setCameraman(camMan);
   LightManager::getInstance();
 
@@ -132,4 +132,5 @@
   this->loadGUI(root);
   this->loadWorldEntities(root);
+  this->loadCameras(root);
   this->loadScene(root);
 
@@ -146,5 +147,36 @@
   this->unloadWorldEntities();
   this->unloadScene();
-
+  this->unloadCameras();
+
+  return ErrorMessage();
+}
+
+/**
+ * @brief creates the cameras
+ * @param root reference to the xml root element
+ */
+ErrorMessage GameWorldData::loadCameras(const TiXmlElement* root)
+{
+  const TiXmlElement* element = root->FirstChildElement("CameraMan");
+  if( element != NULL)
+  {
+    printf("found CameraMan tag  \n");
+    CameraMan* camMan = new CameraMan(element);
+    State::setCameraman(camMan);
+  }
+  return ErrorMessage();
+}
+
+
+/**
+ * @brief unloads the camera
+ */
+ErrorMessage GameWorldData::unloadCameras()
+{
+  CameraMan* camMan = State::getCameraman() ;
+  if(camMan != NULL){
+    delete  camMan;
+    State::setCameraman(NULL);
+   }
   return ErrorMessage();
 }
Index: /trunk/src/story_entities/game_world_data.h
===================================================================
--- /trunk/src/story_entities/game_world_data.h	(revision 10393)
+++ /trunk/src/story_entities/game_world_data.h	(revision 10394)
@@ -48,8 +48,11 @@
     virtual ErrorMessage loadWorldEntities(const TiXmlElement* root);
     virtual ErrorMessage loadScene(const TiXmlElement* root);
+    virtual ErrorMessage loadCameras(const TiXmlElement* root);
 
     virtual ErrorMessage unloadGUI();
     virtual ErrorMessage unloadWorldEntities();
     virtual ErrorMessage unloadScene();
+    virtual ErrorMessage unloadCameras();
+
 
   public:
Index: /trunk/src/world_entities/cameraman.cc
===================================================================
--- /trunk/src/world_entities/cameraman.cc	(revision 10393)
+++ /trunk/src/world_entities/cameraman.cc	(revision 10394)
@@ -11,5 +11,5 @@
 ### File Specific:
    main-programmer: Filip Gospodinov
-   co-programmer:
+   co-programmer: Silvan Nellen
 */
 
@@ -28,5 +28,5 @@
 CREATE_SCRIPTABLE_CLASS(CameraMan,
                         addMethod("changeCurrTarget", Executor2<CameraMan, lua_State*,const std::string&,const std::string&>(&CameraMan::changeCurrTarget))
-                        ->addMethod("changeTarget", Executor3<CameraMan, lua_State*, int, const std::string&,const std::string&>(&CameraMan::changeTarget))
+                        ->addMethod("changeTarget", Executor3<CameraMan, lua_State*, const std::string&, const std::string&,const std::string&>(&CameraMan::changeTarget))
                         ->addMethod("setCam", Executor1<CameraMan, lua_State*, const std::string&>(&CameraMan::setCam)) 
                         ->addMethod("togglFade", Executor0<CameraMan, lua_State*>(&CameraMan::togglFade))
@@ -69,4 +69,5 @@
 void CameraMan::createCam(const TiXmlElement* root)
 {
+  printf("create Camera\n");
   //Camera* newCamera=new Camera(root);
   this->cameras.push_back(new Camera(root));
@@ -132,4 +133,12 @@
 
 
+void CameraMan::changeTarget(const std::string& camName,const std::string& className, const std::string& objectName)
+{
+  BaseObject* object = ObjectListBase::getBaseObject(className, objectName);
+  BaseObject* newCam = ObjectListBase::getBaseObject("Camera", camName);
+  if( object != NULL && object->isA(PNode::staticClassID()))
+    dynamic_cast<Camera*>(newCam)->lookAt(dynamic_cast<PNode*>(object));
+}
+
 void CameraMan::changeCurrTarget(const std::string& className, const std::string& objectName)
 {
Index: /trunk/src/world_entities/cameraman.h
===================================================================
--- /trunk/src/world_entities/cameraman.h	(revision 10393)
+++ /trunk/src/world_entities/cameraman.h	(revision 10394)
@@ -26,4 +26,5 @@
     void moveCurrCam(int x, int y, int z);
     void changeTarget(int camNo, const std::string& className,const std::string& objectName);
+    void changeTarget(const std::string& camName,const std::string& className, const std::string& objectName);
     void changeCurrTarget(const std::string& className, const std::string& objectName);
     void atachCurrTarget(PNode* target);
