Index: /trunk/src/world_entities/camera.cc
===================================================================
--- /trunk/src/world_entities/camera.cc	(revision 7346)
+++ /trunk/src/world_entities/camera.cc	(revision 7347)
@@ -42,5 +42,5 @@
   this->setClipRegion(.1, 2000);
 
-  this->setViewMode(VIEW_NORMAL);
+  this->setViewMode(Camera::ViewNormal);
 
   this->setParentMode(PNODE_ALL);
@@ -100,27 +100,27 @@
   {
     default:
-    case VIEW_NORMAL:
+    case Camera::ViewNormal:
       this->toFovy = 60.0;
       this->setRelCoorSoft(-10, 5, 0);
       this->target->setRelCoorSoft(0,0,0);
       break;
-    case VIEW_BEHIND:
-      break;
-    case VIEW_FRONT:
+    case Camera::ViewBehind:
+      break;
+    case Camera::ViewFront:
       this->toFovy = 120.0;
       this->setRelCoorSoft(4, 0, 0, 5);
       this->target->setRelCoorSoft(Vector(10,0,0), 5);
       break;
-    case VIEW_LEFT:
+    case Camera::ViewLeft:
       this->toFovy = 90;
       this->setRelCoorSoft(0, 1, -10, .5);
       this->target->setRelCoorSoft(0,0,0);
       break;
-    case VIEW_RIGHT:
+    case Camera::ViewRight:
       this->toFovy = 90;
       this->setRelCoorSoft(Vector(0, 1, 10));
       this->target->setRelCoorSoft(0,0,0);
       break;
-    case VIEW_TOP:
+    case Camera::ViewTop:
       this->toFovy= 120;
       this->setRelCoorSoft(Vector(30, 50, 0));
@@ -195,25 +195,25 @@
   if( event.type == KeyMapper::PEV_VIEW0)
   {
-    this->setViewMode(VIEW_NORMAL);
+    this->setViewMode(Camera::ViewNormal);
   }
   else if( event.type == KeyMapper::PEV_VIEW1)
   {
-    this->setViewMode(VIEW_BEHIND);
+    this->setViewMode(Camera::ViewBehind);
   }
   else if( event.type == KeyMapper::PEV_VIEW2)
   {
-    this->setViewMode(VIEW_FRONT);
+    this->setViewMode(Camera::ViewFront);
   }
   else if( event.type == KeyMapper::PEV_VIEW3)
   {
-    this->setViewMode(VIEW_LEFT);
+    this->setViewMode(Camera::ViewLeft);
   }
   else if( event.type == KeyMapper::PEV_VIEW4)
   {
-    this->setViewMode(VIEW_RIGHT);
+    this->setViewMode(Camera::ViewRight);
   }
   else if( event.type == KeyMapper::PEV_VIEW5)
   {
-    this->setViewMode(VIEW_TOP);
+    this->setViewMode(Camera::ViewTop);
   }
 }
Index: /trunk/src/world_entities/camera.h
===================================================================
--- /trunk/src/world_entities/camera.h	(revision 7346)
+++ /trunk/src/world_entities/camera.h	(revision 7347)
@@ -15,14 +15,4 @@
 class Event;
 
-//! an enumerator for different types of view
-typedef enum ViewMode
-{
-  VIEW_NORMAL,
-  VIEW_BEHIND,
-  VIEW_FRONT,
-  VIEW_LEFT,
-  VIEW_RIGHT,
-  VIEW_TOP
-};
 
 //! Camera
@@ -32,5 +22,16 @@
 class Camera : public PNode, public EventListener
 {
- public:
+public:
+  //! an enumerator for different types of view
+  typedef enum ViewMode
+  {
+    ViewNormal,
+    ViewBehind,
+    ViewFront,
+    ViewLeft,
+    ViewRight,
+    ViewTop
+  };
+
   Camera();
   virtual ~Camera();
@@ -48,5 +49,5 @@
   void setToFovy(float toFovy) { this->toFovy = toFovy; };
 
-  void setViewMode(ViewMode mode);
+  void setViewMode(Camera::ViewMode mode);
   inline const Vector& getViewVector() const { return this->viewVector; }
   inline const Vector& getUpVector() const { return this->upVector; }
@@ -62,5 +63,5 @@
   void process(const Event &event);
 
- private:
+private:
   CameraTarget*     target;          //!< The Target of the Camera (where this Camera Looks at)
 
@@ -71,5 +72,5 @@
 
   float             toFovy;          //!< The fovy-mode to iterate to.
-  ViewMode          currentMode;     //!< The ViewMode the camera is in
+  Camera::ViewMode  currentMode;     //!< The ViewMode the camera is in
 
   Vector            delay;
@@ -84,8 +85,8 @@
   friend class Camera;             //! The CameraTarget is a friend of Camera. noone else needs a CameraTarget, so noone else can create it.
 
- private:
+private:
   CameraTarget();
 
- public:
+public:
 };
 
Index: /trunk/src/world_entities/playable.cc
===================================================================
--- /trunk/src/world_entities/playable.cc	(revision 7346)
+++ /trunk/src/world_entities/playable.cc	(revision 7347)
@@ -21,4 +21,6 @@
 #include "player.h"
 #include "state.h"
+#include "camera.h"
+
 #include "util/loading/load_param.h"
 
@@ -251,5 +253,7 @@
  */
 void Playable::setCameraMode(unsigned int cameraMode)
-{}
+{
+  State::getCamera()->setViewMode((Camera::ViewMode)cameraMode);
+}
 
 
@@ -265,4 +269,5 @@
   else
   {
+    this->enterPlaymode(playmode);
     this->playmode = playmode;
     return true;
@@ -289,10 +294,25 @@
  * In this function all the actions that are required to enter the Playmode are described.
  * e.g: camera, rotation, wait cycle and so on...
+ *
+ * on enter of this function the playmode is still the old playmode.
  */
 void Playable::enterPlaymode(Playable::Playmode playmode)
 {
-
-}
-
+  switch(playmode)
+  {
+    default:
+      this->attachCamera();
+      break;
+    case Playable::Horizontal:
+      this->setCameraMode(Camera::ViewTop);
+      break;
+    case Playable::Vertical:
+      this->setCameraMode(Camera::ViewLeft);
+      break;
+    case Playable::FromBehind:
+      this->setCameraMode(Camera::ViewBehind);
+      break;
+  }
+}
 /**
  * @brief helps us colliding Playables
Index: /trunk/src/world_entities/playable.h
===================================================================
--- /trunk/src/world_entities/playable.h	(revision 7346)
+++ /trunk/src/world_entities/playable.h	(revision 7347)
@@ -60,5 +60,5 @@
   void attachCamera();
   void detachCamera();
-  virtual void setCameraMode(unsigned int cameraMode = 0);
+  void setCameraMode(unsigned int cameraMode = 0);
   bool playmodeSupported(Playable::Playmode playmode) const { return this->supportedPlaymodes & playmode; };
   bool setPlaymode(Playable::Playmode playmode);
