diff options
author | Sergeanur <s.anureev@yandex.ua> | 2020-05-05 17:14:31 +0200 |
---|---|---|
committer | Sergeanur <s.anureev@yandex.ua> | 2020-05-05 17:14:31 +0200 |
commit | 7afa4f83164c91fc6491e1cd7c43e3e275694746 (patch) | |
tree | 99f4d7dec983e7ad6f4071cc259c8c0de2eda2e2 /src/core/ColStore.h | |
parent | Merge branch 'master' into miami (diff) | |
download | re3-7afa4f83164c91fc6491e1cd7c43e3e275694746.tar re3-7afa4f83164c91fc6491e1cd7c43e3e275694746.tar.gz re3-7afa4f83164c91fc6491e1cd7c43e3e275694746.tar.bz2 re3-7afa4f83164c91fc6491e1cd7c43e3e275694746.tar.lz re3-7afa4f83164c91fc6491e1cd7c43e3e275694746.tar.xz re3-7afa4f83164c91fc6491e1cd7c43e3e275694746.tar.zst re3-7afa4f83164c91fc6491e1cd7c43e3e275694746.zip |
Diffstat (limited to 'src/core/ColStore.h')
-rw-r--r-- | src/core/ColStore.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/core/ColStore.h b/src/core/ColStore.h new file mode 100644 index 00000000..0d686ffd --- /dev/null +++ b/src/core/ColStore.h @@ -0,0 +1,43 @@ +#pragma once + +#include "templates.h" + +struct ColDef { // made up name + int32 a; + bool isLoaded; + CRect bounds; + char name[20]; + int16 minIndex; + int16 maxIndex; +}; + +class CColStore +{ + static CPool<ColDef,ColDef> *ms_pColPool; + +public: + static void Initialise(void); + static void Shutdown(void); + static int AddColSlot(const char *name); + static void RemoveColSlot(int32 slot); + static int FindColSlot(const char *name); + static char *GetColName(int32 slot); + static CRect &GetBoundingBox(int32 slot); + static void IncludeModelIndex(int32 slot, int32 modelIndex); + static bool LoadCol(int32 storeID, uint8 *buffer, int32 bufsize); + static void RemoveCol(int32 slot); + static void AddCollisionNeededAtPosn(const CVector2D &pos); + static void LoadAllCollision(void); + static void RemoveAllCollision(void); + static void LoadCollision(const CVector2D &pos); + static void RequestCollision(const CVector2D &pos); + static void EnsureCollisionIsInMemory(const CVector2D &pos); + static bool HasCollisionLoaded(const CVector2D &pos); + + static ColDef *GetSlot(int slot) { + assert(slot >= 0); + assert(ms_pColPool); + assert(slot < ms_pColPool->GetSize()); + return ms_pColPool->GetSlot(slot); + } +}; |