Esempio n. 1
0
Vehicle * Lane::getRandomVehicle()
{
    int randomIndex = GameFunctions::randomValueBetween(0, _vehicles.size() - 1);
    std::string vehicle = _vehicles.at(randomIndex);

    VehicleFactory vehicleFactory;
    return vehicleFactory.createVehicle(vehicle);
}
void Setup::addVehicle(MainWindow &mWindow,Ui::MainWindow * ui)
{
     int carx;
     int cary;
     string direction;

      maxNumberOfCars++;
      if(maxNumberOfCars <=7){
      if(maxNumberOfCars == 1){
      vehicleThreads.push_back(&aThread);
      carx = 0;
      cary = 450;
      direction = "east";

      }
      if(maxNumberOfCars == 2){
      vehicleThreads.push_back(&bThread);
      carx = 200;
      cary = 450;
      direction = "east";
      }
      if(maxNumberOfCars == 3){
      vehicleThreads.push_back(&cThread);
      carx = 300;
      cary = 450;
      direction = "east";
      }
      if(maxNumberOfCars == 4){
      vehicleThreads.push_back(&dThread);
      carx = 1000;
      cary = 550;
      direction = "west";
      }

      //*************** scenario 1 on top overtaking example
      if(maxNumberOfCars == 5){
      vehicleThreads.push_back(&eThread);
      carx = 0;
      cary = 80;
      direction = "east";
      }
      if(maxNumberOfCars == 6){
      vehicleThreads.push_back(&fThread);
      carx = 200;
      cary = 80;
      direction = "east";
      }
      if(maxNumberOfCars == 7){
      vehicleThreads.push_back(&gThread);
      carx = 500;
      cary = 170;
      direction = "west";
      }
      //***************

       string aggressiveness;
       QString vehicleType;
       vehicleType    = ui->addVehicles->currentText().toStdString().c_str();;
      aggressiveness = ui->Aggressiveness->currentText().toStdString();
      Vehicle * carTry;
      VehicleFactory * vf = new VehicleFactory();
      carTry = vf->createVehicle(vehicleType/*"carwithtrailer"*/,aggressiveness,carx,cary,asubject,scene,direction);
      scene->addItem(carTry);


     // vehicleType    = ui->addVehicles->currentText().toStdString();
      vehicles.push_back(carTry);

      //Interceptor

      carTry->createDispatcher();
      carTry->dis.attach(logger.getInterceptor());

    }else{
       ui->reportBox->setText("You can only add maxium of four vehicles");
      }

      //Sequential

//      vehicles.push_back(car2);
//      vehicles.push_back(car3);
//      vehicles.push_back(car1);
//      vehicles.push_back(car4);

}