61 char entryname[256 + 1];
69 if (ninf->
Load(hGroup,entryname))
112 char number_suffix[13];
113 size_t namelen =
SLen(sName);
114 for (int32_t identifier = 2;
NameExists(sName); identifier++)
116 sprintf(number_suffix,
" %d", identifier);
124 for (cinf =
First; cinf; cinf = cinf->
Next)
141 for (pInfo =
First; pInfo; pInfo = pInfo->
Next)
144 if ((pDef = rDefs.
ID2Def(pInfo->
id)))
147 if ( (!c_id && !pDef->
NativeCrew) || (pInfo->
id == c_id) )
187 C4Def *pDef =
nullptr;
188 if (pDefs && !(pDef = pDefs->
ID2Def(n_id)))
214 for (cinf =
First; cinf; cinf = cinf->
Next)
236 if (!pInfo->
Save(hGroup, fStoreTiny, pDefs))
248 for (pInfo =
First; pInfo; pInfo = pInfo->
Next)
265 for (cinf =
First; cinf; cinf = cinf->
Next)
274 while (cInfo && cInfo->
Next)
285 if (cInfo->Next == pInfo)
310 for (pInfo =
First, pPrev =
nullptr; pInfo; )
#define C4CFN_ObjectInfoFiles
C4Def * C4Id2Def(C4ID id)
void SCopy(const char *szSource, char *sTarget, size_t iMaxL)
bool SEqualNoCase(const char *szStr1, const char *szStr2, int iLen)
size_t SLen(const char *sptr)
const char * GetData() const
C4ComponentHost * pClonkNames
bool FindNextEntry(const char *wildcard, StdStrBuf *filename=nullptr, size_t *size=nullptr, bool start_at_filename=false)
bool OpenAsChild(C4Group *mother, const char *entry_name, bool is_exclusive=false, bool do_create=false)
void ResetSearch(bool reload_contents=false)
bool Load(C4Group &hGroup)
bool Save(C4Group &hGroup, bool fStoreTiny, C4DefList *pDefs)
void MakeValidName(char *sName)
bool Add(C4ObjectInfo *pInfo)
bool Save(C4Group &hGroup, bool fSavegame, bool fStoreTiny, C4DefList *pDefs)
bool IsElement(C4ObjectInfo *pInfo)
C4ObjectInfo * New(C4ID n_id, C4DefList *pDefs)
C4ObjectInfo * GetPrevious(C4ObjectInfo *pInfo)
bool NameExists(const char *szName)
void Strip(C4DefList &rDefs)
C4ObjectInfo * GetIdle(C4ID c_id, C4DefList &rDefs)
int32_t Load(C4Group &hGroup)
void ClearInfo(C4ObjectInfo *info)