MCPcopy Create free account
hub / github.com/diasurgical/devilution / LoadMpkTable

Function LoadMpkTable

3rdParty/StormLib/src/SBaseSubTypes.cpp:481–506  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

479}
480
481void * LoadMpkTable(TMPQArchive * ha, DWORD dwByteOffset, DWORD cbTableSize)
482{
483 ULONGLONG ByteOffset;
484 LPBYTE pbMpkTable = NULL;
485
486 // Allocate space for the table
487 pbMpkTable = STORM_ALLOC(BYTE, cbTableSize);
488 if(pbMpkTable != NULL)
489 {
490 // Load and the MPK hash table
491 ByteOffset = ha->MpqPos + dwByteOffset;
492 if(FileStream_Read(ha->pStream, &ByteOffset, pbMpkTable, cbTableSize))
493 {
494 // Decrypt the table
495 DecryptMpkTable(pbMpkTable, cbTableSize);
496 return pbMpkTable;
497 }
498
499 // Free the MPK table
500 STORM_FREE(pbMpkTable);
501 pbMpkTable = NULL;
502 }
503
504 // Return the table
505 return pbMpkTable;
506}
507
508TMPQHash * LoadMpkHashTable(TMPQArchive * ha)
509{

Callers 2

LoadMpkHashTableFunction · 0.85
LoadMpkBlockTableFunction · 0.85

Calls 2

FileStream_ReadFunction · 0.85
DecryptMpkTableFunction · 0.85

Tested by

no test coverage detected