Files
prime/include/MetroidPrime/CDecalManager.hpp

34 lines
899 B
C++

#ifndef _CDECALMANAGER
#define _CDECALMANAGER
#include "TGameTypes.hpp"
#include "Weapons/CDecal.hpp"
#include "rstl/optional_object.hpp"
#include "rstl/reserved_vector.hpp"
class CDecalManager {
public:
struct SDecal {
SDecal(const rstl::optional_object< CDecal >& decal, const TAreaId id, const char w, const char z)
: mDecal(decal), aid(id), unk(w), unk1(z) {}
rstl::optional_object< CDecal > mDecal;
TAreaId aid;
char unk;
char unk1 : 1;
};
static void Initialize();
static void ShutDown();
static void Reinitialize();
static bool mbPoolInitialized;
static rstl::reserved_vector< SDecal, 64 > mDecalPool;
static rstl::reserved_vector< int, 64 > mActiveIndexList;
static int mFreeIndex;
static float mDeltaTimeSinceLastDecalCreation;
static int mLastDecalCreatedIndex;
static CAssetId mLastDecalCreatedAssetId;
};
#endif // _CDECALMANAGER