summaryrefslogtreecommitdiff
path: root/src/core/Wanted.h
diff options
context:
space:
mode:
authorclaude-bot <[email protected]>2026-07-13 12:27:07 +0000
committerclaude-bot <[email protected]>2026-07-13 12:27:07 +0000
commit9f61c9e6ac6b1ac5692cf6352d2ebbd47a31a686 (patch)
treea84756b82513739a2672db3a1f0ec579db6d18ff /src/core/Wanted.h
downloadre3-9f61c9e6ac6b1ac5692cf6352d2ebbd47a31a686.tar.gz
re3-9f61c9e6ac6b1ac5692cf6352d2ebbd47a31a686.zip
Import Cai1Hsu/re3 @ miami (reVC / GTA:VC decompilation)HEADmiami
Snapshot import (no upstream history) into git.ancap.in.ua/claude, per @lzcnt. Source: https://github.com/Cai1Hsu/re3 branch miami.
Diffstat (limited to 'src/core/Wanted.h')
-rw-r--r--src/core/Wanted.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/core/Wanted.h b/src/core/Wanted.h
new file mode 100644
index 0000000..f2da23e
--- /dev/null
+++ b/src/core/Wanted.h
@@ -0,0 +1,65 @@
+#pragma once
+
+#include "Crime.h"
+
+class CEntity;
+class CCopPed;
+
+class CWanted
+{
+public:
+ int32 m_nChaos;
+ int32 m_nMinChaos;
+ int32 m_nLastUpdateTime;
+ uint32 m_nLastWantedLevelChange;
+ uint32 m_nLastTimeSuspended;
+ float m_fCrimeSensitivity;
+ uint8 m_CurrentCops;
+ uint8 m_MaxCops;
+ uint8 m_MaximumLawEnforcerVehicles;
+ uint8 m_CopsBeatingSuspect;
+ int16 m_RoadblockDensity;
+ uint8 m_bIgnoredByCops : 1;
+ uint8 m_bIgnoredByEveryone : 1;
+ uint8 m_bSwatRequired : 1;
+ uint8 m_bFbiRequired : 1;
+ uint8 m_bArmyRequired : 1;
+ int32 m_nWantedLevel;
+ int32 m_nMinWantedLevel;
+ CCrimeBeingQd m_aCrimes[16];
+ CCopPed *m_pCops[10];
+
+ static int32 MaximumWantedLevel;
+ static int32 nMaximumWantedLevel;
+
+public:
+ void Initialise();
+ bool AreMiamiViceRequired();
+ bool AreSwatRequired();
+ bool AreFbiRequired();
+ bool AreArmyRequired();
+ int32 NumOfHelisRequired();
+ void SetWantedLevel(int32);
+ void SetWantedLevelNoDrop(int32 level);
+ int32 GetWantedLevel() { return m_nWantedLevel; }
+ void CheatWantedLevel(int32 level);
+ void RegisterCrime(eCrimeType type, const CVector &coors, uint32 id, bool policeDoesntCare);
+ void RegisterCrime_Immediately(eCrimeType type, const CVector &coors, uint32 id, bool policeDoesntCare);
+ void ClearQdCrimes();
+ bool AddCrimeToQ(eCrimeType type, int32 id, const CVector &pos, bool reported, bool policeDoesntCare);
+ void ReportCrimeNow(eCrimeType type, const CVector &coors, bool policeDoesntCare);
+ void UpdateWantedLevel();
+ void Reset();
+ void ResetPolicePursuit();
+ void UpdateCrimesQ();
+ void Update();
+
+ void Suspend();
+
+ bool IsIgnored(void) { return m_bIgnoredByCops || m_bIgnoredByEveryone; }
+
+ static int32 WorkOutPolicePresence(CVector posn, float radius);
+ static void SetMaximumWantedLevel(int32 level);
+};
+
+VALIDATE_SIZE(CWanted, 0x204);