summaryrefslogtreecommitdiff
path: root/src/core/Pools.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/Pools.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/Pools.h')
-rw-r--r--src/core/Pools.h64
1 files changed, 64 insertions, 0 deletions
diff --git a/src/core/Pools.h b/src/core/Pools.h
new file mode 100644
index 0000000..afef1b8
--- /dev/null
+++ b/src/core/Pools.h
@@ -0,0 +1,64 @@
+#pragma once
+
+#include "templates.h"
+#include "Lists.h"
+#include "Treadable.h"
+#include "Object.h"
+#include "CutsceneObject.h"
+#include "PlayerPed.h"
+#include "Automobile.h"
+#include "DummyPed.h"
+#include "AudioScriptObject.h"
+
+typedef CPool<CPtrNode> CCPtrNodePool;
+typedef CPool<CEntryInfoNode> CEntryInfoNodePool;
+typedef CPool<CPed,CPlayerPed> CPedPool;
+typedef CPool<CVehicle,CAutomobile> CVehiclePool;
+typedef CPool<CBuilding> CBuildingPool;
+typedef CPool<CTreadable> CTreadablePool;
+typedef CPool<CObject, CCutsceneObject> CObjectPool;
+typedef CPool<CDummy, CDummyPed> CDummyPool;
+typedef CPool<cAudioScriptObject> CAudioScriptObjectPool;
+typedef CPool<CColModel> CColModelPool;
+
+class CPools
+{
+ 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;
+ static CColModelPool *ms_pColModelPool;
+public:
+ static CCPtrNodePool *GetPtrNodePool(void) { return ms_pPtrNodePool; }
+ static CEntryInfoNodePool *GetEntryInfoNodePool(void) { return ms_pEntryInfoNodePool; }
+ static CPedPool *GetPedPool(void) { return ms_pPedPool; }
+ static CVehiclePool *GetVehiclePool(void) { return ms_pVehiclePool; }
+ static CBuildingPool *GetBuildingPool(void) { return ms_pBuildingPool; }
+ static CTreadablePool *GetTreadablePool(void) { return ms_pTreadablePool; }
+ static CObjectPool *GetObjectPool(void) { return ms_pObjectPool; }
+ static CDummyPool *GetDummyPool(void) { return ms_pDummyPool; }
+ static CAudioScriptObjectPool *GetAudioScriptObjectPool(void) { return ms_pAudioScriptObjectPool; }
+ static CColModelPool *GetColModelPool(void) { return ms_pColModelPool; }
+
+ static void Initialise(void);
+ static void ShutDown(void);
+ 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);
+ 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);
+};