aboutsummaryrefslogtreecommitdiff
path: root/src/SFileCreateArchive.cpp
diff options
context:
space:
mode:
authorLadislav Zezula <ladislav.zezula@avast.com>2023-02-07 07:31:47 +0100
committerLadislav Zezula <ladislav.zezula@avast.com>2023-02-07 07:31:47 +0100
commit01e940f998e64ceb60d39a30d0e40c33be430744 (patch)
tree6cebd387986b6870d03161d1bc25d9c1c382651d /src/SFileCreateArchive.cpp
parent0d31856af86ac47801ade118ea93092eab62a101 (diff)
Fixed regression for W3 maps
Diffstat (limited to 'src/SFileCreateArchive.cpp')
-rw-r--r--src/SFileCreateArchive.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/SFileCreateArchive.cpp b/src/SFileCreateArchive.cpp
index 4266070..c0ea367 100644
--- a/src/SFileCreateArchive.cpp
+++ b/src/SFileCreateArchive.cpp
@@ -27,6 +27,13 @@ static const DWORD MpqHeaderSizes[] =
//-----------------------------------------------------------------------------
// Local functions
+static DWORD GetValidFileFlags(DWORD dwMpqVersion)
+{
+ if(dwMpqVersion > MPQ_FORMAT_VERSION_1)
+ return MPQ_FILE_VALID_FLAGS;
+ return MPQ_FILE_VALID_FLAGS_W3X;
+}
+
static USHORT GetSectorSizeShift(DWORD dwSectorSize)
{
USHORT wSectorSizeShift = 0;
@@ -211,7 +218,7 @@ bool WINAPI SFileCreateArchive2(const TCHAR * szMpqName, PSFILE_CREATE_MPQ pCrea
ha->dwMaxFileCount = dwHashTableSize;
ha->dwFileTableSize = 0;
ha->dwReservedFiles = dwReservedFiles;
- ha->dwValidFileFlags = (pCreateInfo->dwMpqVersion > 1) ? MPQ_FILE_VALID_FLAGS : MPQ_FILE_VALID_FLAGS_W3X;
+ ha->dwValidFileFlags = GetValidFileFlags(pCreateInfo->dwMpqVersion);
ha->dwFileFlags1 = pCreateInfo->dwFileFlags1;
ha->dwFileFlags2 = pCreateInfo->dwFileFlags2;
ha->dwFileFlags3 = pCreateInfo->dwFileFlags3 ? MPQ_FILE_EXISTS : 0;