实体
交通 CCarCtrl
交通密度、脚本造车与路网
CCarCtrl.h
交通密度、随机车、脚本造车、AI 挂路网。和 CPopulation / CPathFind 配套。
密度与计数
CarDensityMultiplier / MaxNumberOfCarsInUse
static float& CarDensityMultiplier;
static unsigned int& MaxNumberOfCarsInUse;
static int& NumRandomCars;
static int& NumMissionCars;
static int& NumParkedCars;
static int& NumPermanentVehicles;应急与警察车
NumLawEnforcerCars / bAllowEmergencyServicesToBeCreated
static unsigned int& NumLawEnforcerCars;
static unsigned int& NumAmbulancesOnDuty;
static unsigned int& NumFireTrucksOnDuty;
static bool& bAllowEmergencyServicesToBeCreated;脚本造车
CreateCarForScript / SetCoordsOfScriptCar
static CVehicle* CreateCarForScript(int modelid, CVector posn, unsigned char MissionCleanUpFlag);
static void SetCoordsOfScriptCar(CVehicle* pVehicle, float x, float y, float z, unsigned char arg5, unsigned char arg6);
static CVehicle* GetNewVehicleDependingOnCarModel(int modelID, unsigned char createdBy);随机生成
GenerateRandomCars / GenerateEmergencyServicesCar
static void GenerateRandomCars();
static void GenerateOneRandomCar();
static void GenerateEmergencyServicesCar();
static bool GenerateOneEmergencyServicesCar(unsigned int modelID, CVector posn);挂路网
JoinCarWithRoadSystem / JoinCarWithRoadSystemGotoCoors
static void JoinCarWithRoadSystem(CVehicle* pVehicle);
static bool JoinCarWithRoadSystemGotoCoors(CVehicle* pVehicle, CVector const& posn, bool unused, bool bIsBoat);
static void JoinCarWithRoadAccordingToMission(CVehicle* pVehicle);移除与兴趣车
PossiblyRemoveVehicle / RegisterVehicleOfInterest
static void PossiblyRemoveVehicle(CVehicle* pVehicle);
static void RemoveDistantCars();
static void RemoveCarsIfThePoolGetsFull();
static void RegisterVehicleOfInterest(CVehicle* pVehicle);
static void RemoveFromInterestingVehicleList(CVehicle* pVehicle);上下乘客
SetUpDriverAndPassengersForVehicle
static void SetUpDriverAndPassengersForVehicle(CVehicle* pVehicle, int arg2, int arg3, bool arg4, bool arg5, int passengersNum);