Index: code/branches/WorldMap_HS18/src/orxonox/controllers/SMCoord.cc
===================================================================
--- code/branches/WorldMap_HS18/src/orxonox/controllers/SMCoord.cc	(revision 12106)
+++ code/branches/WorldMap_HS18/src/orxonox/controllers/SMCoord.cc	(revision 12110)
@@ -6,4 +6,8 @@
     }
 
+     SMCoord::~SMCoord() {
+        
+    }
+
     SMCoord::SMCoord(int x) {
         set(x);
@@ -11,5 +15,64 @@
 
     void SMCoord::set(int index) {
+        if(index<0) return;
+        if(index>8) return;
         this->index = index;
+    }
+
+    Vector3 SMCoord::get3dcoordinate() {
+        Vector3 coord;
+       switch(this->index)
+       {
+        case 0:
+            coord.x= 550;
+            coord.y = 300;
+            coord.z = 0;
+            break;
+        case 1:
+            coord.x= 100;
+            coord.y = 350;
+            coord.z = -250;
+            break;
+        case 2:
+            coord.x= -600;
+            coord.y = 250;
+            coord.z = -500;
+            break;
+        case 3:
+            coord.x= -1000;
+            coord.y = 50;
+            coord.z = -750;
+            break;
+        case 4:
+            coord.x= -900;
+            coord.y = -400;
+            coord.z = -1000;
+            break;
+        case 5:
+            coord.x= -500;
+            coord.y = -700;
+            coord.z = -1250;
+            break;
+        case 6:
+            coord.x= 0;
+            coord.y = 900;
+            coord.z = -1500;
+            break;
+        case 7:
+            coord.x= 700;
+            coord.y = -1100;
+            coord.z = -1750;
+            break;
+        case 8:
+            coord.x= 1500;
+            coord.y = 1300;
+            coord.z = -2000;
+            break;
+        default:
+            coord.x= 0;
+            coord.y = 0;
+            coord.z = 0;
+       }
+       return coord;
     }
 
Index: code/branches/WorldMap_HS18/src/orxonox/controllers/SMCoord.h
===================================================================
--- code/branches/WorldMap_HS18/src/orxonox/controllers/SMCoord.h	(revision 12106)
+++ code/branches/WorldMap_HS18/src/orxonox/controllers/SMCoord.h	(revision 12110)
@@ -13,6 +13,9 @@
             SMCoord();
             SMCoord(int x);
-            virtual void set(int index);
+             void set(int index);
             virtual int getIndex();
+            virtual Vector3 get3dcoordinate();
+            virtual ~SMCoord();
+
 
         private:
Index: code/branches/WorldMap_HS18/src/orxonox/controllers/StoryModeController.cc
===================================================================
--- code/branches/WorldMap_HS18/src/orxonox/controllers/StoryModeController.cc	(revision 12106)
+++ code/branches/WorldMap_HS18/src/orxonox/controllers/StoryModeController.cc	(revision 12110)
@@ -31,32 +31,36 @@
 #include "core/CoreIncludes.h"
 #include "worldentities/ControllableEntity.h"
+#include "graphics/Camera.h"
 #include "SMCoord.h"
-
+#include "core/XMLPort.h"
 namespace orxonox
 {
     RegisterClass(StoryModeController);
 
-   StoryModeController::StoryModeController(Context* context) : ControllableEntity(context)
+   StoryModeController::StoryModeController(Context* context) : SpaceShip(context)
     {
         RegisterObject(StoryModeController);
         float time_;
-        moveForward_=false;
+        selectedPos_ = new SMCoord(0);
+        moveForward_= false;
         moveBackward_=false;                     
         boostPressed_=false;
-        setPosition(0);
+       
+
       
     }
-
     StoryModeController::~StoryModeController()
     {
-        
+        delete selectedPos_;
+        selectedPos_ = nullptr;
 
     }
 
     void StoryModeController::updatePosition(){
-
+        Vector3 pos = selectedPos_->get3dcoordinate();
+        setPosition(pos);
     }
-    void StoryModeController::setPosition(int index){
-
+    void StoryModeController::setLocation(int index){
+         selectedPos_->set(index);
     }
 
@@ -64,6 +68,21 @@
     {
         orxout(internal_error) << "Hi" << endl;
-       SUPER(StoryModeController, tick, dt);
-       time_ +=dt;
+        SUPER(StoryModeController, tick, dt);
+        time_ +=dt;
+
+        if(moveForward_ == true){
+            moveForward_ = false;
+            selectedPos_->set(selectedPos_->getIndex()+1);
+            updatePosition();
+        }
+        if(moveBackward_ == true){
+                moveBackward_ = false;
+                selectedPos_->set(selectedPos_->getIndex()-1);
+                updatePosition();
+           }
+           if(boostPressed_ == true){
+                boostPressed_ = false;
+                chooseGame();
+           }
        
        
@@ -72,6 +91,13 @@
     void StoryModeController::moveFrontBack(const Vector2& value)
     {
-                    
+           orxout(internal_error) << "moveFrontBack" << endl;          
     }
+
+    void StoryModeController::chooseGame()
+    {
+           //findLevel(selectedPos_->getIndex());            
+    }
+
+
     void StoryModeController::moveRightLeft(const Vector2& value)
     {
@@ -87,10 +113,17 @@
     }
 
-    void StoryModeController::rotateYaw(const Vector2& value){}
-    void StoryModeController::rotatePitch(const Vector2& value){}
-    void StoryModeController::rotateRoll(const Vector2& value){}
+    void StoryModeController::rotateYaw(const Vector2& value){
+        orxout(internal_error) << "RightLeft" << endl; 
+    }
+    void StoryModeController::rotatePitch(const Vector2& value){
+        orxout(internal_error) << "RightLeft" << endl; 
+    }
+    void StoryModeController::rotateRoll(const Vector2& value){
+        orxout(internal_error) << "RightLeft" << endl; 
+    }
     void StoryModeController::fire(unsigned int a){}
     void StoryModeController::fired(unsigned int b){}
     void StoryModeController::boost(bool bBoost){
+        orxout(internal_error) << "Boost" << endl; 
         boostPressed_ = true;
     }
Index: code/branches/WorldMap_HS18/src/orxonox/controllers/StoryModeController.h
===================================================================
--- code/branches/WorldMap_HS18/src/orxonox/controllers/StoryModeController.h	(revision 12106)
+++ code/branches/WorldMap_HS18/src/orxonox/controllers/StoryModeController.h	(revision 12110)
@@ -36,8 +36,9 @@
 #include "worldentities/ControllableEntity.h"
 #include "worldentities/pawns/SpaceShip.h"
+#include "SMCoord.h"
 
 namespace orxonox
 {
-    class _OrxonoxExport StoryModeController : public ControllableEntity
+    class _OrxonoxExport StoryModeController : public SpaceShip
     {
         public:
@@ -54,7 +55,8 @@
             virtual void fired(unsigned int firemode) override;
             virtual void boost(bool bBoost) override;
-            virtual void setPosition(int index);
+            virtual void setLocation(int index);
             bool moveRight_ ;
             bool moveLeft_ ;
+            SMCoord* selectedPos_;
         private:
             virtual void updatePosition();                        
@@ -63,4 +65,5 @@
             bool moveBackward_;                     
             bool boostPressed_;
+            virtual void chooseGame();
 
     };
