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
|
#pragma once
enum ePedStats
{
PEDSTAT_PLAYER,
PEDSTAT_COP,
PEDSTAT_MEDIC,
PEDSTAT_FIREMAN,
PEDSTAT_GANG1,
PEDSTAT_GANG2,
PEDSTAT_GANG3,
PEDSTAT_GANG4,
PEDSTAT_GANG5,
PEDSTAT_GANG6,
PEDSTAT_GANG7,
PEDSTAT_STREET_GUY,
PEDSTAT_SUIT_GUY,
PEDSTAT_SENSIBLE_GUY,
PEDSTAT_GEEK_GUY,
PEDSTAT_OLD_GUY,
PEDSTAT_TOUGH_GUY,
PEDSTAT_STREET_GIRL,
PEDSTAT_SUIT_GIRL,
PEDSTAT_SENSIBLE_GIRL,
PEDSTAT_GEEK_GIRL,
PEDSTAT_OLD_GIRL,
PEDSTAT_TOUGH_GIRL,
PEDSTAT_TRAMP_MALE,
PEDSTAT_TRAMP_FEMALE,
PEDSTAT_TOURIST,
PEDSTAT_PROSTITUTE,
PEDSTAT_CRIMINAL,
PEDSTAT_BUSKER,
PEDSTAT_TAXIDRIVER,
PEDSTAT_PSYCHO,
PEDSTAT_STEWARD,
PEDSTAT_SPORTSFAN,
PEDSTAT_SHOPPER,
PEDSTAT_OLDSHOPPER,
NUM_PEDSTATS
};
// flags
enum
{
STAT_PUNCH_ONLY = 1,
STAT_CAN_KNEE_HEAD = 2,
STAT_CAN_KICK = 4,
STAT_CAN_ROUNDHOUSE = 8,
STAT_NO_DIVE = 0x10,
STAT_ONE_HIT_KNOCKDOWN = 0x20,
STAT_SHOPPING_BAGS = 0x40,
STAT_GUN_PANIC = 0x80
};
struct CPedStat
{
ePedStats m_type;
char m_name[24];
float m_fleeDistance;
float m_headingChangeRate;
int8 m_fear;
int8 m_temper;
int8 m_lawfulness;
int8 m_sexiness;
float m_attackStrength;
float m_defendWeakness;
int16 m_flags;
};
static_assert(sizeof(CPedStat) == 0x34, "CPedStat: error");
class CPedStats
{
static CPedStat *(&ms_apPedStats)[NUM_PEDSTATS];
public:
static void Initialise(void);
static void Shutdown(void);
static void LoadPedStats(void);
static int32 GetPedStatType(char *name);
};
|