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