MCPcopy Create free account
hub / github.com/OpenDUNE/OpenDUNE / _File_Init_AddFileInPak

Function _File_Init_AddFileInPak

src/file.c:360–380  ·  view source on GitHub ↗

* Memorize a file inside a PAK file. * * @param filename the filename as indicated in PAK header. * @param filesize the size as calculated from PAK header. * @param position the position of the file from the start of the PAK file. * @param pakInfo FileInfo pointer for the PAK file. * @return A pointer to the newly created FileInfo. */

Source from the content-addressed store, hash-verified

358 * @return A pointer to the newly created FileInfo.
359 */
360static FileInfo *_File_Init_AddFileInPak(const char *filename, uint32 filesize, uint32 position, FileInfo *pakInfo)
361{
362 PakFileInfoLinkedElem *new;
363 size_t size;
364 size = sizeof(PakFileInfoLinkedElem) + strlen(filename);
365 new = malloc(size);
366 if (new == NULL) {
367 Error("cannot allocate %u bytes of memory\n", size);
368 return NULL;
369 }
370 new->next = s_files_in_pak;
371 new->pak = pakInfo;
372 memset(&new->info, 0, sizeof(FileInfo));
373 memcpy(new->filenamebuffer, filename, strlen(filename) + 1);
374 new->info.filename = new->filenamebuffer;
375 new->info.fileSize = filesize;
376 new->info.filePosition = position;
377 new->info.flags.inPAKFile = true;
378 s_files_in_pak = new;
379 return &new->info;
380}
381
382/**
383 * Process (parse) a PAK file.

Callers 1

_File_Init_ProcessPakFunction · 0.85

Calls 1

ErrorFunction · 0.50

Tested by

no test coverage detected