Re3/src/peds/Population.h

90 lines
2.6 KiB
C
Raw Normal View History

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