2019-06-13 02:35:26 +02:00
|
|
|
#pragma once
|
|
|
|
|
2019-07-31 17:54:18 +02:00
|
|
|
#include "Game.h"
|
2020-02-16 03:15:58 +01:00
|
|
|
#include "PedType.h"
|
2020-02-18 00:56:13 +01:00
|
|
|
#include "CopPed.h"
|
2019-07-31 17:54:18 +02:00
|
|
|
|
2019-07-05 14:23:39 +02:00
|
|
|
class CPed;
|
|
|
|
class CVehicle;
|
2020-02-22 13:53:41 +01:00
|
|
|
class CDummyObject;
|
2019-06-25 00:42:23 +02:00
|
|
|
|
2019-06-28 12:34:02 +02:00
|
|
|
struct PedGroup
|
|
|
|
{
|
2020-02-16 03:15:58 +01:00
|
|
|
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;
|
2019-06-28 12:34:02 +02:00
|
|
|
};
|
|
|
|
|
2019-06-13 02:35:26 +02:00
|
|
|
class CPopulation
|
|
|
|
{
|
|
|
|
public:
|
2020-02-16 03:15:58 +01:00
|
|
|
static PedGroup (&ms_pPedGroups)[NUMPEDGROUPS];
|
2019-06-17 00:16:38 +02:00
|
|
|
static bool &ms_bGivePedsWeapons;
|
2019-07-04 00:16:24 +02:00
|
|
|
static int32 &m_AllRandomPedsThisType;
|
|
|
|
static float &PedDensityMultiplier;
|
2019-07-14 11:49:03 +02:00
|
|
|
static uint32 &ms_nTotalMissionPeds;
|
2019-08-06 23:32:19 +02:00
|
|
|
static int32 &MaxNumberOfPedsInUse;
|
2019-10-18 14:36:40 +02:00
|
|
|
static uint32& ms_nNumCivMale;
|
|
|
|
static uint32 &ms_nNumCivFemale;
|
|
|
|
static uint32 &ms_nNumCop;
|
|
|
|
static bool &bZoneChangeHasHappened;
|
|
|
|
static uint32 &ms_nNumEmergency;
|
2020-02-18 00:56:13 +01:00
|
|
|
static int8& m_CountDownToPedsAtStart;
|
2019-10-18 14:36:40 +02:00
|
|
|
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;
|
2020-02-16 03:15:58 +01:00
|
|
|
static CVector& RegenerationPoint_a;
|
|
|
|
static CVector& RegenerationPoint_b;
|
|
|
|
static CVector& RegenerationForward;
|
2019-06-25 00:42:23 +02:00
|
|
|
|
2019-10-18 14:36:40 +02:00
|
|
|
static void Initialise();
|
2019-10-19 00:23:40 +02:00
|
|
|
static void Update(void);
|
2019-10-18 14:36:40 +02:00
|
|
|
static void LoadPedGroups();
|
2020-02-16 03:15:58 +01:00
|
|
|
static void UpdatePedCount(ePedType, bool);
|
2019-06-28 19:23:28 +02:00
|
|
|
static void DealWithZoneChange(eLevelName oldLevel, eLevelName newLevel, bool);
|
2019-07-05 14:23:39 +02:00
|
|
|
static CPed *AddPedInCar(CVehicle *vehicle);
|
2019-07-17 13:19:20 +02:00
|
|
|
static bool IsPointInSafeZone(CVector *coors);
|
2020-02-16 03:15:58 +01:00
|
|
|
static void RemovePed(CPed *ent);
|
2020-01-03 17:48:13 +01:00
|
|
|
static int32 ChooseCivilianOccupation(int32);
|
2020-02-18 00:56:13 +01:00
|
|
|
static eCopType ChoosePolicePedOccupation();
|
2020-02-16 03:15:58 +01:00
|
|
|
static int32 ChooseGangOccupation(int);
|
|
|
|
static void FindCollisionZoneForCoors(CVector*, int*, eLevelName*);
|
|
|
|
static void FindClosestZoneForCoors(CVector*, int*, eLevelName, eLevelName);
|
2020-02-18 00:56:13 +01:00
|
|
|
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);
|
2020-02-22 13:53:41 +01:00
|
|
|
static void ConvertToRealObject(CDummyObject* obj);
|
2019-06-28 12:34:02 +02:00
|
|
|
};
|