MCPcopy Create free account
hub / github.com/OGSR/OGSR-Engine / Register

Method Register

ogsr_engine/xrCore/LocatorAPI.cpp:173–207  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

171}
172
173void CLocatorAPI::Register(LPCSTR name, size_t vfs, u32 ptr, u32 size_real, u32 size_compressed, u32 time_write, bool folder)
174{
175 string256 temp_file_name;
176 strcpy_s(temp_file_name, name);
177 xr_strlwr(temp_file_name);
178
179 // Register file
180 file desc;
181
182 desc.vfs = vfs;
183 desc.ptr = ptr;
184 desc.size_real = size_real;
185 desc.size_compressed = size_compressed;
186 desc.time_write = time_write & (~u32(0x3));
187 desc.folder = folder;
188
189 // if file already exist - update info
190 if (const files_it I = file_find_it(temp_file_name); I != files.end())
191 {
192 desc.name = I->name;
193
194 // sad but true, performance option
195 // correct way is to erase and then insert new record:
196 const_cast<file&>(*I) = desc;
197 return;
198 }
199
200 desc.name = xr_strdup(temp_file_name);
201
202 // otherwise insert file
203 files.insert(desc);
204
205 // Try to register folder(s)
206 RegisterFolderHierarchy(desc.name);
207}
208
209void CLocatorAPI::RegisterFolderHierarchy(LPCSTR folder_path)
210{

Callers

nothing calls this directly

Calls 5

xr_strdupFunction · 0.85
xr_strlwrFunction · 0.70
u32Enum · 0.50
endMethod · 0.45
insertMethod · 0.45

Tested by

no test coverage detected