summaryrefslogtreecommitdiffstats
path: root/src/control/CarCtrl.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/control/CarCtrl.h')
-rw-r--r--src/control/CarCtrl.h33
1 files changed, 21 insertions, 12 deletions
diff --git a/src/control/CarCtrl.h b/src/control/CarCtrl.h
index dc156c8f..aed5470c 100644
--- a/src/control/CarCtrl.h
+++ b/src/control/CarCtrl.h
@@ -1,5 +1,6 @@
#pragma once
#include "PathFind.h"
+#include "Boat.h"
#include "Vehicle.h"
class CZoneInfo;
@@ -25,7 +26,7 @@ class CCarCtrl
SPECIAL,
BIG,
TAXI,
- CLASS7,
+ TOTAL_CUSTOM_CLASSES,
MAFIA,
TRIAD,
DIABLO,
@@ -44,7 +45,6 @@ public:
static int32 ChooseCarModel(int32 vehclass);
static bool JoinCarWithRoadSystemGotoCoors(CVehicle*, CVector, bool);
static void JoinCarWithRoadSystem(CVehicle*);
- static void SteerAICarWithPhysics(CVehicle*);
static void UpdateCarOnRails(CVehicle*);
static bool MapCouldMoveInThisArea(float x, float y);
static void ScanForPedDanger(CVehicle *veh);
@@ -66,7 +66,6 @@ public:
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 void Init(void);
static void SlowCarDownForOtherCar(CEntity*, CVehicle*, float*, float);
static float TestCollisionBetween2MovingRects(CVehicle*, CVehicle*, float, float, CVector*, CVector*, uint8);
static float FindAngleToWeaveThroughTraffic(CVehicle*, CPhysical*, float, float);
@@ -84,12 +83,19 @@ public:
static bool PickNextNodeToFollowPath(CVehicle*);
static void PickNextNodeRandomly(CVehicle*);
static uint8 FindPathDirection(int32, int32, int32);
-
- 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 void Init(void);
+ static void ReInit(void);
+ static float FindSpeedMultiplier(float, float, float, float);
+ static void SteerAICarWithPhysics(CVehicle*);
+ static void SteerAICarWithPhysics_OnlyMission(CVehicle*, float*, float*, float*, bool*);
+ static void SteerAIBoatWithPhysics(CBoat*);
+ static float FindMaxSteerAngle(CVehicle*);
+ static void SteerAICarWithPhysicsFollowPath(CVehicle*, float*, float*, float*, bool*);
+ static void SteerAICarWithPhysicsHeadingForTarget(CVehicle*, CPhysical*, float, float, float*, float*, float*, bool*);
+ static void SteerAICarWithPhysicsTryingToBlockTarget(CVehicle*, float, float, float, float, float*, float*, float*, bool*);
+ static void SteerAICarWithPhysicsTryingToBlockTarget_Stop(CVehicle*, float, float, float, float, float*, float*, float*, bool*);
+ static void SteerAIBoatWithPhysicsHeadingForTarget(CBoat*, float, float, float*, float*, float*);
+ static bool ThisRoadObjectCouldMove(int16);
static float GetPositionAlongCurrentCurve(CVehicle* pVehicle)
{
@@ -112,14 +118,17 @@ public:
static int32 &NumRandomCars;
static int32 &NumMissionCars;
static int32 &NumParkedCars;
+ static int32 &NumPermanentCars;
static bool &bCarsGeneratedAroundCamera;
static float &CarDensityMultiplier;
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];
+ static uint32 &LastTimeFireTruckCreated;
+ static uint32 &LastTimeAmbulanceCreated;
+ static int32 (&TotalNumOfCarsOfRating)[TOTAL_CUSTOM_CLASSES];
+ static int32 (&NextCarOfRating)[TOTAL_CUSTOM_CLASSES];
+ static int32 (&CarArrays)[TOTAL_CUSTOM_CLASSES][MAX_CAR_MODELS_IN_ARRAY];
};
extern CVehicle* (&apCarsToKeep)[MAX_CARS_TO_KEEP]; \ No newline at end of file