* 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. */
| 358 | * @return A pointer to the newly created FileInfo. |
| 359 | */ |
| 360 | static 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. |
no test coverage detected