aboutsummaryrefslogtreecommitdiff
path: root/src/SFileCreateArchive.cpp
diff options
context:
space:
mode:
authorLadislav Zezula <zezula@volny.cz>2021-12-18 07:24:46 +0100
committerGitHub <noreply@github.com>2021-12-18 07:24:46 +0100
commite29888e48a41879dba68e690a675324097802270 (patch)
treeac0102cb6c3b58e8eb4fe8d9132a2355b3394855 /src/SFileCreateArchive.cpp
parent5ced3835f9d52584bc20fb6a3a0e58069374e9af (diff)
parente7af34bcfb5cba3c1ff6ac1b2ebd8c4ba47f1df4 (diff)
Merge pull request #232 from ladislav-zezula/LZ_CannotExtractCHK
Update for protected Starcraft I maps
Diffstat (limited to 'src/SFileCreateArchive.cpp')
-rw-r--r--src/SFileCreateArchive.cpp29
1 files changed, 15 insertions, 14 deletions
diff --git a/src/SFileCreateArchive.cpp b/src/SFileCreateArchive.cpp
index 742b829..4266070 100644
--- a/src/SFileCreateArchive.cpp
+++ b/src/SFileCreateArchive.cpp
@@ -202,20 +202,21 @@ bool WINAPI SFileCreateArchive2(const TCHAR * szMpqName, PSFILE_CREATE_MPQ pCrea
if(dwErrCode == ERROR_SUCCESS)
{
memset(ha, 0, sizeof(TMPQArchive));
- ha->pfnHashString = HashStringSlash;
- ha->pStream = pStream;
- ha->dwSectorSize = pCreateInfo->dwSectorSize;
- ha->UserDataPos = MpqPos;
- ha->MpqPos = MpqPos;
- ha->pHeader = pHeader = (TMPQHeader *)ha->HeaderData;
- ha->dwMaxFileCount = dwHashTableSize;
- ha->dwFileTableSize = 0;
- ha->dwReservedFiles = dwReservedFiles;
- ha->dwFileFlags1 = pCreateInfo->dwFileFlags1;
- ha->dwFileFlags2 = pCreateInfo->dwFileFlags2;
- ha->dwFileFlags3 = pCreateInfo->dwFileFlags3 ? MPQ_FILE_EXISTS : 0;
- ha->dwAttrFlags = pCreateInfo->dwAttrFlags;
- ha->dwFlags = dwMpqFlags | MPQ_FLAG_CHANGED;
+ ha->pfnHashString = HashStringSlash;
+ ha->pStream = pStream;
+ ha->dwSectorSize = pCreateInfo->dwSectorSize;
+ ha->UserDataPos = MpqPos;
+ ha->MpqPos = MpqPos;
+ ha->pHeader = pHeader = (TMPQHeader *)ha->HeaderData;
+ ha->dwMaxFileCount = dwHashTableSize;
+ ha->dwFileTableSize = 0;
+ ha->dwReservedFiles = dwReservedFiles;
+ ha->dwValidFileFlags = (pCreateInfo->dwMpqVersion > 1) ? MPQ_FILE_VALID_FLAGS : MPQ_FILE_VALID_FLAGS_W3X;
+ ha->dwFileFlags1 = pCreateInfo->dwFileFlags1;
+ ha->dwFileFlags2 = pCreateInfo->dwFileFlags2;
+ ha->dwFileFlags3 = pCreateInfo->dwFileFlags3 ? MPQ_FILE_EXISTS : 0;
+ ha->dwAttrFlags = pCreateInfo->dwAttrFlags;
+ ha->dwFlags = dwMpqFlags | MPQ_FLAG_CHANGED;
pStream = NULL;
// Fill the MPQ header