Index: branches/playability/src/world_entities/camera.cc
===================================================================
--- branches/playability/src/world_entities/camera.cc	(revision 10261)
+++ branches/playability/src/world_entities/camera.cc	(revision 10270)
@@ -18,4 +18,6 @@
 #include "key_mapper.h"
 #include "glincl.h"
+//#include "util/loading/load_param.h"
+#include "world_entity.h"
 
 ObjectListDefinition(Camera);
@@ -27,4 +29,24 @@
 {
   this->registerObject(this, Camera::_objectList);
+  this->init();
+}
+
+/*
+Camera::Camera(const TiXmlElement* root)
+{
+  this->registerObject(this, Camera::_objectList);
+  this->init();
+  this->loadParams(root);
+}
+*/
+
+/**
+ *  default destructor
+*/
+Camera::~Camera()
+{}
+
+void Camera::init()
+{
   this->setName("camera");
   this->target = new CameraTarget();
@@ -37,7 +59,21 @@
   this->subscribeEvent(ES_GAME, KeyMapper::PEV_VIEW5);
 
-  this->setFovy(90);
+  //this->setFovy(90);
   this->setAspectRatio(1.33f);
   this->setClipRegion(.1, 10000);
+  
+  this->viewTopFovy = 60;
+  this->viewNormalFovy = 90;
+  this->viewFrontFovy = 120;
+  this->viewRightFovy = 90;
+  this->viewLeftFovy = 90;
+
+  this->viewTopDistance = 70;
+  this->viewNormalDistance = 10;
+  this->viewFrontDistance = 4;
+  this->viewRightDistance = 10;
+  this->viewLeftDistance = 10;
+
+  //this->loadParams(doc.RootElement());
 
   this->setViewMode(Camera::ViewNormal);
@@ -45,13 +81,5 @@
   this->setParentMode(PNODE_ALL);
   this->eventHandling = true;
-
-
-}
-
-/**
- *  default destructor
-*/
-Camera::~Camera()
-{}
+}
 
 /**
@@ -104,6 +132,9 @@
     case Camera::ViewNormal:
     {
-      this->toFovy = 60.0;
-      this->setRelCoorSoft(-10, 5, 0);
+      this->fovy = viewNormalFovy;
+      this->toFovy = viewNormalFovy;
+      //this->fovy = 60;
+      //this->toFovy = 60;
+      this->setRelCoorSoft(-2.0/3.0 * this->viewNormalDistance, 1.0/3.0 * this->viewNormalDistance, 0);
       this->target->setRelCoorSoft(0,0,0);
       break;
@@ -113,6 +144,7 @@
     case Camera::ViewFront:
     {
-      this->toFovy = 120.0;
-      this->setRelCoorSoft(4, 0, 0, 5);
+      this->fovy = viewFrontFovy;
+      this->toFovy = viewFrontFovy;
+      this->setRelCoorSoft(this->viewFrontDistance, 0, 0, 5);
       this->target->setRelCoorSoft(Vector(10,0,0), 5);
       break;
@@ -120,6 +152,7 @@
     case Camera::ViewLeft:
     {
-      this->toFovy = 90;
-      this->setRelCoorSoft(0, 1, -10, .5);
+      this->fovy = viewLeftFovy;
+      this->toFovy = viewLeftFovy;
+      this->setRelCoorSoft(0, 1, -viewLeftDistance, .5);
       this->target->setRelCoorSoft(0,0,0);
       break;
@@ -127,6 +160,7 @@
     case Camera::ViewRight:
     {
-      this->toFovy = 90;
-      this->setRelCoorSoft(Vector(0, 1, 10));
+      this->fovy = viewRightFovy;
+      this->toFovy = viewRightFovy;
+      this->setRelCoorSoft(Vector(0, 1, viewRightDistance), 0.5);
       this->target->setRelCoorSoft(0,0,0);
       break;
@@ -134,6 +168,7 @@
     case Camera::ViewTop:
     {
-      this->toFovy= 30;
-      this->setRelCoor(Vector(-0.05, 200 , 0));
+      this->fovy= viewTopFovy;
+      this->toFovy = viewTopFovy;
+      this->setRelCoorSoft(Vector(-0.05, this->viewTopDistance , 0), 0.5);
       this->target->setRelCoor(0,0,0);
     }
@@ -234,4 +269,86 @@
 }
 
+/*
+void Camera::loadParams(const TiXmlElement* root)
+{
+  // Do the PNode loading stuff
+  PNode::loadParams(root);
+
+  LoadParam(root, "viewTopFovy", this, Camera, setViewTopFovy);
+  LoadParam(root, "viewFrontFovy", this, Camera, setViewFrontFovy);
+  LoadParam(root, "viewLeftFovy", this, Camera, setViewLeftFovy);
+  LoadParam(root, "viewRightFovy", this, Camera, setViewRightFovy);
+  LoadParam(root, "viewBehindFovy", this, Camera, setViewBehindFovy);
+  LoadParam(root, "viewNormalFovy", this, Camera, setViewNormalFovy);
+
+  LoadParam(root, "viewTopDistance", this, Camera, setViewTopDistance);
+  LoadParam(root, "viewFrontDistance", this, Camera, setViewFrontDistance);
+  LoadParam(root, "viewLeftDistance", this, Camera, setViewLeftDistance);
+  LoadParam(root, "viewRightDistance", this, Camera, setViewRightDistance);
+  LoadParam(root, "viewBehindDistance", this, Camera, setViewBehindDistance);
+  LoadParam(root, "viewNormalDistance", this, Camera, setViewNormalDistance);
+}
+*/
+
+void Camera::setViewTopFovy(float fovy)
+{
+  this->viewTopFovy = fovy;
+}
+
+void Camera::setViewFrontFovy(float fovy)
+{
+  this->viewFrontFovy = fovy;
+}
+
+void Camera::setViewLeftFovy(float fovy)
+{
+  this->viewLeftFovy = fovy;
+}
+
+void Camera::setViewRightFovy(float fovy)
+{
+  this->viewRightFovy = fovy;
+}
+
+void Camera::setViewBehindFovy(float fovy)
+{
+  this->viewBehindFovy = fovy;
+}
+
+void Camera::setViewNormalFovy(float fovy)
+{
+  this->viewNormalFovy = fovy;
+}
+
+void Camera::setViewTopDistance(float Distance)
+{
+  this->viewTopDistance = Distance;
+}
+
+void Camera::setViewFrontDistance(float Distance)
+{
+  this->viewFrontDistance = Distance;
+}
+
+void Camera::setViewLeftDistance(float Distance)
+{
+  this->viewLeftDistance = Distance;
+}
+
+void Camera::setViewRightDistance(float Distance)
+{
+  this->viewRightDistance = Distance;
+}
+
+void Camera::setViewBehindDistance(float Distance)
+{
+  this->viewBehindDistance = Distance;
+}
+
+void Camera::setViewNormalDistance(float Distance)
+{
+  this->viewNormalDistance = Distance;
+}
+
 
 ///////////////////
Index: branches/playability/src/world_entities/camera.h
===================================================================
--- branches/playability/src/world_entities/camera.h	(revision 10261)
+++ branches/playability/src/world_entities/camera.h	(revision 10270)
@@ -36,4 +36,5 @@
 
   Camera();
+  Camera(const TiXmlElement* root);
   virtual ~Camera();
 
@@ -46,5 +47,9 @@
 
   /** @param fovy new field of view factor (in degrees) */
-  void setFovy(float fovy) { this->fovy = fovy; };
+  inline void setFovy(float fovy) 
+  { 
+    this->fovy = fovy; 
+    this->toFovy = fovy;
+  };
   /** @param fovy new field of view factor (in degrees) to iterate to */
   void setToFovy(float toFovy) { this->toFovy = toFovy; };
@@ -67,5 +72,24 @@
   void process(const Event &event);
 
+  //virtual void loadParams(const TiXmlElement* root);
+
+  void              setViewTopFovy(float fovy);
+  void              setViewLeftFovy(float fovy);
+  void              setViewRightFovy(float fovy);
+  void              setViewBehindFovy(float fovy);
+  void              setViewFrontFovy(float fovy);
+  void              setViewNormalFovy(float fovy);
+
+  void              setViewTopDistance(float Distance);
+  void              setViewLeftDistance(float Distance);
+  void              setViewRightDistance(float Distance);
+  void              setViewBehindDistance(float Distance);
+  void              setViewFrontDistance(float Distance);
+  void              setViewNormalDistance(float Distance);
+
 private:
+
+  void              init();
+
   CameraTarget*     target;          //!< The Target of the Camera (where this Camera Looks at)
 
@@ -84,4 +108,19 @@
   Vector            viewVector;      //!< the direction of the camera view
   Vector            upVector;        //!< direction of the up vector
+
+  float             viewTopFovy;
+  float             viewLeftFovy;
+  float             viewRightFovy;
+  float             viewBehindFovy;
+  float             viewFrontFovy;
+  float             viewNormalFovy;
+
+  float             viewTopDistance;
+  float             viewLeftDistance;
+  float             viewRightDistance;
+  float             viewBehindDistance;
+  float             viewFrontDistance;
+  float             viewNormalDistance;
+  
 };
 
Index: branches/playability/src/world_entities/space_ships/space_ship.cc
===================================================================
--- branches/playability/src/world_entities/space_ships/space_ship.cc	(revision 10261)
+++ branches/playability/src/world_entities/space_ships/space_ship.cc	(revision 10270)
@@ -395,4 +395,6 @@
 
   LoadParam(root, "playmode", this, SpaceShip, setPlaymodeXML);
+  LoadParam(root, "cameraDistance", this, SpaceShip, setCameraDistance);
+  LoadParam(root, "cameraFovy", this, SpaceShip, setCameraFovy);
 }
 
@@ -418,4 +420,5 @@
   this->secWeaponMan.showCrosshair();
   this->toList( OM_GROUP_01 );
+  State::getPlayer()->hud().setRadarCenterNode(this->travelNode);
   State::getPlayer()->hud().setOverlayActive(true);
   //dynamic_cast <OrxGui::GLGuiEnergyWidgetVertical*> (State::getPlayer()->hud().getArmorWidget())->setDisplayedName("Armor");
@@ -431,4 +434,5 @@
   State::getPlayer()->hud().setOverlayActive(false);
   State::getCamera()->setEventHandling(true);
+  State::getPlayer()->hud().setRadarCenterNode(NULL);
   //dynamic_cast<Element2D*>(this->secWeaponMan.getFixedTarget())->setVisibility( false);
   //this->detachCamera();
@@ -1080,2 +1084,12 @@
   }
 }
+
+void SpaceShip::setCameraDistance(float dist)
+{
+  State::getCamera()->setViewTopDistance(dist);
+}
+
+void SpaceShip::setCameraFovy(float fovy)
+{
+  State::getCamera()->setViewTopFovy(fovy);
+}
Index: branches/playability/src/world_entities/space_ships/space_ship.h
===================================================================
--- branches/playability/src/world_entities/space_ships/space_ship.h	(revision 10261)
+++ branches/playability/src/world_entities/space_ships/space_ship.h	(revision 10270)
@@ -71,4 +71,6 @@
     inline float getElectronicCur() { return this->electronicCur; }; //!< returns current electronic value
     inline float getElectronicMax() { return this->electronicMax; }; //!< returns current electronic value
+
+    inline PNode* getTravelNode() { return this->travelNode; };
 
     //damage handler
@@ -179,4 +181,7 @@
     float                 cameraSpeed;
 
+    void                  setCameraDistance(float dist);
+    void                  setCameraFovy(float fovy);
+
     /*
     Quaternion            mouseDir;           //!< the direction where the player wants to fly
