summaryrefslogtreecommitdiffstats
path: root/src/core/PlayerInfo.h
blob: a24185f06dfbd58241da8dbd299f81ee3c06a7b1 (plain) (blame)
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#pragma once

#include "ColModel.h"

enum eWastedBustedState
{
	WBSTATE_PLAYING,
	WBSTATE_WASTED,
	WBSTATE_BUSTED,
	WBSTATE_FAILED_CRITICAL_MISSION,
};

enum eBustedAudioState
{
	BUSTEDAUDIO_NONE,
	BUSTEDAUDIO_LOADING,
	BUSTEDAUDIO_DONE
};

class CEntity;
class CPed;
class CVehicle;
class CPlayerPed;
class CCivilianPed;

class CPlayerInfo
{
public:
	CPlayerPed *m_pPed;
	CVehicle *m_pRemoteVehicle;
	CColModel m_ColModel;
	CVehicle *m_pVehicleEx;	// vehicle using the col model above
	char m_aPlayerName[70];
	int32 m_nMoney;
	int32 m_nVisibleMoney;
	int32 m_nCollectedPackages;
	int32 m_nTotalPackages;
	uint32 m_nLastBumpPlayerCarTimer;
	uint32 m_nUnusedTaxiTimer;
	bool m_bUnusedTaxiThing;
	uint32 m_nNextSexFrequencyUpdateTime;
	uint32 m_nNextSexMoneyUpdateTime;
	int32 m_nSexFrequency;
	CCivilianPed *m_pHooker;
	int8 m_WBState; // eWastedBustedState
	uint32 m_nWBTime;
	bool m_bInRemoteMode;
	bool field_D5;
	bool field_D6;
	uint32 m_nTimeLostRemoteCar;
	uint32 m_nTimeLastHealthLoss;
	uint32 m_nTimeLastArmourLoss;
	uint32 m_nTimeTankShotGun;
	int32 m_nUpsideDownCounter;
	int32 field_EC;
	int32 m_nTimeCarSpentOnTwoWheels;
	int32 m_nDistanceCarTravelledOnTwoWheels;
	int32 m_nTimeNotFullyOnGround;
	int32 m_nTimeSpentOnWheelie;
	float m_nDistanceTravelledOnWheelie;
	int32 m_nTimeSpentOnStoppie;
	float m_nDistanceTravelledOnStoppie;
	int32 m_nCancelWheelStuntTimer;
	int32 m_nLastTimeCarSpentOnTwoWheels;
	int32 m_nLastDistanceCarTravelledOnTwoWheels;
	int32 m_nLastTimeSpentOnWheelie;
	int32 m_nLastDistanceTravelledOnWheelie;
	int32 m_nLastTimeSpentOnStoppie;
	int32 m_nLastDistanceTravelledOnStoppie;
	int16 m_nTrafficMultiplier;
	int16 field_12A;
	float m_fRoadDensity;
	uint32 m_nPreviousTimeRewardedForExplosion;
	uint32 m_nExplosionsSinceLastReward;
	uint32 m_nHavocLevel;
	float m_fMediaAttention;
	bool m_bInfiniteSprint;
	bool m_bFastReload;
	bool m_bFireproof;
	uint8 m_nMaxHealth;
	uint8 m_nMaxArmour;
	bool m_bGetOutOfJailFree;
	bool m_bGetOutOfHospitalFree;
	bool m_bDriveByAllowed;
	uint8 m_nBustedAudioStatus;
	int16 m_nCurrentBustedAudio;
#ifdef GTA_PC
	char m_aSkinName[32];
	RwTexture *m_pSkinTexture;
#endif

	void MakePlayerSafe(bool);
	const CVector &GetPos();
	void Process(void);
	void KillPlayer(void);
	void ArrestPlayer(void);
	bool IsPlayerInRemoteMode(void);
	void PlayerFailedCriticalMission(void);
	void Clear(void);
	void BlowUpRCBuggy(bool);
	void CancelPlayerEnteringCars(CVehicle*);
	bool IsRestartingAfterDeath(void);
	bool IsRestartingAfterArrest(void);
	void EvaluateCarPosition(CEntity*, CPed*, float, float*, CVehicle**);
	void LoadPlayerInfo(uint8 *buf, uint32 size);
	void SavePlayerInfo(uint8 *buf, uint32* size);
	void FindClosestCarSectorList(CPtrList&, CPed*, float, float, float, float, float*, CVehicle**);

#ifdef GTA_PC
	void LoadPlayerSkin();
	void SetPlayerSkin(const char *skin);
	void DeletePlayerSkin();
#endif
};

CPlayerPed *FindPlayerPed(void);
CVehicle *FindPlayerVehicle(void);
CVehicle *FindPlayerTrain(void);
CEntity *FindPlayerEntity(void);
CVector FindPlayerCoors(void);
const CVector &FindPlayerSpeed(void);
const CVector &FindPlayerCentreOfWorld(int32 player);
const CVector &FindPlayerCentreOfWorld_NoSniperShift(void);
float FindPlayerHeading(void);