aboutsummaryrefslogtreecommitdiff
path: root/src/SFileOpenArchive.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/SFileOpenArchive.cpp')
-rw-r--r--src/SFileOpenArchive.cpp19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/SFileOpenArchive.cpp b/src/SFileOpenArchive.cpp
index 16e2491..f19a6e7 100644
--- a/src/SFileOpenArchive.cpp
+++ b/src/SFileOpenArchive.cpp
@@ -463,16 +463,19 @@ bool WINAPI SFileOpenArchive(
if(IsStarcraftBetaArchive(ha->pHeader))
ha->dwFlags |= MPQ_FLAG_STARCRAFT_BETA;
- // Remember whether whis is a map for Warcraft III
- if(MapType == MapTypeWarcraft3)
+ // Maps from StarCraft and Warcraft III need special treatment
+ switch(MapType)
{
- ha->dwValidFileFlags = MPQ_FILE_VALID_FLAGS_W3X;
- ha->dwFlags |= MPQ_FLAG_WAR3_MAP;
- }
+ case MapTypeStarcraft:
+ ha->dwValidFileFlags = MPQ_FILE_VALID_FLAGS_SCX;
+ ha->dwFlags |= MPQ_FLAG_STARCRAFT;
+ break;
- // If this is starcraft map, set the flag mask
- if(MapType == MapTypeStarcraft)
- ha->dwValidFileFlags = MPQ_FILE_VALID_FLAGS_SCX;
+ case MapTypeWarcraft3:
+ ha->dwValidFileFlags = MPQ_FILE_VALID_FLAGS_W3X;
+ ha->dwFlags |= MPQ_FLAG_WAR3_MAP;
+ break;
+ }
// Set the size of file sector
ha->dwSectorSize = (0x200 << ha->pHeader->wSectorSize);