Files
GTASource/game/streaming/ScriptPreload.h
expvintl 419f2e4752 init
2025-02-23 17:40:52 +08:00

60 lines
1.6 KiB
C++

// Title : ScriptPreload.h
// Author : Flavius Alecu
// Started : 07/01/2013
// Exposes preloading of assets for peds and vehicles to script
#ifndef _SCRIPTPRELOAD_H_
#define _SCRIPTPRELOAD_H_
#include "fwscript/scripthandler.h"
#include "streaming/streamingrequest.h"
struct sReqData
{
strRequest req;
strLocalIndex idx;
};
class CScriptPreloadData
{
public:
CScriptPreloadData(u32 numDwds, u32 numTxds, u32 numClds, u32 numFrags, u32 numDrawables, bool scriptMem);
~CScriptPreloadData();
bool IsDwdPreloaded(strLocalIndex index) const;
bool IsTxdPreloaded(strLocalIndex index) const;
bool IsCldPreloaded(strLocalIndex index) const;
bool IsFragPreloaded(strLocalIndex index) const;
bool IsDrawablePreloaded(strLocalIndex index) const;
bool HasPreloadFinished();
bool HasPreloadFinished(u32 handle);
void CleanUp();
bool AddDwd(strLocalIndex dwd, s32 parentTxd, s32& slot, u32 streamingFlags = 0);
bool AddTxd(strLocalIndex txd, s32& slot, u32 streamingFlags = 0);
bool AddCld(strLocalIndex cld, s32& slot, u32 streamingFlags = 0);
bool AddFrag(strLocalIndex frag, s32 parentTxd, s32& slot, u32 streamingFlags = 0);
bool AddDrawable(strLocalIndex drawable, s32 parentTxd, s32& slot, u32 streamingFlags = 0);
u32 GetHandle(s32 dwd, s32 txd, s32 cld);
void ReleaseHandle(u32 handle);
private:
s32 GetSlotForAsset(strLocalIndex assetIdx, atArray<sReqData>& reqs);
void ReleaseResource(ScriptResourceType type, atArray<sReqData>& reqs);
atArray<sReqData> m_reqDwds;
atArray<sReqData> m_reqTxds;
atArray<sReqData> m_reqClds;
atArray<sReqData> m_reqFrags;
atArray<sReqData> m_reqDrawables;
bool m_scriptMem;
};
#endif // _SCRIPTPRELOAD_H_