Index: /branches/camera/src/story_entities/game_world.cc
===================================================================
--- /branches/camera/src/story_entities/game_world.cc	(revision 10271)
+++ /branches/camera/src/story_entities/game_world.cc	(revision 10272)
@@ -551,6 +551,4 @@
   State::getCamera()->apply ();
   State::getCamera()->project ();
-  //this->dataTank->localCamera->apply ();
-  //this->dataTank->localCamera->project ();
   GraphicsEngine::storeMatrices();
 }
Index: /branches/camera/src/story_entities/game_world_data.cc
===================================================================
--- /branches/camera/src/story_entities/game_world_data.cc	(revision 10271)
+++ /branches/camera/src/story_entities/game_world_data.cc	(revision 10272)
@@ -30,4 +30,5 @@
 #include "player.h"
 #include "camera.h"
+#include "cameraman.h"
 #include "terrain.h"
 #include "skybox.h"
@@ -99,7 +100,8 @@
   PNode::getNullParent();
   Camera* localCamera = new Camera();
-  localCamera->setName ("GameWorld-Camera");
+    localCamera->setName ("GameWorld-Camera");
   State::setCamera(localCamera, localCamera->getTarget());
-
+  cameraman* camMan = new cameraman();
+  State::setCameraman(camMan);
   LightManager::getInstance();
 
@@ -332,5 +334,5 @@
   LoadParamXML(root, "GameRule", this, GameWorldData, loadGameRule);
 
-  LoadParam(root, "clip-region", State::getCamera(), Camera, setClipRegion);
+  LoadParam(root, "clip-region", State::getCameraman(), cameraman, setClipRegion);
 
 
Index: /branches/camera/src/util/state.cc
===================================================================
--- /branches/camera/src/util/state.cc	(revision 10271)
+++ /branches/camera/src/util/state.cc	(revision 10272)
@@ -20,4 +20,5 @@
 
 #include "camera.h"
+#include "cameraman.h"
 
 #ifndef NULL
@@ -31,4 +32,6 @@
 Camera* State::camera = NULL;
 CameraTarget* State::cameraTarget = NULL;
+
+cameraman* State::CameraMan = NULL;
 
 PNode* State::cameraNode = NULL;
@@ -63,2 +66,9 @@
   State::cameraTargetNode = cameraTarget;
 }
+
+
+void State::setCameraman(cameraman* cm)
+
+{
+  State::CameraMan=cm;
+}
Index: /branches/camera/src/util/state.h
===================================================================
--- /branches/camera/src/util/state.h	(revision 10271)
+++ /branches/camera/src/util/state.h	(revision 10272)
@@ -18,5 +18,5 @@
 class ObjectManager;
 class GameRules;
-
+class cameraman;
 class ScriptManager;
 
@@ -42,4 +42,14 @@
   /** @returns a Pointer to the CameraTarget */
   static inline PNode* getCameraTargetNode() { return State::cameraTargetNode; };
+
+
+
+  /////////////////////
+  /// CAMERAMANAGER ///
+  /////////////////////
+  /** @param cameraman the PNode to the CameraManager,*/
+  static void setCameraman(cameraman*);
+  static inline cameraman* getCameraman() { return State::CameraMan; };
+
 
   ////////////////
@@ -116,4 +126,5 @@
   static Camera*                camera;             //!< The current Camera.
   static CameraTarget*          cameraTarget;       //!< The Camera Target.
+  static cameraman*             CameraMan;
   static PNode*                 cameraNode;         //!< A reference to the camera
   static PNode*                 cameraTargetNode;   //!< A reference to the cameraTarget
Index: /branches/camera/src/world_entities/cameraman.cc
===================================================================
--- /branches/camera/src/world_entities/cameraman.cc	(revision 10271)
+++ /branches/camera/src/world_entities/cameraman.cc	(revision 10272)
@@ -21,11 +21,18 @@
 #include "sound_engine.h"
 
+ObjectListDefinition(cameraman);
+
 
 cameraman::cameraman()
 {
+  this->registerObject(this, cameraman::_objectList);
+
+  this->nearClip = 1.0;
+  this->farClip = 1000.0;
+
   currentCam=State::getCamera();
   this->cameras.push_back(currentCam);
-  currentCam->target->detach();
   State::setCamera(currentCam, currentCam->getTarget());
+//   currentCam->setClipRegion(nearClip, farClip);
 }
 
@@ -36,8 +43,5 @@
   this->cameras.push_back(new Camera());
   cameras[cameras.size()-1]->target->detach();
-
-
-
-  cout << cameras[1]->getAbsCoorX() << "," << cameras[1]->getAbsCoorY() << "," << cameras[1]->getAbsCoorZ() << endl << cameras[1]->target->getAbsCoorX() << endl;
+  cameras[cameras.size()-1]->setClipRegion(nearClip, farClip);
 
 }
@@ -97,4 +101,15 @@
 
 
+
+void cameraman::setClipRegion(float nearCli, float farCli)
+{
+  this->nearClip=nearCli;
+  this->farClip=farCli;
+
+  for(int i = 0; i < this->cameras.size(); i++)
+    cameras[i]->setClipRegion(nearCli, farCli);
+}
+
+
 void cameraman::jumpCurrCam(int x, int y, int z)
 {
Index: /branches/camera/src/world_entities/cameraman.h
===================================================================
--- /branches/camera/src/world_entities/cameraman.h	(revision 10271)
+++ /branches/camera/src/world_entities/cameraman.h	(revision 10272)
@@ -5,11 +5,13 @@
 #include "camera.h"
 #include <vector>
+#include "base_object.h"
 
-class cameraman {
+class cameraman : public BaseObject {
+  ObjectListDeclaration(cameraman);
 
   private:
     Camera* currentCam;
-   // int camNo;
-
+    float nearClip;
+    float farClip;
 
 
@@ -28,5 +30,5 @@
     void changeSpeed(float speed);
     void testCam();
-
+    void setClipRegion(float nearClip, float farClip);
 
 
Index: /branches/camera/src/world_entities/test_entity.cc
===================================================================
--- /branches/camera/src/world_entities/test_entity.cc	(revision 10271)
+++ /branches/camera/src/world_entities/test_entity.cc	(revision 10272)
@@ -23,5 +23,4 @@
 #include "test_entity.h"
 #include "debug.h"
-#include <iostream.h>
 #include "state.h"
 #include "shell_command.h"
@@ -80,7 +79,6 @@
 void TestEntity::test()
 {
-  CM= new cameraman();
+  CM= State::getCameraman();
   CM->createCam();
-  //CM->moveCurrCam(-300, 0, 0);
   CM->moveCam(-300, 0, 0, 0);
 }
@@ -100,7 +98,5 @@
 void TestEntity::t4()
 {
-  cout << CM->cameras[1]->getAbsCoorX() << endl <<CM->cameras[1]->getAbsCoorY() << endl <<CM->cameras[1]->getAbsCoorZ() << endl << CM->cameras[1]->target->getAbsCoorX() << endl;
-  CM->testCam();
-  cout << CM->cameras[1]->getAbsCoorX() << endl <<CM->cameras[1]->getAbsCoorY() << endl <<CM->cameras[1]->getAbsCoorZ() << endl << CM->cameras[1]->target->getAbsCoorX() << endl;
+
 }
 
