Index: code/branches/OrxyRoad_FS18/src/modules/orxyroad/OrxyRoad.cc
===================================================================
--- code/branches/OrxyRoad_FS18/src/modules/orxyroad/OrxyRoad.cc	(revision 11970)
+++ code/branches/OrxyRoad_FS18/src/modules/orxyroad/OrxyRoad.cc	(revision 11972)
@@ -95,37 +95,74 @@
     }
     int OrxyRoad::generateStreet(int type, OrxyRoadShip* player){
-        int trafficVelocities[]= {20,1000,500, 200};
-        int numObjects[] = {60,10,40,60}; // default, spaceship, sattellite, asteroid
+        int trafficVelocities[]= {200,1400,500, 300};
+        int numObjects[] = {60,100,40,60}; // default, spaceship, sattellite, asteroid per track
         int streetSize[] = {3 , 1, 2, 4};
-        int trackWidth = 800;
+        int trackWidth = 700;
       
         for(int j = 0; j < streetSize[type]; j++)//width of Street
             {
+                int sign = rand()%2;
+
+                orxout(internal_error) << sign<< endl;
+                
+                
+
                 for(int i = -numObjects[type]/2; i<numObjects[type]/2; i++)
                 {
                         OrxyRoadCube* cube = new OrxyRoadCube(this->center_->getContext());
                         cubeList.push_back(cube);
+                        int templateType = rand()%2;
                         switch(type)
                         {
-                        case 0 : cube->addTemplate("asteroid");//default
+                        case 0 :
+                            if(templateType >=1){
+                                cube->addTemplate("asteroid");//default
+                            }else {
+                                cube->addTemplate("asteroid");//default
+                            }
                         break;
                         case 1:
-                        
-                        cube->addTemplate("spacecruiser");//spaceship
+                         if(templateType >=1){
+                                cube->addTemplate("asteroid");//spaceship1
+                            }else {
+                                cube->addTemplate("spacecruiser");//spaceship2
+                            }                        
+                            
 
                         break;
-                        case 2: cube->addTemplate("spacecruiser");//satellite
+                        case 2: 
+                            if(templateType >=1){
+                                cube->addTemplate("asteroid");//satellite
+                            }else {
+                                cube->addTemplate("spacecruiser");//satellite
+                            }                      
+
+                            
                         break;
-                        case 3: cube->addTemplate("asteroid");//asteroid
+                        case 3: 
+                            if(templateType >=1){
+                                cube->addTemplate("asteroid");//asteroid
+                            }else {
+                                cube->addTemplate("spacecruiser");//asteroid
+                            }                      
+
 
                         }
 
-                        int distance = trafficVelocities[type]; //Todo better calculation of distance between objects
+                        int distance = trafficVelocities[type]*3; //Todo better calculation of distance between objects
                        
-                        cube->setPosition(player->getWorldPosition() + Vector3(1000.0f+j*trackWidth, 0.0f, i*600.0f+j*trackWidth));
+                        cube->setPosition(player->getWorldPosition() + Vector3(1000.0f+j*trackWidth, 0.0f, i*distance+j*trackWidth));
                         
                         /* experimental */
-
-                        cube->setVelocity(0,0,trafficVelocities[type]);
+                        
+
+                        if(sign>=1){
+                            cube->setVelocity(0,0,trafficVelocities[type]);
+                        } else{
+                             cube->setVelocity(0,0,-trafficVelocities[type]);
+                        }
+                        
+
+                        
 
                         /* experimental */
@@ -166,5 +203,5 @@
 
 
-            if(counter >= 3000)
+            if(counter >= roadWidth)
             {
                 int type  = rand() % 4;
Index: code/branches/OrxyRoad_FS18/src/modules/orxyroad/OrxyRoadShip.cc
===================================================================
--- code/branches/OrxyRoad_FS18/src/modules/orxyroad/OrxyRoadShip.cc	(revision 11970)
+++ code/branches/OrxyRoad_FS18/src/modules/orxyroad/OrxyRoadShip.cc	(revision 11972)
@@ -82,4 +82,5 @@
                 if(velocity.y < 200){// Limit for max velocity
                     velocity.y += 10;
+                    forward = false;
                 }
                 
@@ -91,4 +92,5 @@
                     velocity.y = 0; // Prevent players from going backwards
                 }
+                backward = false;
                           
             }else {
@@ -119,10 +121,15 @@
 
             if(steeredLeft){
-                velocity.x += 100;
-                steeredLeft = false;
+                if(!forward){
+                    velocity.x += 5;
+                    steeredLeft = false;
+                }
+                
 
             }else if(steeredRight) {
-                velocity.x += -100;
-                steeredRight = false;
+                if(!forward){
+                    velocity.x += -5;
+                    steeredRight = false;
+                }
             }else {
                 if(velocity.x < -2 || velocity.x > 2 ){
@@ -206,6 +213,5 @@
              //orxout(user_info) << "Steering LEFT "<<steering_.x << endl;
 
-        }
-        
+        }        
 
         //lastTimeLeft = 0;
