aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/SFileOpenArchive.cpp15
-rw-r--r--src/StormLib.h2
2 files changed, 12 insertions, 5 deletions
diff --git a/src/SFileOpenArchive.cpp b/src/SFileOpenArchive.cpp
index 47136fe..58f4d01 100644
--- a/src/SFileOpenArchive.cpp
+++ b/src/SFileOpenArchive.cpp
@@ -51,6 +51,7 @@ static MTYPE CheckMapType(LPCTSTR szFileName, LPBYTE pbHeaderBuffer, size_t cbHe
{
LPDWORD HeaderInt32 = (LPDWORD)pbHeaderBuffer;
LPCTSTR szExtension;
+ MTYPE TypeByExtension = MapTypeNotRecognized;
// Don't do any checks if there is not at least 16 bytes
if(cbHeaderBuffer > 0x10)
@@ -65,16 +66,22 @@ static MTYPE CheckMapType(LPCTSTR szFileName, LPBYTE pbHeaderBuffer, size_t cbHe
// fake Warcraft III header into the Starcraft II maps
if((szExtension = _tcsrchr(szFileName, _T('.'))) != NULL)
{
+ // Check for Starcraft I maps by extension
+ if(!_tcsicmp(szExtension, _T(".scm")) || !_tcsicmp(szExtension, _T(".scx")))
+ {
+ return MapTypeStarcraft;
+ }
+
// Check for Starcraft II maps by extension
if(!_tcsicmp(szExtension, _T(".s2ma")) || !_tcsicmp(szExtension, _T(".SC2Map")) || !_tcsicmp(szExtension, _T(".SC2Mod")))
{
return MapTypeStarcraft2;
}
- // Check for Starcraft I maps by extension
- if(!_tcsicmp(szExtension, _T(".scm")) || !_tcsicmp(szExtension, _T(".scx")))
+ // Check for Warcraft III maps by extension
+ if(!_tcsicmp(szExtension, _T(".w3m")) || !_tcsicmp(szExtension, _T(".w3x")))
{
- return MapTypeStarcraft;
+ TypeByExtension = MapTypeWarcraft3;
}
}
@@ -112,7 +119,7 @@ static MTYPE CheckMapType(LPCTSTR szFileName, LPBYTE pbHeaderBuffer, size_t cbHe
}
// No special map type recognized
- return MapTypeNotRecognized;
+ return TypeByExtension;
}
static bool IsStarcraftBetaArchive(TMPQHeader * pHeader)
diff --git a/src/StormLib.h b/src/StormLib.h
index 1f3dee7..5e262db 100644
--- a/src/StormLib.h
+++ b/src/StormLib.h
@@ -1,5 +1,5 @@
/*****************************************************************************/
-/* StormLib.h Copyright (c) Ladislav Zezula 1999-2017 */
+/* StormLib.h Copyright (c) Ladislav Zezula 1999-2025 */
/*---------------------------------------------------------------------------*/
/* StormLib library v 9.30 */
/* */