aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLadislav Zezula <ladislav.zezula@avast.com>2022-05-15 20:13:36 +0200
committerLadislav Zezula <ladislav.zezula@avast.com>2022-05-15 20:13:36 +0200
commit07f9be39a62b93fa3af07c2fc02dcd25edd2c00b (patch)
tree5f6f348381c516aa3e307a41d24086da5b243acc
parent4321c59d8431eaf72d7b36c047859b72bca02318 (diff)
Code refined
-rw-r--r--src/SFileOpenArchive.cpp31
-rw-r--r--src/StormCommon.h1
-rw-r--r--src/adpcm/adpcm.cpp4
-rw-r--r--test/StormTest.cpp5
-rw-r--r--test/stormlib-test.txt175
5 files changed, 118 insertions, 98 deletions
diff --git a/src/SFileOpenArchive.cpp b/src/SFileOpenArchive.cpp
index 8c3cc13..b85f24c 100644
--- a/src/SFileOpenArchive.cpp
+++ b/src/SFileOpenArchive.cpp
@@ -22,7 +22,7 @@
//-----------------------------------------------------------------------------
// Local functions
-static MTYPE CheckMapType(ULONGLONG FileSize, LPCTSTR szFileName, LPBYTE pbHeaderBuffer, size_t cbHeaderBuffer)
+static MTYPE CheckMapType(LPCTSTR szFileName, LPBYTE pbHeaderBuffer, size_t cbHeaderBuffer)
{
LPDWORD HeaderInt32 = (LPDWORD)pbHeaderBuffer;
LPCTSTR szExtension;
@@ -35,15 +35,6 @@ static MTYPE CheckMapType(ULONGLONG FileSize, LPCTSTR szFileName, LPBYTE pbHeade
DWORD DwordValue2 = BSWAP_INT32_UNSIGNED(HeaderInt32[2]);
DWORD DwordValue3 = BSWAP_INT32_UNSIGNED(HeaderInt32[3]);
- // Check possible MPQs from Starcraft I BETA. We recognize them by checking the file size.
- // 167 859: patch_rt.mpq (doesn't contain any WAVE files)
- // 55 674 173: StarDat.mpq
- // 183 519 584: Install.exe
- if(FileSize == 55674173 && DwordValue1 == MPQ_HEADER_SIZE_V1 && DwordValue3 == 0x00030000)
- return MapTypeStarcraftBeta;
- if(FileSize == 183519584 && DwordValue0 == 0x00905a4D && DwordValue1 == 3 && DwordValue2 == 4)
- return MapTypeStarcraftBeta;
-
// Check maps by extension (Starcraft, Starcraft II). We must do this before
// checking actual data, because the "NP_Protect" protector places
// fake Warcraft III header into the Starcraft II maps
@@ -84,6 +75,20 @@ static MTYPE CheckMapType(ULONGLONG FileSize, LPCTSTR szFileName, LPBYTE pbHeade
return MapTypeNotRecognized;
}
+static bool IsStarcraftBetaArchive(TMPQHeader * pHeader)
+{
+ // The archive must be version 1, with a standard header size
+ if(pHeader->dwID == ID_MPQ && pHeader->dwHeaderSize == MPQ_HEADER_SIZE_V1)
+ {
+ // Check for known archive sizes
+ return (pHeader->dwArchiveSize == 0x00028FB3 || // patch_rt.mpq
+ pHeader->dwArchiveSize == 0x0351853D || // StarDat.mpq
+ pHeader->dwArchiveSize == 0x0AEC8960); // INSTALL.exe
+
+ }
+ return false;
+}
+
static TMPQUserData * IsValidMpqUserData(ULONGLONG ByteOffset, ULONGLONG FileSize, void * pvUserData)
{
TMPQUserData * pUserData;
@@ -330,7 +335,7 @@ bool WINAPI SFileOpenArchive(
if(MapType == MapTypeNotChecked)
{
// Do nothing if the file is an AVI file
- if((MapType = CheckMapType(FileSize, szMpqName, pbHeaderBuffer, dwBytesAvailable)) == MapTypeAviFile)
+ if((MapType = CheckMapType(szMpqName, pbHeaderBuffer, dwBytesAvailable)) == MapTypeAviFile)
{
dwErrCode = ERROR_AVI_FILE;
break;
@@ -456,10 +461,8 @@ bool WINAPI SFileOpenArchive(
ha->dwFlags |= MPQ_FLAG_LISTFILE_FORCE;
// StarDat.mpq from Starcraft I BETA: Enable special compression types
- if(MapType == MapTypeStarcraftBeta)
- {
+ if(IsStarcraftBetaArchive(ha->pHeader))
ha->dwFlags |= MPQ_FLAG_STARCRAFT_BETA;
- }
// Remember whether whis is a map for Warcraft III
if(MapType == MapTypeWarcraft3)
diff --git a/src/StormCommon.h b/src/StormCommon.h
index d1d7abe..865d975 100644
--- a/src/StormCommon.h
+++ b/src/StormCommon.h
@@ -80,7 +80,6 @@ typedef enum _MTYPE
{
MapTypeNotChecked, // The map type was not checked yet
MapTypeNotRecognized, // The file does not seems to be a map
- MapTypeStarcraftBeta, // The file is StarDat.mpq from Starcraft I BETA
MapTypeAviFile, // The file is actually an AVI file (Warcraft III cinematics)
MapTypeStarcraft, // The file is a Starcraft map
MapTypeWarcraft3, // The file is a Warcraft III map
diff --git a/src/adpcm/adpcm.cpp b/src/adpcm/adpcm.cpp
index 60e6738..1725008 100644
--- a/src/adpcm/adpcm.cpp
+++ b/src/adpcm/adpcm.cpp
@@ -387,7 +387,7 @@ int DecompressADPCM(void * pvOutBuffer, int cbOutBuffer, void * pvInBuffer, int
typedef struct _ADPCM_DATA
{
- unsigned int * pValues;
+ const unsigned int * pValues;
int BitCount;
int field_8;
int field_C;
@@ -404,7 +404,7 @@ static const unsigned int adpcm_values_6[] =
0x46, 0x53, 0x60, 0x6D, 0x7A, 0x86, 0x93, 0xA0, 0xAD, 0xBA, 0xC6, 0xD3, 0xE0, 0xED, 0xFA, 0x106
};
-static unsigned int * InitAdpcmData(PADPCM_DATA pData, unsigned char BitCount)
+static const unsigned int * InitAdpcmData(PADPCM_DATA pData, unsigned char BitCount)
{
switch(BitCount)
{
diff --git a/test/StormTest.cpp b/test/StormTest.cpp
index 2e7389b..f8b8f7d 100644
--- a/test/StormTest.cpp
+++ b/test/StormTest.cpp
@@ -4255,6 +4255,9 @@ static const TEST_INFO Test_Mpqs[] =
{
// Correct or damaged archives
{_T("MPQ_1997_v1_Diablo1_DIABDAT.MPQ"), NULL, 0, "music\\dintro.wav", "File00000023.xxx"},
+ {_T("MPQ_1997_v1_patch_rt_SC1B.mpq"), NULL, TEST_DATA("43fe7d362955be68a708486e399576a7", 10)}, // From Starcraft 1 BETA
+ {_T("MPQ_1997_v1_StarDat_SC1B.mpq"), NULL, TEST_DATA("0094b23f28cfff7386071ef3bd19a577", 2468)}, // From Starcraft 1 BETA
+ {_T("MPQ_1997_v1_INSTALL_SC1B.EXE_"), NULL, TEST_DATA("3248460c89bb6f8e3b8fc3e08de7ffbb", 79)}, // From Starcraft 1 BETA
{_T("MPQ_2016_v1_D2XP_IX86_1xx_114a.mpq"), NULL, TEST_DATA("255d87a62f3c9518f72cf723a1818946", 221), "waitingroombkgd.dc6"}, // Update MPQ from Diablo II (patch 2016)
{_T("MPQ_2018_v1_icon_error.w3m"), NULL, TEST_DATA("fcefa25fb50c391e8714f2562d1e10ff", 19), "file00000002.blp"},
{_T("MPQ_1997_v1_Diablo1_STANDARD.SNP"), Bliz, TEST_DATA("5ef18ef9a26b5704d8d46a344d976c89", 2)}, // File whose archive's (signature) file has flags = 0x90000000
@@ -4343,7 +4346,7 @@ int _tmain(int argc, TCHAR * argv[])
for(int i = 2; i < argc; i++)
{
// TestArchive(argv[i], Bliz, 0, "sound\\zerg\\advisor\\zaderr05.wav", NULL);
- TestArchive(argv[i], Bliz, 0, "music\\trdyroom.wav", NULL);
+// TestArchive(argv[i], Bliz, 0, "music\\trdyroom.wav", NULL);
}
//
diff --git a/test/stormlib-test.txt b/test/stormlib-test.txt
index 34917cc..4a1bd2c 100644
--- a/test/stormlib-test.txt
+++ b/test/stormlib-test.txt
@@ -1,11 +1,92 @@
-Microsoft Windows [Version 10.0.19044.1415]
+Microsoft Windows [Version 10.0.19044.1706]
(c) Microsoft Corporation. All rights reserved.
-E:\Ladik\Appdir\StormLib>StormLib_test.exe
+E:\Ladik\AppDir\StormLib\bin\StormLib_test\x64\Release>StormLib_test.exe
==== Test Suite for StormLib version 9.23 ====
InitWorkDir: Work directory \Multimedia\MPQs (default)
LocalListFile (FLAT-MAP:ListFile_Blizzard.txt) succeeded.
LocalListFile (ListFile_Blizzard.txt) succeeded.
+FileStreamTest (MPQ_2013_v4_alternate-original.MPQ) succeeded.
+FileStreamTest (MPQ_2013_v4_alternate-original.MPQ) succeeded.
+FileStreamTest (MPQ_2013_v4_alternate-complete.MPQ) succeeded.
+FileStreamTest (part-file://MPQ_2009_v2_WoW_patch.MPQ.part) succeeded.
+FileStreamTest (blk4-file://streaming/model.MPQ.0) succeeded.
+FileStreamTest (mpqe-file://MPQ_2011_v2_EncryptedMpq.MPQE) succeeded.
+OpenMirrorFile (part-file://MPQ_2009_v1_patch-created.MPQ.part) succeeded.
+OpenMirrorFile (part-file://MPQ_2009_v1_patch-partial.MPQ.part) succeeded.
+OpenMirrorFile (part-file://MPQ_2009_v1_patch-complete.MPQ.part) succeeded.
+OpenMirrorFile (MPQ_2013_v4_alternate-created.MPQ) succeeded.
+OpenMirrorFile (MPQ_2013_v4_alternate-incomplete.MPQ) succeeded.
+OpenMirrorFile (MPQ_2013_v4_alternate-complete.MPQ) succeeded.
+TestMpq (MPQ_1997_v1_Diablo1_DIABDAT.MPQ) succeeded.
+TestMpq (MPQ_1997_v1_patch_rt_SC1B.mpq) succeeded.
+TestMpq (MPQ_1997_v1_StarDat_SC1B.mpq) succeeded.
+TestMpq (MPQ_1997_v1_INSTALL_SC1B.EXE_) succeeded.
+TestMpq (MPQ_2016_v1_D2XP_IX86_1xx_114a.mpq) succeeded.
+TestMpq (MPQ_2018_v1_icon_error.w3m) succeeded.
+TestMpq (MPQ_1997_v1_Diablo1_STANDARD.SNP) succeeded.
+TestMpq (MPQ_2012_v2_EmptyMpq.MPQ) succeeded.
+TestMpq (MPQ_2013_v4_EmptyMpq.MPQ) succeeded.
+TestMpq (MPQ_2013_v4_patch-base-16357.MPQ) succeeded.
+TestMpq (MPQ_2011_v4_InvalidHetEntryCount.MPQ) succeeded.
+TestMpq (MPQ_2002_v1_BlockTableCut.MPQ) succeeded.
+TestMpq (MPQ_2010_v2_HasUserData.s2ma) succeeded.
+TestMpq (MPQ_2014_v1_AttributesOneEntryLess.w3x) succeeded.
+TestMpq (MPQ_2020_v1_AHF04patch.mix) succeeded.
+TestMpq (MPQ_2010_v3_expansion-locale-frFR.MPQ) succeeded.
+TestMpq (mpqe-file://MPQ_2011_v2_EncryptedMpq.MPQE) succeeded.
+TestMpq (MPx_2013_v1_LongwuOnline.mpk) succeeded.
+TestMpq (MPx_2013_v1_WarOfTheImmortals.sqp) succeeded.
+TestMpq (part-file://MPQ_2010_v2_HashTableCompressed.MPQ.part) succeeded.
+TestMpq (blk4-file://streaming/model.MPQ.0) succeeded.
+TestMpq (MPQ_2002_v1_ProtectedMap_InvalidUserData.w3x) succeeded.
+TestMpq (MPQ_2002_v1_ProtectedMap_InvalidMpqFormat.w3x) succeeded.
+TestMpq (MPQ_2002_v1_ProtectedMap_Spazzler.w3x) succeeded.
+TestMpq (MPQ_2014_v1_ProtectedMap_Spazzler2.w3x) succeeded.
+TestMpq (MPQ_2014_v1_ProtectedMap_Spazzler3.w3x) succeeded.
+TestMpq (MPQ_2002_v1_ProtectedMap_BOBA.w3m) succeeded.
+TestMpq (MPQ_2015_v1_ProtectedMap_KangTooJee.w3x) succeeded.
+TestMpq (MPQ_2015_v1_ProtectedMap_Somj2hM16.w3x) succeeded.
+TestMpq (MPQ_2015_v1_ProtectedMap_Spazy.w3x) succeeded.
+TestMpq (MPQ_2015_v1_MessListFile.mpq) succeeded.
+TestMpq (MPQ_2016_v1_ProtectedMap_TableSizeOverflow.w3x) succeeded.
+TestMpq (MPQ_2016_v1_ProtectedMap_HashOffsIsZero.w3x) succeeded.
+TestMpq (MPQ_2016_v1_ProtectedMap_Somj2.w3x) succeeded.
+TestMpq (MPQ_2016_v1_WME4_4.w3x) succeeded.
+TestMpq (MPQ_2016_v1_SP_(4)Adrenaline.w3x) succeeded.
+TestMpq (MPQ_2016_v1_ProtectedMap_1.4.w3x) succeeded.
+TestMpq (MPQ_2016_v1_KoreanFile.w3m) succeeded.
+TestMpq (MPQ_2017_v1_Eden_RPG_S2_2.5J.w3x) succeeded.
+TestMpq (MPQ_2017_v1_BigDummyFiles.w3x) succeeded.
+TestMpq (MPQ_2017_v1_TildeInFileName.mpq) succeeded.
+TestMpq (MPQ_2018_v1_EWIX_v8_7.w3x) succeeded.
+TestMpq (MPQ_2020_v4_FakeMpqHeaders.SC2Mod) succeeded.
+TestMpq (MPQ_2020_v4_NP_Protect_1.s2ma) succeeded.
+TestMpq (MPQ_2020_v4_NP_Protect_2.s2ma) succeeded.
+TestMpq (MPQ_2015_v1_flem1.w3x) succeeded.
+TestMpq (MPQ_2002_v1_ProtectedMap_HashTable_FakeValid.w3x) succeeded.
+TestMpq (MPQ_2021_v1_CantExtractCHK.scx) succeeded.
+TestMpq (MPQ_2022_v1_Sniper.scx) succeeded.
+TestMpq (MPQ_2022_v1_OcOc_Bound_2.scx) succeeded.
+PatchedMPQ (MPQ_1998_v1_StarCraft.mpq) succeeded.
+PatchedMPQ (MPQ_2012_v4_OldWorld.MPQ) succeeded.
+PatchedMPQ (MPQ_2013_v4_world.MPQ) succeeded.
+PatchedMPQ (MPQ_2013_v4_locale-enGB.MPQ) succeeded.
+PatchedMPQ (MPQ_2013_v4_Base1.SC2Data) succeeded.
+PatchedMPQ (MPQ_2013_v4_Base1.SC2Data) succeeded.
+PatchedMPQ (MPQ_2013_v4_Base3.SC2Maps) succeeded.
+PatchedMPQ (MPQ_2013_v4_Mods#Core.SC2Mod#enGB.SC2Assets) succeeded.
+PatchedMPQ (MPQ_2013_v4_Mods#Liberty.SC2Mod#enGB.SC2Data) succeeded.
+PatchedMPQ (MPQ_2014_v4_base-Win.MPQ) succeeded.
+PatchedMPQ (MPQ_2014_v4_base-Win.MPQ) succeeded.
+VerifyFileHash succeeded.
+VerifyFileHash succeeded.
+VerifyFileHash succeeded.
+VerifyFileHash succeeded.
+VerifyFileHash succeeded.
+VerifyFileHash succeeded.
+VerifyFileHash succeeded.
+VerifyFileHash succeeded.
VerifyFileHash succeeded.
VerifyFileHash succeeded.
VerifyFileHash succeeded.
@@ -90,78 +171,12 @@ VerifyFileHash succeeded.
VerifyFileHash succeeded.
VerifyFileHash succeeded.
VerifyFileHash succeeded.
-FileStreamTest (MPQ_2013_v4_alternate-original.MPQ) succeeded.
-FileStreamTest (MPQ_2013_v4_alternate-original.MPQ) succeeded.
-FileStreamTest (MPQ_2013_v4_alternate-complete.MPQ) succeeded.
-FileStreamTest (part-file://MPQ_2009_v2_WoW_patch.MPQ.part) succeeded.
-FileStreamTest (blk4-file://streaming/model.MPQ.0) succeeded.
-FileStreamTest (mpqe-file://MPQ_2011_v2_EncryptedMpq.MPQE) succeeded.
-OpenMirrorFile (part-file://MPQ_2009_v1_patch-created.MPQ.part) succeeded.
-OpenMirrorFile (part-file://MPQ_2009_v1_patch-partial.MPQ.part) succeeded.
-OpenMirrorFile (part-file://MPQ_2009_v1_patch-complete.MPQ.part) succeeded.
-OpenMirrorFile (MPQ_2013_v4_alternate-created.MPQ) succeeded.
-OpenMirrorFile (MPQ_2013_v4_alternate-incomplete.MPQ) succeeded.
-OpenMirrorFile (MPQ_2013_v4_alternate-complete.MPQ) succeeded.
-TestMpq (MPQ_1997_v1_Diablo1_DIABDAT.MPQ) succeeded.
-TestMpq (MPQ_2016_v1_D2XP_IX86_1xx_114a.mpq) succeeded.
-TestMpq (MPQ_2018_v1_icon_error.w3m) succeeded.
-TestMpq (MPQ_1997_v1_Diablo1_STANDARD.SNP) succeeded.
-TestMpq (MPQ_2012_v2_EmptyMpq.MPQ) succeeded.
-TestMpq (MPQ_2013_v4_EmptyMpq.MPQ) succeeded.
-TestMpq (MPQ_2013_v4_patch-base-16357.MPQ) succeeded.
-TestMpq (MPQ_2011_v4_InvalidHetEntryCount.MPQ) succeeded.
-TestMpq (MPQ_2002_v1_BlockTableCut.MPQ) succeeded.
-TestMpq (MPQ_2010_v2_HasUserData.s2ma) succeeded.
-TestMpq (MPQ_2014_v1_AttributesOneEntryLess.w3x) succeeded.
-TestMpq (MPQ_2020_v1_AHF04patch.mix) succeeded.
-TestMpq (MPQ_2010_v3_expansion-locale-frFR.MPQ) succeeded.
-TestMpq (mpqe-file://MPQ_2011_v2_EncryptedMpq.MPQE) succeeded.
-TestMpq (MPx_2013_v1_LongwuOnline.mpk) succeeded.
-TestMpq (MPx_2013_v1_WarOfTheImmortals.sqp) succeeded.
-TestMpq (part-file://MPQ_2010_v2_HashTableCompressed.MPQ.part) succeeded.
-TestMpq (blk4-file://streaming/model.MPQ.0) succeeded.
-TestMpq (MPQ_2002_v1_ProtectedMap_InvalidUserData.w3x) succeeded.
-TestMpq (MPQ_2002_v1_ProtectedMap_InvalidMpqFormat.w3x) succeeded.
-TestMpq (MPQ_2002_v1_ProtectedMap_Spazzler.w3x) succeeded.
-TestMpq (MPQ_2014_v1_ProtectedMap_Spazzler2.w3x) succeeded.
-TestMpq (MPQ_2014_v1_ProtectedMap_Spazzler3.w3x) succeeded.
-TestMpq (MPQ_2002_v1_ProtectedMap_BOBA.w3m) succeeded.
-TestMpq (MPQ_2015_v1_ProtectedMap_KangTooJee.w3x) succeeded.
-TestMpq (MPQ_2015_v1_ProtectedMap_Somj2hM16.w3x) succeeded.
-TestMpq (MPQ_2015_v1_ProtectedMap_Spazy.w3x) succeeded.
-TestMpq (MPQ_2015_v1_MessListFile.mpq) succeeded.
-TestMpq (MPQ_2016_v1_ProtectedMap_TableSizeOverflow.w3x) succeeded.
-TestMpq (MPQ_2016_v1_ProtectedMap_HashOffsIsZero.w3x) succeeded.
-TestMpq (MPQ_2016_v1_ProtectedMap_Somj2.w3x) succeeded.
-TestMpq (MPQ_2016_v1_WME4_4.w3x) succeeded.
-TestMpq (MPQ_2016_v1_SP_(4)Adrenaline.w3x) succeeded.
-TestMpq (MPQ_2016_v1_ProtectedMap_1.4.w3x) succeeded.
-TestMpq (MPQ_2016_v1_KoreanFile.w3m) succeeded.
-TestMpq (MPQ_2017_v1_Eden_RPG_S2_2.5J.w3x) succeeded.
-TestMpq (MPQ_2017_v1_BigDummyFiles.w3x) succeeded.
-TestMpq (MPQ_2017_v1_TildeInFileName.mpq) succeeded.
-TestMpq (MPQ_2018_v1_EWIX_v8_7.w3x) succeeded.
-TestMpq (MPQ_2020_v4_FakeMpqHeaders.SC2Mod) succeeded.
-TestMpq (MPQ_2020_v4_NP_Protect_1.s2ma) succeeded.
-TestMpq (MPQ_2020_v4_NP_Protect_2.s2ma) succeeded.
-TestMpq (MPQ_2015_v1_flem1.w3x) succeeded.
-TestMpq (MPQ_2002_v1_ProtectedMap_HashTable_FakeValid.w3x) succeeded.
-TestMpq (MPQ_2021_v1_CantExtractCHK.scx) succeeded.
-PatchedMPQ (MPQ_1998_v1_StarCraft.mpq) succeeded.
-PatchedMPQ (MPQ_2012_v4_OldWorld.MPQ) succeeded.
-PatchedMPQ (MPQ_2013_v4_world.MPQ) succeeded.
-PatchedMPQ (MPQ_2013_v4_locale-enGB.MPQ) succeeded.
-PatchedMPQ (MPQ_2013_v4_Base1.SC2Data) succeeded.
-PatchedMPQ (MPQ_2013_v4_Base1.SC2Data) succeeded.
-PatchedMPQ (MPQ_2013_v4_Base3.SC2Maps) succeeded.
-PatchedMPQ (MPQ_2013_v4_Mods#Core.SC2Mod#enGB.SC2Assets) succeeded.
-PatchedMPQ (MPQ_2013_v4_Mods#Liberty.SC2Mod#enGB.SC2Data) succeeded.
-PatchedMPQ (MPQ_2014_v4_base-Win.MPQ) succeeded.
-PatchedMPQ (MPQ_2014_v4_base-Win.MPQ) succeeded.
-FailMpqTest (flat-file://streaming/model.MPQ.0) succeeded.
OpenEachMpqTest ((10)DustwallowKeys.w3m) succeeded.
OpenEachMpqTest (MPQ_1997_v1_Diablo1_DIABDAT.MPQ) succeeded.
OpenEachMpqTest (MPQ_1997_v1_Diablo1_single_0.sv) succeeded.
+OpenEachMpqTest (MPQ_1997_v1_patch_rt_SC1B.mpq) succeeded.
+OpenEachMpqTest (MPQ_1997_v1_StarDat.mpq) succeeded.
+OpenEachMpqTest (MPQ_1997_v1_StarDat_SC1B.mpq) succeeded.
OpenEachMpqTest (MPQ_1998_v1_StarCraft.mpq) succeeded.
OpenEachMpqTest (MPQ_1998_v1_StarDat.mpq) succeeded.
OpenEachMpqTest (MPQ_2002_v1_BlockTableCut.MPQ) succeeded.
@@ -230,6 +245,7 @@ OpenEachMpqTest (MPQ_2020_v4_NP_Protect_4.s2ma) succeeded.
OpenEachMpqTest (MPQ_2020_v4_ThreeFakeHeaders.s2ma) succeeded.
OpenEachMpqTest (MPQ_2021_v1_CrossLinkedFiles.w3x) succeeded.
OpenEachMpqTest (MPQ_2021_v4_BzipError.SC2Replay) succeeded.
+OpenEachMpqTest: Failed to open archive \Multimedia\MPQs\1995 - Test MPQs\MPQ_2022_v1_MoeMoeMod.asi (error code: 11)
OpenEachMpqTest (hs-0-3604-Win-final.MPQ) succeeded.
OpenEachMpqTest (hs-0-5314-Win-final.MPQ) succeeded.
OpenEachMpqTest (hs-5314-5435-Win-final.MPQ) succeeded.
@@ -297,11 +313,15 @@ OpenEachMpqTest (imp.mpq) succeeded.
OpenEachMpqTest (pic.mpq) succeeded.
OpenEachMpqTest (sndfx.mpq) succeeded.
OpenEachMpqTest (special.mpq) succeeded.
+OpenEachMpqTest (patch_rt.mpq) succeeded.
+OpenEachMpqTest (StarDat.mpq) succeeded.
OpenEachMpqTest (BrooDat.mpq) succeeded.
OpenEachMpqTest (BroodWar.mpq) succeeded.
OpenEachMpqTest (Patch_rt.mpq) succeeded.
OpenEachMpqTest (StarCraft.mpq) succeeded.
OpenEachMpqTest (StarDat.mpq) succeeded.
+OpenEachMpqTest (StardatSW.mpq) succeeded.
+OpenEachMpqTest (StarDat_BETA.mpq) succeeded.
OpenEachMpqTest (War2Dat.mpq) succeeded.
OpenEachMpqTest (War2Patch.mpq) succeeded.
OpenEachMpqTest (d2char.mpq) succeeded.
@@ -2246,7 +2266,6 @@ OpenEachMpqTest (hs-6485-6898-Win-final.MPQ) succeeded.
OpenEachMpqTest (MPQ_1998_v1_StarDat.mpq) succeeded.
OpenEachMpqTest (MPQ_1999_v1_WeakSigned1.mpq) succeeded.
OpenEachMpqTest (MPQ_1999_v1_WeakSigned2.mpq) succeeded.
-OpenEachMpqTest (MPQ_2002_v1_StrongSignature.w3m) succeeded.
OpenEachMpqTest (MPQ_2009_v1_patch-complete.MPQ.part) succeeded.
OpenEachMpqTest (MPQ_2009_v1_patch-created.MPQ.part) succeeded.
OpenEachMpqTest (MPQ_2009_v1_patch-partial.MPQ.part) succeeded.
@@ -2254,7 +2273,6 @@ OpenEachMpqTest (MPQ_2009_v2_WoW_patch.MPQ.part) succeeded.
OpenEachMpqTest (MPQ_2011_v2_EncryptedMpq.MPQE) succeeded.
OpenEachMpqTest (MPQ_2013_v4_alternate-complete.MPQ) succeeded.
OpenEachMpqTest (MPQ_2013_v4_alternate-created.MPQ) succeeded.
-OpenEachMpqTest (MPQ_2013_v4_alternate-downloaded.MPQ) succeeded.
OpenEachMpqTest (MPQ_2013_v4_alternate-incomplete.MPQ) succeeded.
OpenEachMpqTest (MPQ_2013_v4_alternate-original.MPQ) succeeded.
OpenEachMpqTest (MPQ_2014_v1_out1.w3x) succeeded.
@@ -2279,11 +2297,8 @@ OpenEachMpqTest (StormLibTest_NoListFile.mpq) succeeded.
OpenEachMpqTest (StormLibTest_NonStdNames.mpq) succeeded.
OpenEachMpqTest (StormLibTest_ReadOnly.mpq) succeeded.
OpenEachMpqTest (StormLibTest_ReadWrite.mpq) succeeded.
-OpenEachMpqTest (TestArchiveCopy.mpq) succeeded.
-OpenEachMpqTest: Failed to open archive \Multimedia\MPQs\Work\(1)TheDeathSheep.w3m (error code: 11)
-OpenEachMpqTest: Failed to open archive \Multimedia\MPQs\Work\(10)DustwallowKeys#FFFF.w3m (error code: 11)
-OpenEachMpqTest: Failed to open archive \Multimedia\MPQs\Work\(10)RagingStream.w3x (error code: 11)
-OpenEachMpqTest: Failed to open archive \Multimedia\MPQs\Work\(2)BootyBay.w3m (error code: 11)
+OpenEachMpqTest (File00000003.mpq) succeeded.
+FailMpqTest (flat-file://streaming/model.MPQ.0) succeeded.
OpenCorruptMpqTest (MPQ_2013_vX_Battle.net.MPQ) succeeded.
ReadOnlyTest (MPQ_1997_v1_Diablo1_DIABDAT.MPQ) succeeded.
ReadOnlyTest (MPQ_1997_v1_Diablo1_DIABDAT.MPQ) succeeded.
@@ -2304,7 +2319,7 @@ ListFileTest (MPQ_2013_v4_SC2_EmptyMap.SC2Map) succeeded.
CreateEmptyMpq: The file "File00000000.xxx" is present, but it should not be
CreateEmptyMpq: The file "File00000000.xxx" is present, but it should not be
CreateGapsTest (StormLibTest_GapsTest.mpq) succeeded.
-NonStdNamesTest: Adding file " \ \ \ .txt" ... NonStdNamesTest: Adding file "Dir1 \Dir2 \File.txt ." ... NonStdNamesTest: Adding file "Dir1 \Dir2 \ . ." ... NonStdNamesTest (StormLibTest_NonStdNames.mpq) succeeded.
+NonStdNamesTest: Adding file " \ \ \ .txt" ... NonStdNamesTest: Adding file "Dir1 \Dir2 \File.txt ." ... NonStdNamesTest: Adding file "Dir1 \Dir2 \ . ." ... NonStdNamesTest (StormLibTest_NonStdNames.mpq) succeeded.
SignExistingMpq (MPQ_1998_v1_StarDat.mpq) succeeded.
ModifySignedTest (MPQ_1999_v1_WeakSignature.exe) succeeded.
CreateSignedMpq (MPQ_1999_v1_WeakSigned1.mpq) succeeded.
@@ -2324,4 +2339,4 @@ ListFilePos (StormLibTest_ListFilePos.mpq) succeeded.
BigMpqTest (StormLibTest_BigArchive_v4.mpq) succeeded.
ModifyTest (MPQ_2014_v4_Base.StormReplay) succeeded.
-E:\Ladik\Appdir\StormLib> \ No newline at end of file
+E:\Ladik\AppDir\StormLib\bin\StormLib_test\x64\Release> \ No newline at end of file