Index: /code/branches/OrxyRoad_FS18/src/modules/orxyroad/OrxyRoadShip.cc
===================================================================
--- /code/branches/OrxyRoad_FS18/src/modules/orxyroad/OrxyRoadShip.cc	(revision 11907)
+++ /code/branches/OrxyRoad_FS18/src/modules/orxyroad/OrxyRoadShip.cc	(revision 11908)
@@ -51,11 +51,16 @@
         lastTimeLeft = 0;
         lastTime = 0;
+        steeredLeft = false;
+        steeredRight = false;
+        forward = false;
+        backward = false;
     }
 
     void OrxyRoadShip::tick(float dt)
     {
-        orxout(user_info) << "This is some cool output!" << endl;
+        //orxout(user_info) << "This is some cool output!" << endl;
 
         Vector3 pos = getPosition();
+        Vector3 pos1 = getPosition();
 
         //Movement calculation
@@ -64,17 +69,40 @@
         lastTime += dt;
 
-        velocity.x = interpolate(clamp(lastTimeLeft, 0.0f, 1.0f), desiredVelocity.x, 0.0f);
-        velocity.y = interpolate(clamp(lastTimeFront, 0.0f, 1.0f), desiredVelocity.y, 0.0f);
+        
+        //velocity.x = interpolate(clamp(lastTimeLeft, 0.0f, 1.0f), desiredVelocity.x, 0.0f);
+        //velocity.y = interpolate(clamp(lastTimeFront, 0.0f, 1.0f), desiredVelocity.y, 0.0f);
 
         //Execute movement
+        
         if (this->hasLocalController())
         {
             float dist_y = velocity.y * dt;
+            //forward backwards movement
+            if(forward){
+                if(velocity.y < 200){// Limit for max velocity
+                    velocity.y += 10;
+                }
+                
+
+            }else if(backward){
+                if(velocity.y > 10){
+                     velocity.y -= 10; 
+                }else {
+                    velocity.y = 0; // Prevent players from going backwards
+                }
+                          
+            }else {
+                velocity.y = 0.9 * velocity.y;//reduce speed
+            }
+
+
+
+
             //float dist_x = velocity.x * dt;
-            if(dist_y + posforeward > -42*3 && dist_y + posforeward < 42*6)
-                posforeward += dist_y;
-            else
-            {
-                velocity.y = 0;
+            //if(dist_y + posforeward > -42*3 && dist_y + posforeward < 42*6)
+              //  posforeward += dist_y;
+            //else
+            //{
+                //velocity.y = 0;
                 // restart if game ended
 /*
@@ -85,8 +113,29 @@
                         return;
                     }*/
+            //}
+
+            //Left right steering
+
+
+            if(steeredLeft){
+                velocity.x += 100;
+                steeredLeft = false;
+
+            }else if(steeredRight) {
+                velocity.x += -100;
+                steeredRight = false;
+            }else {
+                if(velocity.x < -2 || velocity.x > 2 ){
+                    velocity.x  = velocity.x *0.9;
+                }else{
+                    velocity.x += 0;
+                }
+                
             }
 
-            pos += Vector3(1000 + velocity.y, 0, velocity.x) * dt;
-        }
+            pos += Vector3(velocity.y, 0, velocity.x) * dt;
+            
+        }
+
 
 
@@ -95,6 +144,8 @@
         if (camera != nullptr)
         {
-            // camera->setPosition(Vector3(-pos.z, -posforeward, 0));
-            camera->setOrientation(Vector3::UNIT_Z, Degree(0));
+            //camera->setPosition(Vector3(pos1.x - 10 ,50,0));
+            //camera->setOrientation(Vector3(-1,-1,0), Degree(45));
+            //camera->setOrientation(Vector3(-1,-1,-1), Degree(0));
+           camera->setOrientation(Vector3::UNIT_Z, Degree(0));
         }
 
@@ -129,4 +180,13 @@
     void OrxyRoadShip::moveFrontBack(const Vector2& value)
     {
+        this->steering_.z -= value.x ;
+        if(value.x > 0){
+            forward  = true;
+            backward = false;
+        }else if(value.x < 0){
+            forward = false;
+            backward = true;
+        }
+        
         //lastTimeFront = 0;
         //desiredVelocity.y = value.y * speed * 42;
@@ -136,10 +196,23 @@
     void OrxyRoadShip::moveRightLeft(const Vector2& value)
     {
-        lastTimeLeft = 0;
-        desiredVelocity.x = value.x * speed;
+        this->steering_.x += value.x;
+        if(value.x==-1){
+            steeredLeft = false;
+            steeredRight = true;       
+            orxout(user_info) << "Steering RIGHT "<<steering_.x << endl;
+        }else {
+            steeredRight = false;
+            steeredLeft = true;
+             orxout(user_info) << "Steering LEFT "<<steering_.x << endl;
+
+        }
+        
+
+        //lastTimeLeft = 0;
+        //desiredVelocity.x = value.x * speed;
     }
     void OrxyRoadShip::boost(bool bBoost)
     {
-        //getGame()->bEndGame = bBoost;
+        //bool boosting = bBoost;
     }
 
Index: /code/branches/OrxyRoad_FS18/src/modules/orxyroad/OrxyRoadShip.h
===================================================================
--- /code/branches/OrxyRoad_FS18/src/modules/orxyroad/OrxyRoadShip.h	(revision 11907)
+++ /code/branches/OrxyRoad_FS18/src/modules/orxyroad/OrxyRoadShip.h	(revision 11908)
@@ -74,4 +74,5 @@
             float speed, damping, posforeward;
             bool isFireing;
+            bool steeredLeft, steeredRight, forward, backward;
 
         protected:
