19 #ifndef INC_C4GroupSet
20 #define INC_C4GroupSet
23 #define C4GSPrio_Base 0
24 #define C4GSPrio_Pack 1
25 #define C4GSPrio_ExtraRoot 2
26 #define C4GSPrio_Extra 3
27 #define C4GSPrio_Definition 4
28 #define C4GSPrio_Definition2 99
29 #define C4GSPrio_Folder 100
30 #define C4GSPrio_Folder2 199
31 #define C4GSPrio_Scenario 200
34 #define C4GSCnt_Graphics 1
35 #define C4GSCnt_Loaders 2
36 #define C4GSCnt_Material 4
37 #define C4GSCnt_Music 8
38 #define C4GSCnt_Definitions 16
39 #define C4GSCnt_FontDefs 32
40 #define C4GSCnt_Language 64
41 #define C4GSCnt_Component 128
43 #define C4GSCnt_Folder (C4GSCnt_Graphics | C4GSCnt_Loaders | C4GSCnt_Material | C4GSCnt_Music | C4GSCnt_FontDefs)
44 #define C4GSCnt_OriginFolder (C4GSCnt_Graphics | C4GSCnt_Loaders | C4GSCnt_Material | C4GSCnt_Music | C4GSCnt_FontDefs)
45 #define C4GSCnt_Directory (C4GSCnt_Loaders | C4GSCnt_Music)
46 #define C4GSCnt_Scenario C4GSCnt_Folder
47 #define C4GSCnt_Root (C4GSCnt_Graphics | C4GSCnt_Material)
48 #define C4GSCnt_Extra (C4GSCnt_Graphics | C4GSCnt_Loaders | C4GSCnt_Material | C4GSCnt_Music | C4GSCnt_FontDefs)
49 #define C4GSCnt_ExtraRoot (C4GSCnt_Graphics | C4GSCnt_Loaders | C4GSCnt_Material | C4GSCnt_Music | C4GSCnt_FontDefs)
51 #define C4GSCnt_All ~0
91 bool RegisterGroup(
C4Group &rGroup,
bool fOwnGrp, int32_t Priority, int32_t Contents,
bool fCheckContent=
true);
92 bool RegisterGroups(
const C4GroupSet &rCopy, int32_t Contents,
const char *szFilename=
nullptr, int32_t iMaxSkipID=0);
94 C4Group *
FindEntry(
const char *szWildcard, int32_t *pPriority=
nullptr, int32_t *pID=
nullptr);
95 C4Group *
FindSuitableFile(
const char *szName,
const char *
const extensions[],
char *szFileName, int32_t *pID=
nullptr);
98 bool LoadEntry(
const char *szEntryName,
char **lpbpBuf,
size_t *ipSize=
nullptr, int32_t iAppendZeros=0);
bool LoadEntryString(const StdStrBuf &name, StdStrBuf *Buf)
bool UnregisterGroup(int32_t iIndex)
bool RegisterGroup(C4Group &rGroup, bool fOwnGrp, int32_t Priority, int32_t Contents, bool fCheckContent=true)
bool LoadEntryString(const char *szEntryName, StdStrBuf *rBuf)
C4Group * GetGroup(int32_t iIndex)
C4Group * RegisterParentFolders(const char *szScenFilename)
static int32_t CheckGroupContents(C4Group &rGroup, int32_t Contents)
bool LoadEntry(const char *szEntryName, char **lpbpBuf, size_t *ipSize=nullptr, int32_t iAppendZeros=0)
int32_t PreCacheEntries(const char *szEntryMask)
C4Group * FindGroup(int32_t Contents, C4Group *pAfter=nullptr, bool fSamePrio=false)
C4Group * FindSuitableFile(const char *szName, const char *const extensions[], char *szFileName, int32_t *pID=nullptr)
C4Group * FindEntry(const char *szWildcard, int32_t *pPriority=nullptr, int32_t *pID=nullptr)
bool RegisterGroups(const C4GroupSet &rCopy, int32_t Contents, const char *szFilename=nullptr, int32_t iMaxSkipID=0)
C4GroupSetNode(class C4GroupSet &rParent, C4GroupSetNode *pPrev, C4Group &rGroup, bool fGrpOwned, int32_t id)
class C4GroupSet * pParent
const char * getData() const