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); }