1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
#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:
uint32 m_currentAddress;
uint32 m_startingRouteNode;
uint32 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;
CVector m_vecDestinationCoors;
void *m_aPathFindNodesInfo[8];
uint16 m_nPathFindNodesCount;
CVehicle *m_pTargetCar;
};
static_assert(sizeof(CAutoPilot) == 0x70, "CAutoPilot: error");
|