summaryrefslogtreecommitdiffstats
path: root/src/control/AutoPilot.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/control/AutoPilot.h')
-rw-r--r--src/control/AutoPilot.h92
1 files changed, 92 insertions, 0 deletions
diff --git a/src/control/AutoPilot.h b/src/control/AutoPilot.h
new file mode 100644
index 00000000..a2458327
--- /dev/null
+++ b/src/control/AutoPilot.h
@@ -0,0 +1,92 @@
+#pragma once
+
+class CVehicle;
+
+enum eCarMission : uint8
+{
+ MISSION_NONE,
+ MISSION_CRUISE,
+ MISSION_RAMPLAYER_FARAWAY,
+ MISSION_RAMPLAYER_CLOSE,
+ MISSION_BLOCKPLAYER_FARAWAY,
+ MISSION_BLOCKPLAYER_CLOSE,
+ MISSION_BLOCKPLAYER_HANDBRAKESTOP,
+ MISSION_WAITFORDELETION,
+ MISSION_GOTOCOORDS,
+ MISSION_GOTOCOORDS_STRAIGHT,
+ MISSION_EMERGENCYVEHICLE_STOP,
+ MISSION_STOP_FOREVER,
+ MISSION_GOTOCOORDS_ACCURATE,
+ MISSION_GOTO_COORDS_STRAIGHT_ACCURATE,
+ MISSION_GOTOCOORDS_ASTHECROWSWIMS,
+ MISSION_RAMCAR_FARAWAY,
+ MISSION_RAMCAR_CLOSE,
+ MISSION_BLOCKCAR_FARAWAY,
+ MISSION_BLOCKCAR_CLOSE,
+ MISSION_BLOCKCAR_HANDBRAKESTOP,
+ MISSION_HELI_FLYTOCOORS,
+ MISSION_ATTACKPLAYER,
+ MISSION_PLANE_FLYTOCOORS,
+ MISSION_HELI_LAND,
+ MISSION_SLOWLY_DRIVE_TOWARDS_PLAYER_1,
+ MISSION_SLOWLY_DRIVE_TOWARDS_PLAYER_2,
+ MISSION_BLOCKPLAYER_FORWARDANDBACK
+};
+
+enum eCarTempAction : uint8
+{
+ TEMPACT_NONE,
+ TEMPACT_WAIT,
+ TEMPACT_REVERSE,
+ TEMPACT_HANDBRAKETURNLEFT,
+ TEMPACT_HANDBRAKETURNRIGHT,
+ TEMPACT_HANDBRAKESTRAIGHT,
+ TEMPACT_TURNLEFT,
+ TEMPACT_TURNRIGHT,
+ TEMPACT_GOFORWARD,
+ TEMPACT_SWERVELEFT,
+ TEMPACT_SWERVERIGHT
+};
+
+enum eCarDrivingStyle : uint8
+{
+ DRIVINGSTYLE_STOP_FOR_CARS,
+ DRIVINGSTYLE_SLOW_DOWN_FOR_CARS,
+ DRIVINGSTYLE_AVOID_CARS,
+ DRIVINGSTYLE_PLOUGH_THROUGH,
+ DRIVINGSTYLE_STOP_FOR_CARS_IGNORE_LIGHTS
+};
+
+class CAutoPilot {
+public:
+ void *m_currentAddress;
+ void *m_startingRouteNode;
+ void *m_PreviousRouteNode;
+ uint32 m_nTotalSpeedScaleFactor;
+ uint32 m_nSpeedScaleFactor;
+ uint32 m_nCurrentPathNodeInfo;
+ uint32 m_nNextPathNodeInfo;
+ uint32 m_nPreviousPathNodeInfo;
+ uint32 m_nTimeToStartMission;
+ uint32 m_nTimeSwitchedToRealPhysics;
+ int8 m_nPreviousDirection;
+ int8 m_nCurrentDirecton;
+ int8 m_nNextDirection;
+ int8 m_nPreviousPathDirection;
+ int8 m_nCurrentPathDirection;
+ eCarDrivingStyle m_nDrivingStyle;
+ eCarMission m_nCarMission;
+ eCarTempAction m_nAnimationId;
+ uint8 m_nAnimationTime;
+ float m_fMaxTrafficSpeed;
+ uint8 m_nCruiseSpeed;
+ uint8 m_nCarCtrlFlags;
+ int8 pad1[2];
+ CVector m_vecDestinationCoors;
+ void *m_aPathFindNodesInfo[8];
+ uint16 m_nPathFindNodesCount;
+ int8 pad2[2];
+ CVehicle *m_pTargetCar;
+};
+
+static_assert(sizeof(CAutoPilot) == 0x70, "CAutoPilot: error"); \ No newline at end of file