| 479 | } |
| 480 | |
| 481 | void * 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 | |
| 508 | TMPQHash * LoadMpkHashTable(TMPQArchive * ha) |
| 509 | { |
no test coverage detected