@@ -13,7 +13,31 @@
|
||||
|
||||
struct CPathNode;
|
||||
|
||||
enum eObjective {
|
||||
enum eWaitState : uint32 {
|
||||
WAITSTATE_FALSE,
|
||||
WAITSTATE_TRAFFIC_LIGHTS,
|
||||
WAITSTATE_CROSS_ROAD,
|
||||
WAITSTATE_CROSS_ROAD_LOOK,
|
||||
WAITSTATE_LOOK_PED,
|
||||
WAITSTATE_LOOK_SHOP,
|
||||
WAITSTATE_LOOK_ACCIDENT,
|
||||
WAITSTATE_FACEOFF_GANG,
|
||||
WAITSTATE_DOUBLEBACK,
|
||||
WAITSTATE_HITWALL,
|
||||
WAITSTATE_TURN180,
|
||||
WAITSTATE_SURPRISE,
|
||||
WAITSTATE_STUCK,
|
||||
WAITSTATE_LOOK_ABOUT,
|
||||
WAITSTATE_PLAYANIM_DUCK,
|
||||
WAITSTATE_PLAYANIM_COWER,
|
||||
WAITSTATE_PLAYANIM_TAXI,
|
||||
WAITSTATE_PLAYANIM_HANDSUP,
|
||||
WAITSTATE_PLAYANIM_HANDSCOWER,
|
||||
WAITSTATE_PLAYANIM_CHAT,
|
||||
WAITSTATE_FINISH_FLEE
|
||||
};
|
||||
|
||||
enum eObjective : uint32 {
|
||||
OBJECTIVE_NONE,
|
||||
OBJECTIVE_IDLE,
|
||||
OBJECTIVE_FLEE_TILL_SAFE,
|
||||
@@ -52,7 +76,7 @@ enum eObjective {
|
||||
OBJECTIVE_35
|
||||
};
|
||||
|
||||
enum {
|
||||
enum eVehEnter : uint16 {
|
||||
VEHICLE_ENTER_FRONT_RIGHT = 11,
|
||||
VEHICLE_ENTER_REAR_RIGHT = 12,
|
||||
VEHICLE_ENTER_FRONT_LEFT = 15,
|
||||
@@ -168,15 +192,15 @@ public:
|
||||
|
||||
uint8 bIsRestoringGun : 1;
|
||||
uint8 bCanPointGunAtTarget : 1;
|
||||
uint8 m_ped_flagB4 : 1;
|
||||
uint8 m_ped_flagB8 : 1;
|
||||
uint8 m_ped_flagB10 : 1;
|
||||
uint8 bIsTalking : 1;
|
||||
uint8 bIsInTheAir : 1;
|
||||
uint8 bIsLanding : 1;
|
||||
uint8 m_ped_flagB20 : 1;
|
||||
uint8 m_ped_flagB40 : 1;
|
||||
uint8 m_ped_flagB80 : 1;
|
||||
|
||||
uint8 m_ped_flagC1 : 1;
|
||||
uint8 m_ped_flagC2 : 1;
|
||||
uint8 bRespondsToThreats : 1;
|
||||
uint8 m_ped_flagC4 : 1;
|
||||
uint8 m_ped_flagC8 : 1;
|
||||
uint8 m_ped_flagC10 : 1;
|
||||
@@ -195,9 +219,9 @@ public:
|
||||
|
||||
uint8 m_ped_flagE1 : 1;
|
||||
uint8 m_ped_flagE2 : 1;
|
||||
uint8 m_ped_flagE4 : 1;
|
||||
uint8 m_ped_flagE8 : 1; // can duck?
|
||||
uint8 bCantFireBecauseCrouched : 1; // set if you don't want ped to attack
|
||||
uint8 bNotAllowedToDuck : 1;
|
||||
uint8 bCrouchWhenShooting : 1;
|
||||
uint8 bIsDucking : 1; // set if you don't want ped to attack
|
||||
uint8 m_ped_flagE20 : 1;
|
||||
uint8 bDoBloodyFootprints : 1;
|
||||
uint8 m_ped_flagE80 : 1;
|
||||
@@ -270,7 +294,7 @@ public:
|
||||
eMoveState m_nMoveState;
|
||||
int32 m_nStoredActionState;
|
||||
int32 m_nPrevActionState;
|
||||
int32 m_nWaitState;
|
||||
eWaitState m_nWaitState;
|
||||
uint32 m_nWaitTimer;
|
||||
void *m_pPathNodesStates[8];
|
||||
CVector2D m_stPathNodeStates[10];
|
||||
@@ -286,15 +310,15 @@ public:
|
||||
float m_fArmour;
|
||||
int16 m_routeLastPoint;
|
||||
uint16 m_routePoints;
|
||||
uint16 m_routePos;
|
||||
uint16 m_routeType;
|
||||
uint16 m_routeCurDir;
|
||||
int16 m_routePos;
|
||||
int16 m_routeType;
|
||||
int16 m_routeCurDir;
|
||||
uint16 field_2D2;
|
||||
CVector2D m_moved;
|
||||
float m_fRotationCur;
|
||||
float m_fRotationDest;
|
||||
float m_headingRate;
|
||||
uint16 m_vehEnterType;
|
||||
eVehEnter m_vehEnterType;
|
||||
uint16 m_walkAroundType;
|
||||
CEntity *m_pCurrentPhysSurface;
|
||||
CVector m_vecOffsetFromPhysSurface;
|
||||
@@ -426,7 +450,18 @@ public:
|
||||
bool CanPedJumpThis(int32);
|
||||
bool CanSeeEntity(CEntity*, float);
|
||||
void RestorePreviousObjective(void);
|
||||
void SetIdle(void);
|
||||
void SetObjective(eObjective, void*);
|
||||
void SetObjective(eObjective);
|
||||
void SetObjective(eObjective, int16, int16);
|
||||
void ClearChat(void);
|
||||
void InformMyGangOfAttack(CEntity*);
|
||||
void SetFollowRoute(int16, int16);
|
||||
void ReactToAttack(CEntity*);
|
||||
void SetDuck(uint32);
|
||||
void RegisterThreatWithGangPeds(CEntity*);
|
||||
bool TurnBody(void);
|
||||
void Chat(void);
|
||||
|
||||
// Static methods
|
||||
static void GetLocalPositionToOpenCarDoor(CVector *output, CVehicle *veh, uint32 enterType, float offset);
|
||||
@@ -482,11 +517,26 @@ public:
|
||||
void SetStoredObjective(void);
|
||||
void SetLeader(CEntity* leader);
|
||||
void SetPedStats(ePedStats);
|
||||
bool IsGangMember(void);
|
||||
|
||||
inline bool HasWeapon(uint8 weaponType) { return m_weapons[weaponType].m_eWeaponType == weaponType; }
|
||||
inline CWeapon &GetWeapon(uint8 weaponType) { return m_weapons[weaponType]; }
|
||||
inline CWeapon *GetWeapon(void) { return &m_weapons[m_currentWeapon]; }
|
||||
inline RwFrame *GetNodeFrame(int nodeId) { return m_pFrames[nodeId]->frame; }
|
||||
inline static uint8 GetVehEnterExitFlag(eVehEnter vehEnter) {
|
||||
switch (vehEnter) {
|
||||
case VEHICLE_ENTER_FRONT_RIGHT:
|
||||
return 4;
|
||||
case VEHICLE_ENTER_REAR_RIGHT:
|
||||
return 8;
|
||||
case VEHICLE_ENTER_FRONT_LEFT:
|
||||
return 1;
|
||||
case VEHICLE_ENTER_REAR_LEFT:
|
||||
return 2;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
// to make patching virtual functions possible
|
||||
void SetModelIndex_(uint32 mi) { CPed::SetModelIndex(mi); }
|
||||
|
||||
Reference in New Issue
Block a user