diff options
author | aap <aap@papnet.eu> | 2019-08-11 22:15:31 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-08-11 22:15:31 +0200 |
commit | b7471489faaae864c953aac45e58417d7236329d (patch) | |
tree | 439de47b03e154a068f920274f5211d44c418dcc /src/control/CarCtrl.h | |
parent | Merge pull request #185 from erorcun/erorcun (diff) | |
parent | more CCarCtrl (diff) | |
download | re3-b7471489faaae864c953aac45e58417d7236329d.tar re3-b7471489faaae864c953aac45e58417d7236329d.tar.gz re3-b7471489faaae864c953aac45e58417d7236329d.tar.bz2 re3-b7471489faaae864c953aac45e58417d7236329d.tar.lz re3-b7471489faaae864c953aac45e58417d7236329d.tar.xz re3-b7471489faaae864c953aac45e58417d7236329d.tar.zst re3-b7471489faaae864c953aac45e58417d7236329d.zip |
Diffstat (limited to '')
-rw-r--r-- | src/control/CarCtrl.h | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/src/control/CarCtrl.h b/src/control/CarCtrl.h index 6b1fce8c..735dc89c 100644 --- a/src/control/CarCtrl.h +++ b/src/control/CarCtrl.h @@ -1,8 +1,16 @@ #pragma once +#include "PathFind.h" +#include "Vehicle.h" -class CVehicle; class CZoneInfo; +enum{ + MAX_CARS_TO_KEEP = 2, + MAX_CAR_MODELS_IN_ARRAY = 256, +}; + +#define LANE_WIDTH 5.0f + class CCarCtrl { enum eCarClass { @@ -42,6 +50,30 @@ public: static void GenerateEmergencyServicesCar(void); static int32 ChooseModel(CZoneInfo*, CVector*, int*); static int32 ChoosePoliceCarModel(void); + static int32 ChooseGangCarModel(int32 gang); + static void RemoveDistantCars(void); + static void PossiblyRemoveVehicle(CVehicle*); + static bool IsThisVehicleInteresting(CVehicle*); + static int32 CountCarsOfType(int32 mi); + static void SlowCarOnRailsDownForTrafficAndLights(CVehicle*); + static void PickNextNodeAccordingStrategy(CVehicle*); + static void DragCarToPoint(CVehicle*, CVector*); + static float FindMaximumSpeedForThisCarInTraffic(CVehicle*); + static void SlowCarDownForCarsSectorList(CPtrList&, CVehicle*, float, float, float, float, float*, float); + static void SlowCarDownForPedsSectorList(CPtrList&, CVehicle*, float, float, float, float, float*, float); + + + static float GetOffsetOfLaneFromCenterOfRoad(int8 lane, CCarPathLink* pLink) + { + return (lane + ((pLink->numLeftLanes == 0) ? (0.5f - 0.5f * pLink->numRightLanes) : + ((pLink->numRightLanes == 0) ? (0.5f - 0.5f * pLink->numLeftLanes) : 0.5f))) * LANE_WIDTH; + } + + static float GetPositionAlongCurrentCurve(CVehicle* pVehicle) + { + uint32 timeInCurve = CTimer::GetTimeInMilliseconds() - pVehicle->AutoPilot.m_nTimeEnteredCurve; + return (float)timeInCurve / pVehicle->AutoPilot.m_nTimeToSpendOnCurrentCurve; + } static int32 &NumLawEnforcerCars; static int32 &NumAmbulancesOnDuty; @@ -54,4 +86,9 @@ public: static int8 &CountDownToCarsAtStart; static int32 &MaxNumberOfCarsInUse; static uint32 &LastTimeLawEnforcerCreated; + static int32 (&TotalNumOfCarsOfRating)[7]; + static int32 (&NextCarOfRating)[7]; + static int32 (&CarArrays)[7][MAX_CAR_MODELS_IN_ARRAY]; }; + +extern CVehicle* (&apCarsToKeep)[MAX_CARS_TO_KEEP];
\ No newline at end of file |