summaryrefslogtreecommitdiffstats
path: root/src/peds/Population.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/peds/Population.h')
-rw-r--r--src/peds/Population.h83
1 files changed, 83 insertions, 0 deletions
diff --git a/src/peds/Population.h b/src/peds/Population.h
new file mode 100644
index 00000000..d39fb209
--- /dev/null
+++ b/src/peds/Population.h
@@ -0,0 +1,83 @@
+#pragma once
+
+#include "Game.h"
+#include "PedType.h"
+#include "CopPed.h"
+
+class CPed;
+class CVehicle;
+
+struct PedGroup
+{
+ int32 models[NUMMODELSPERPEDGROUP];
+};
+
+// Don't know the original name
+struct RegenerationPoint
+{
+ eLevelName srcLevel; // this and below one may need to be exchanged
+ eLevelName destLevel;
+ float x1;
+ float x2;
+ float y1;
+ float y2;
+ float z1;
+ float z2;
+ CVector destPosA;
+ CVector destPosB;
+ CVector srcPosA;
+ CVector srcPosB;
+};
+
+class CPopulation
+{
+public:
+ static PedGroup (&ms_pPedGroups)[NUMPEDGROUPS];
+ static bool &ms_bGivePedsWeapons;
+ static int32 &m_AllRandomPedsThisType;
+ static float &PedDensityMultiplier;
+ static uint32 &ms_nTotalMissionPeds;
+ static int32 &MaxNumberOfPedsInUse;
+ static uint32& ms_nNumCivMale;
+ static uint32 &ms_nNumCivFemale;
+ static uint32 &ms_nNumCop;
+ static bool &bZoneChangeHasHappened;
+ static uint32 &ms_nNumEmergency;
+ static int8& m_CountDownToPedsAtStart;
+ static uint32& ms_nNumGang1;
+ static uint32& ms_nNumGang2;
+ static uint32& ms_nTotalPeds;
+ static uint32& ms_nNumGang3;
+ static uint32& ms_nTotalGangPeds;
+ static uint32& ms_nNumGang4;
+ static uint32& ms_nTotalCivPeds;
+ static uint32& ms_nNumGang5;
+ static uint32& ms_nNumDummy;
+ static uint32& ms_nNumGang6;
+ static uint32& ms_nNumGang9;
+ static uint32& ms_nNumGang7;
+ static uint32& ms_nNumGang8;
+ static CVector& RegenerationPoint_a;
+ static CVector& RegenerationPoint_b;
+ static CVector& RegenerationForward;
+
+ static void Initialise();
+ static void Update(void);
+ static void LoadPedGroups();
+ static void UpdatePedCount(ePedType, bool);
+ static void DealWithZoneChange(eLevelName oldLevel, eLevelName newLevel, bool);
+ static CPed *AddPedInCar(CVehicle *vehicle);
+ static bool IsPointInSafeZone(CVector *coors);
+ static void RemovePed(CPed *ent);
+ static int32 ChooseCivilianOccupation(int32);
+ static eCopType ChoosePolicePedOccupation();
+ static int32 ChooseGangOccupation(int);
+ static void FindCollisionZoneForCoors(CVector*, int*, eLevelName*);
+ static void FindClosestZoneForCoors(CVector*, int*, eLevelName, eLevelName);
+ static void GeneratePedsAtStartOfGame();
+ static float PedCreationDistMultiplier();
+ static CPed *AddPed(ePedType pedType, uint32 mi, CVector const &coors);
+ static void AddToPopulation(float, float, float, float);
+ static void ManagePopulation(void);
+ static void MoveCarsAndPedsOutOfAbandonedZones(void);
+};