2019-06-14 23:34:19 +00:00
|
|
|
#pragma once
|
2019-07-12 16:01:22 +00:00
|
|
|
|
2020-04-19 16:34:08 +00:00
|
|
|
#include "Crime.h"
|
|
|
|
|
2019-07-12 16:01:22 +00:00
|
|
|
class CEntity;
|
|
|
|
class CCopPed;
|
|
|
|
|
2019-06-26 21:31:12 +00:00
|
|
|
class CWanted
|
2019-06-17 00:10:55 +00:00
|
|
|
{
|
2019-06-14 23:34:19 +00:00
|
|
|
public:
|
|
|
|
int32 m_nChaos;
|
|
|
|
int32 m_nLastUpdateTime;
|
2019-10-17 14:28:24 +00:00
|
|
|
uint32 m_nLastWantedLevelChange;
|
2019-06-16 22:16:38 +00:00
|
|
|
float m_fCrimeSensitivity;
|
2019-07-04 20:31:21 +00:00
|
|
|
uint8 m_CurrentCops;
|
|
|
|
uint8 m_MaxCops;
|
|
|
|
uint8 m_MaximumLawEnforcerVehicles;
|
2019-07-12 16:01:22 +00:00
|
|
|
uint8 m_CopsBeatingSuspect;
|
2019-07-04 20:31:21 +00:00
|
|
|
int16 m_RoadblockDensity;
|
2019-07-12 16:01:22 +00:00
|
|
|
uint8 m_bIgnoredByCops : 1;
|
|
|
|
uint8 m_bIgnoredByEveryone : 1;
|
|
|
|
uint8 m_bSwatRequired : 1;
|
|
|
|
uint8 m_bFbiRequired : 1;
|
|
|
|
uint8 m_bArmyRequired : 1;
|
2019-06-14 23:34:19 +00:00
|
|
|
int32 m_nWantedLevel;
|
2019-07-12 16:01:22 +00:00
|
|
|
CCrimeBeingQd m_aCrimes[16];
|
2019-06-14 23:34:19 +00:00
|
|
|
CCopPed *m_pCops[10];
|
2019-07-12 16:01:22 +00:00
|
|
|
|
2020-04-17 05:54:14 +00:00
|
|
|
static int32 MaximumWantedLevel;
|
|
|
|
static int32 nMaximumWantedLevel;
|
2019-06-26 21:31:12 +00:00
|
|
|
|
|
|
|
public:
|
2019-07-12 16:01:22 +00:00
|
|
|
void Initialise();
|
2019-06-26 21:31:12 +00:00
|
|
|
bool AreSwatRequired();
|
|
|
|
bool AreFbiRequired();
|
|
|
|
bool AreArmyRequired();
|
2019-07-12 16:01:22 +00:00
|
|
|
int32 NumOfHelisRequired();
|
2019-07-04 20:31:21 +00:00
|
|
|
void SetWantedLevel(int32);
|
2019-07-09 16:50:35 +00:00
|
|
|
void SetWantedLevelNoDrop(int32 level);
|
2019-07-12 16:01:22 +00:00
|
|
|
void RegisterCrime(eCrimeType type, const CVector &coors, uint32 id, bool policeDoesntCare);
|
|
|
|
void RegisterCrime_Immediately(eCrimeType type, const CVector &coors, uint32 id, bool policeDoesntCare);
|
2019-07-04 20:31:21 +00:00
|
|
|
void ClearQdCrimes();
|
2019-07-12 16:01:22 +00:00
|
|
|
bool AddCrimeToQ(eCrimeType type, int32 id, const CVector &pos, bool reported, bool policeDoesntCare);
|
|
|
|
void ReportCrimeNow(eCrimeType type, const CVector &coors, bool policeDoesntCare);
|
2019-07-04 20:31:21 +00:00
|
|
|
void UpdateWantedLevel();
|
2019-10-07 21:29:30 +00:00
|
|
|
void Reset();
|
2020-03-29 15:26:23 +00:00
|
|
|
void ResetPolicePursuit();
|
|
|
|
void UpdateCrimesQ();
|
2020-02-12 23:33:21 +00:00
|
|
|
void Update();
|
2019-07-12 16:01:22 +00:00
|
|
|
|
2019-08-03 22:31:00 +00:00
|
|
|
bool IsIgnored(void) { return m_bIgnoredByCops || m_bIgnoredByEveryone; }
|
|
|
|
|
2019-07-12 16:01:22 +00:00
|
|
|
static int32 WorkOutPolicePresence(CVector posn, float radius);
|
|
|
|
static void SetMaximumWantedLevel(int32 level);
|
2019-06-14 23:34:19 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
static_assert(sizeof(CWanted) == 0x204, "CWanted: error");
|