Index: code/branches/WorldMap_HS18/data/levels/StoryModeMap.oxw
===================================================================
--- code/branches/WorldMap_HS18/data/levels/StoryModeMap.oxw	(revision 12130)
+++ code/branches/WorldMap_HS18/data/levels/StoryModeMap.oxw	(revision 12131)
@@ -16,5 +16,5 @@
 
 <Level
-gametype = StoryMode
+gametype = Deathmatch
 >
 
@@ -31,10 +31,10 @@
     skybox       = "Orxonox/Starbox"
   >
-   <StoryModeController position="0,0,0" collisionType="dynamic">
+   <StoryModeController position="0,0,0" collisionType="dynamic" mass=42000000 >
 
           <attached>
-              <Model position="550,300,0" mesh="assff.mesh" scale=20  visible="true" />
+              <Model position="0,0,0" mesh="assff.mesh" scale=20  visible="true" />
           </attached>
-
+          <CameraPosition position="0,0,1000" direction="0, -1, 0" drag=false />
           <collisionShapes>
               <BoxCollisionShape position="0,0,0" halfExtents="3,1,10" />
@@ -50,6 +50,12 @@
     </MovableEntity> -->
     
+    
+    
+
     <StaticEntity position="0,0,0" direction="0,0,-1" >
       <attached>
+
+        <Model name="a" position="550,300,0" mesh="planets/moon.mesh" scale=100 visible="true" />
+        <Billboard colour="1,0,0.05" position="550,300,-80"  material="Flares/lensflare" scale=4.5 />
 
         <Model name="a" position="600,370,0" mesh="planets/moon.mesh" scale=100 visible="false" />
@@ -57,8 +63,9 @@
         
          <Model position="550,300,0" mesh="assff.mesh" scale=20  visible="false" orientation="-0.015,0.091,0.038,-0.995"/>
+        
         <Billboard colour="1,1,0.05" position="600,370,-80"  material="Flares/lensflare" scale=4.5 />
        
 
-        <Model position="100,350,-250" mesh="planets/moon.mesh" scale=100  visible="false"/>
+        <Model position="100,350,-250" mesh="planets/moon.mesh" scale=100  visible="true"/>
          <Model position="50,300,-250" mesh="assff.mesh" scale=20  visible="false" orientation="-0.015,0.091,0.038,-0.995"/>
         <Billboard colour="1,1,0.05" position="100,350,-330"  material="Flares/lensflare" scale=4.5 />
@@ -92,5 +99,5 @@
     <Light type=directional position="0,0,0" direction="0.253, 0.593, -0.765" diffuse="1.0, 0.9, 0.9, 1.0" specular="1.0, 0.9, 0.9, 1.0"/>
 
-    <SpawnPoint position="000.000, 000.000, 1000.000" orientation="0, 0, 0, -1" pawndesign=StoryMode />
+    <SpawnPoint position="000.000, 000.000, 1000.000" orientation="0, 0, 0, -1" spawnclass=StoryModeController pawndesign=StoryMode />
     
     
Index: code/branches/WorldMap_HS18/data/overlays/StoryModeHUD.oxo
===================================================================
--- code/branches/WorldMap_HS18/data/overlays/StoryModeHUD.oxo	(revision 12130)
+++ code/branches/WorldMap_HS18/data/overlays/StoryModeHUD.oxo	(revision 12131)
@@ -11,2 +11,6 @@
   </OverlayGroup>
 </Template>
+  <Template name="spectatorhud">
+  <OverlayGroup name = "spectatorhud" scale = "1, 1">
+  </OverlayGroup>
+</Template>
Index: code/branches/WorldMap_HS18/src/orxonox/controllers/SMCoord.cc
===================================================================
--- code/branches/WorldMap_HS18/src/orxonox/controllers/SMCoord.cc	(revision 12130)
+++ code/branches/WorldMap_HS18/src/orxonox/controllers/SMCoord.cc	(revision 12131)
@@ -56,5 +56,5 @@
         case 6:
             coord.x= 0;
-            coord.y = 900;
+            coord.y = -900;
             coord.z = -1500;
             break;
Index: code/branches/WorldMap_HS18/src/orxonox/controllers/StoryModeController.cc
===================================================================
--- code/branches/WorldMap_HS18/src/orxonox/controllers/StoryModeController.cc	(revision 12130)
+++ code/branches/WorldMap_HS18/src/orxonox/controllers/StoryModeController.cc	(revision 12131)
@@ -29,4 +29,5 @@
 #include "StoryModeController.h"
 
+
 #include "core/CoreIncludes.h"
 #include "worldentities/ControllableEntity.h"
@@ -34,4 +35,5 @@
 #include "SMCoord.h"
 #include "core/XMLPort.h"
+#include "gamestates/GSLevel.h"
 namespace orxonox
 {
@@ -46,5 +48,5 @@
         moveBackward_=false;                     
         boostPressed_=false;
-       
+        dtime_=50;
 
       
@@ -56,5 +58,5 @@
 
     }
-
+    //void StoryModeController:: switchCamera(){};
     void StoryModeController::updatePosition(){
         Vector3 pos = selectedPos_->get3dcoordinate();
@@ -67,23 +69,45 @@
     void StoryModeController::tick(float dt)
     {
-        orxout(internal_error) << "Hi" << endl;
+        //orxout(internal_error) << "Hi" << endl;
         SUPER(StoryModeController, tick, dt);
         time_ +=dt;
+           Camera* camera = this->getCamera();
+            
+       
 
-        if(moveForward_ == true){
-            moveForward_ = false;
-            selectedPos_->set(selectedPos_->getIndex()+1);
-            updatePosition();
-        }
-        if(moveBackward_ == true){
-                moveBackward_ = false;
-                selectedPos_->set(selectedPos_->getIndex()-1);
+        if(time_>= dtime_*dt){
+            
+            time_=0;       
+         
+            if(moveForward_ == true){
+                orxout(internal_error) << "Position update" << endl; 
+                moveForward_ = false;
+                selectedPos_->set(selectedPos_->getIndex()+1);
                 updatePosition();
-           }
-           if(boostPressed_ == true){
-                boostPressed_ = false;
-                chooseGame();
-           }
-       
+            }
+
+            if(moveBackward_ == true){
+                orxout(internal_error) << "Position update" << endl; 
+                    moveBackward_ = false;
+                    selectedPos_->set(selectedPos_->getIndex()-1);
+                    updatePosition();
+               }
+
+               if(boostPressed_ == true){
+                    boostPressed_ = false;
+                    chooseGame();
+               }
+
+               
+             if (camera != nullptr)
+            {
+
+                Vector3 epos = selectedPos_->get3dcoordinate();
+                orxout(internal_error) << "ex: "<< epos.x <<" ey: "<< epos.y << " ez: " << epos.z<< endl;
+                camera->setPosition(-(epos.x),-(epos.y),-(epos.z)+1000);
+                camera->setOrientation(Vector3::UNIT_Z, Degree(0));
+
+            }
+       }
        
     }
@@ -91,10 +115,46 @@
     void StoryModeController::moveFrontBack(const Vector2& value)
     {
-           orxout(internal_error) << "moveFrontBack" << endl;          
+          // orxout(internal_error) << "moveFrontBack" << endl;          
     }
 
     void StoryModeController::chooseGame()
     {
-           //findLevel(selectedPos_->getIndex());            
+       int ind = selectedPos_->getIndex();
+       std::string name =   "changeGame ";
+       switch(ind){
+            case 0:
+            name = name + "pong.oxw";
+                break;
+            case 1:
+                
+                break;
+            case 2:
+                
+                break;
+            case 3:
+                
+                break;
+            case 4:
+                
+                break;
+            case 5:
+               
+                break;
+            case 6:
+                
+                break;
+            case 7:
+                
+                break;
+            case 8:
+               
+                break;
+            default:
+                break;    
+       }  
+       CommandExecutor::execute(name);
+       /*for (GSLevel* level : ObjectList<GSLevel>())
+            level->changeGame(name);*/
+       //hideAllMenuSheets();     
     }
 
@@ -102,11 +162,14 @@
     void StoryModeController::moveRightLeft(const Vector2& value)
     {
-        orxout(internal_error) << "RightLeft" << endl; 
-        if (value.x>0){
-            moveForward_ =false;
-            moveBackward_ =true;
-        } else {
-            moveBackward_ = false;
-            moveForward_ = true;
+        if(!moveForward_&&!moveBackward_){ 
+            if (value.x>0){
+                orxout(internal_error) << "Right" << endl;
+                moveForward_ =true;
+                moveBackward_ =false;
+            } else {
+                 orxout(internal_error) << "Left" << endl;
+                moveBackward_ = true;
+                moveForward_ = false;
+            }
         }
 
@@ -114,11 +177,11 @@
 
     void StoryModeController::rotateYaw(const Vector2& value){
-        orxout(internal_error) << "RightLeft" << endl; 
+        //orxout(internal_error) << "RightLeft" << endl; 
     }
     void StoryModeController::rotatePitch(const Vector2& value){
-        orxout(internal_error) << "RightLeft" << endl; 
+        //orxout(internal_error) << "RightLeft" << endl; 
     }
     void StoryModeController::rotateRoll(const Vector2& value){
-        orxout(internal_error) << "RightLeft" << endl; 
+        //orxout(internal_error) << "RightLeft" << endl; 
     }
     void StoryModeController::fire(unsigned int a){}
Index: code/branches/WorldMap_HS18/src/orxonox/controllers/StoryModeController.h
===================================================================
--- code/branches/WorldMap_HS18/src/orxonox/controllers/StoryModeController.h	(revision 12130)
+++ code/branches/WorldMap_HS18/src/orxonox/controllers/StoryModeController.h	(revision 12131)
@@ -31,5 +31,8 @@
 
 #include "OrxonoxPrereqs.h"
-
+#include "core/EventIncludes.h"
+#include "core/command/Executor.h"
+#include "core/config/ConfigValueIncludes.h"
+#include "core/XMLPort.h"
 #include <vector>
 #include "tools/interfaces/Tickable.h"
@@ -37,4 +40,12 @@
 #include "worldentities/pawns/SpaceShip.h"
 #include "SMCoord.h"
+
+//#include <gtest/gtest.h>
+#include "core/class/Identifier.h"
+#include "core/class/IdentifierManager.h"
+#include "core/command/ConsoleCommandIncludes.h"
+#include "core/command/CommandExecutor.h"
+#include "core/object/Destroyable.h"
+#include "core/module/ModuleInstance.h"
 
 namespace orxonox
@@ -55,4 +66,6 @@
             virtual void fired(unsigned int firemode) override;
             virtual void boost(bool bBoost) override;
+            //virtual void switchCamera() override;
+
             virtual void setLocation(int index);
             bool moveRight_ ;
@@ -62,4 +75,5 @@
             virtual void updatePosition();                        
             float time_;
+            int dtime_;
             bool moveForward_;
             bool moveBackward_;                     
