diff options
author | unknown <E:\Ladik\Mail> | 2015-04-18 23:12:47 +0200 |
---|---|---|
committer | unknown <E:\Ladik\Mail> | 2015-04-18 23:12:47 +0200 |
commit | 68e2c2527db10dcfdd9fdc2219c7fe9784abf738 (patch) | |
tree | ad00acb4ce162d3a780eabdc67ebcc804591b471 /src/SFileGetFileInfo.cpp | |
parent | d47864c13d4d5015445343f652ef3d3b3b73cb25 (diff) |
+ SFileGetFileInfo(SFileMpqHashTable) now returns updated hash table instead of raw table loaded from the file
Diffstat (limited to 'src/SFileGetFileInfo.cpp')
-rw-r--r-- | src/SFileGetFileInfo.cpp | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/src/SFileGetFileInfo.cpp b/src/SFileGetFileInfo.cpp index 753d2fd..d6d6da3 100644 --- a/src/SFileGetFileInfo.cpp +++ b/src/SFileGetFileInfo.cpp @@ -373,16 +373,11 @@ bool WINAPI SFileGetFileInfo( case SFileMpqHashTable: ha = IsValidMpqHandle(hMpqOrFile); - if(ha != NULL) + if(ha != NULL && ha->pHashTable != NULL) { - nInfoType = SFILE_INFO_TYPE_NOT_FOUND; - if(MAKE_OFFSET64(ha->pHeader->wHashTablePosHi, ha->pHeader->dwHashTablePos) != 0) - { - cbSrcFileInfo = ha->pHeader->dwHashTableSize * sizeof(TMPQHash); - if(cbFileInfo >= cbSrcFileInfo) - pvSrcFileInfo = LoadHashTable(ha); - nInfoType = SFILE_INFO_TYPE_ALLOCATED; - } + pvSrcFileInfo = ha->pHashTable; + cbSrcFileInfo = ha->pHeader->dwHashTableSize * sizeof(TMPQHash); + nInfoType = SFILE_INFO_TYPE_DIRECT_POINTER; } break; |