void __cdecl G_VehSpawner(gentity_t *ent) { const char* value; char vehTypeStr[MAX_QPATH]; if(level.spawnVars.isGameLoadingSpawn) { G_LevelSpawnString("vehicletype", 0, &value); }else{ if(Scr_GetNumParam() == 3) { //Scr_Error("Usage: spawn(\"script_vehicle\", <origin>, <spawnflags>, <vehicletype>)"); Q_strncpyz(vehTypeStr, "defaultvehicle_mp", sizeof(vehTypeStr)); }else{ Q_strncpyz(vehTypeStr, Scr_GetString(3), sizeof(vehTypeStr)); if(Scr_GetNumParam() == 5) { G_SetModel(ent, Scr_GetString(4)); } } value = vehTypeStr; } SpawnVehicle( ent, value ); }
void GScr_SpawnVehicle() { int spawnflags; gentity_t *gentity; vec3_t origin; char vehTypeStr[MAX_QPATH]; char vehModel[MAX_QPATH]; Scr_GetVector(0, origin); if ( Scr_GetNumParam() != 4 ) { Scr_Error("Usage: spawnvehicle <origin>, <spawnflags>, <vehicletype>, <xmodel>"); return; } spawnflags = Scr_GetInt(1); gentity = G_Spawn(); Scr_SetString((unsigned short*)&gentity->constClassname, (unsigned short)stringIndex.script_vehicle); gentity->r.currentOrigin[0] = origin[0]; gentity->r.currentOrigin[1] = origin[1]; gentity->r.currentOrigin[2] = origin[2]; gentity->spawnflags = spawnflags; Q_strncpyz(vehTypeStr, Scr_GetString(2), sizeof(vehTypeStr)); Q_strncpyz(vehModel, Scr_GetString(3), sizeof(vehModel)); G_SetModel(gentity, vehModel); SpawnVehicle( gentity, vehTypeStr ); G_VehCollmapSpawner( gentity ); Scr_AddEntity( gentity ); }
ACarlaWheeledVehicle* AVehicleSpawnerBase::SpawnVehicleAtSpawnPoint( const APlayerStart &SpawnPoint) { ACarlaWheeledVehicle *Vehicle; SpawnVehicle(SpawnPoint.GetActorTransform(), Vehicle); if ((Vehicle != nullptr) && !Vehicle->IsPendingKill()) { Vehicle->AIControllerClass = AWheeledVehicleAIController::StaticClass(); Vehicle->SpawnDefaultController(); auto Controller = GetController(Vehicle); if (Controller != nullptr) { // Sometimes fails... Controller->GetRandomEngine()->Seed(GetRandomEngine()->GenerateSeed()); Controller->SetRoadMap(GetRoadMap()); Controller->SetAutopilot(true); Vehicles.Add(Vehicle); } else { UE_LOG(LogCarla, Error, TEXT("Something went wrong creating the controller for the new vehicle")); Vehicle->Destroy(); } } return Vehicle; }