re3-wiiu/src/core/Pools.h

62 lines
2.4 KiB
C
Raw Normal View History

2019-05-15 16:52:37 +02:00
#pragma once
#include "templates.h"
#include "Lists.h"
#include "Treadable.h"
#include "Object.h"
#include "CutsceneHead.h"
2019-06-02 17:13:56 +02:00
#include "PlayerPed.h"
#include "Automobile.h"
#include "DummyPed.h"
#include "AudioScriptObject.h"
2019-05-15 16:52:37 +02:00
typedef CPool<CPtrNode> CCPtrNodePool;
typedef CPool<CEntryInfoNode> CEntryInfoNodePool;
2019-06-02 17:13:56 +02:00
typedef CPool<CPed,CPlayerPed> CPedPool;
typedef CPool<CVehicle,CAutomobile> CVehiclePool;
2019-05-15 16:52:37 +02:00
typedef CPool<CBuilding> CBuildingPool;
typedef CPool<CTreadable> CTreadablePool;
typedef CPool<CObject, CCutsceneHead> CObjectPool;
2019-06-02 17:13:56 +02:00
typedef CPool<CDummy, CDummyPed> CDummyPool;
typedef CPool<cAudioScriptObject> CAudioScriptObjectPool;
2019-05-15 16:52:37 +02:00
class CPools
{
2020-04-17 07:54:14 +02:00
static CCPtrNodePool *ms_pPtrNodePool;
static CEntryInfoNodePool *ms_pEntryInfoNodePool;
static CPedPool *ms_pPedPool;
static CVehiclePool *ms_pVehiclePool;
static CBuildingPool *ms_pBuildingPool;
static CTreadablePool *ms_pTreadablePool;
static CObjectPool *ms_pObjectPool;
static CDummyPool *ms_pDummyPool;
static CAudioScriptObjectPool *ms_pAudioScriptObjectPool;
2019-05-15 16:52:37 +02:00
public:
static CCPtrNodePool *GetPtrNodePool(void) { return ms_pPtrNodePool; }
static CEntryInfoNodePool *GetEntryInfoNodePool(void) { return ms_pEntryInfoNodePool; }
2019-06-02 17:13:56 +02:00
static CPedPool *GetPedPool(void) { return ms_pPedPool; }
static CVehiclePool *GetVehiclePool(void) { return ms_pVehiclePool; }
2019-05-15 16:52:37 +02:00
static CBuildingPool *GetBuildingPool(void) { return ms_pBuildingPool; }
static CTreadablePool *GetTreadablePool(void) { return ms_pTreadablePool; }
static CObjectPool *GetObjectPool(void) { return ms_pObjectPool; }
2019-06-02 17:13:56 +02:00
static CDummyPool *GetDummyPool(void) { return ms_pDummyPool; }
static CAudioScriptObjectPool *GetAudioScriptObjectPool(void) { return ms_pAudioScriptObjectPool; }
2019-05-15 16:52:37 +02:00
static void Initialise(void);
static void ShutDown(void);
2019-07-12 18:01:22 +02:00
static int32 GetPedRef(CPed *ped);
static CPed *GetPed(int32 handle);
static int32 GetVehicleRef(CVehicle *vehicle);
static CVehicle *GetVehicle(int32 handle);
static int32 GetObjectRef(CObject *object);
static CObject *GetObject(int32 handle);
static void CheckPoolsEmpty();
static void MakeSureSlotInObjectPoolIsEmpty(int32 slot);
2020-03-11 04:25:50 +01:00
static void LoadObjectPool(uint8 *buf, uint32 size);
static void LoadPedPool(uint8 *buf, uint32 size);
static void LoadVehiclePool(uint8 *buf, uint32 size);
static void SaveObjectPool(uint8 *buf, uint32 *size);
static void SavePedPool(uint8 *buf, uint32 *size);
static void SaveVehiclePool(uint8 *buf, uint32 *size);
2019-05-15 16:52:37 +02:00
};