From 870acd582701bc67c29b48319972303e5ceb706d Mon Sep 17 00:00:00 2001 From: Ladislav Date: Mon, 18 Nov 2013 12:35:21 +0100 Subject: + Adding files to MPQ no longer removes (listfile) and (attributes) when not enough space in the hash table + Fixes in deletion of files from MPQs v 4.0 --- test/Test.cpp | 44 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 37 insertions(+), 7 deletions(-) (limited to 'test/Test.cpp') diff --git a/test/Test.cpp b/test/Test.cpp index 3d8b785..c21a708 100644 --- a/test/Test.cpp +++ b/test/Test.cpp @@ -1229,23 +1229,53 @@ static int TestAddFilesToArchive(const TCHAR * szMpqName) LPCSTR szFileData = "0123456789"; char szAddedFile[128]; DWORD dwFileSize = 10; + int nIndex = 0; - CopyFile(_T("e:\\Ladik\\Incoming\\Tya's Zerg Defense.SC2Map"), _T("e:\\Multimedia\\MPQs\\Tya's Zerg Defense.SC2Map"), FALSE); +#ifdef _MSC_VER + CopyFile(MAKE_PATH("2013 - Starcraft II\\!maps\\Tya's Zerg Defense.SC2Map"), MAKE_PATH("Tya's Zerg Defense.SC2Map"), FALSE); +#endif + + if(SFileOpenArchive(szMpqName, 0, 0, &hMpq)) + { + SFileRemoveFile(hMpq, "BankList.xml", 0); + + sprintf(szAddedFile, "BankList.xml", nIndex++); + if(SFileCreateFile(hMpq, szAddedFile, 0, dwFileSize, 0, MPQ_FILE_COMPRESS, &hFile)) + { + SFileWriteFile(hFile, szFileData, dwFileSize, MPQ_COMPRESSION_ZLIB); + SFileFinishFile(hFile); + } +/* + sprintf(szAddedFile, "AddedFile%04u.txt", nIndex++); + if(SFileCreateFile(hMpq, szAddedFile, 0, dwFileSize, 0, MPQ_FILE_COMPRESS, &hFile)) + { + SFileWriteFile(hFile, szFileData, dwFileSize, MPQ_COMPRESSION_ZLIB); + SFileFinishFile(hFile); + } + + sprintf(szAddedFile, "AddedFile%04u.txt", nIndex++); + if(SFileCreateFile(hMpq, szAddedFile, 0, dwFileSize, 0, MPQ_FILE_COMPRESS, &hFile)) + { + SFileWriteFile(hFile, szFileData, dwFileSize, MPQ_COMPRESSION_ZLIB); + SFileFinishFile(hFile); + } +*/ + + SFileCloseArchive(hMpq); + } +/* for(int i = 0; i < 3; i++) { if(SFileOpenArchive(szMpqName, 0, 0, &hMpq)) { sprintf(szAddedFile, "AddedFile%04u.txt", i); + SFileRemoveFile(hFile, szAddedFile, 0); - if(SFileCreateFile(hMpq, szAddedFile, 0, dwFileSize, 0, MPQ_FILE_COMPRESS, &hFile)) - { - SFileWriteFile(hMpq, szFileData, dwFileSize, MPQ_COMPRESSION_ZLIB); - SFileFinishFile(hFile); - } + SFileCloseArchive(hMpq); } } - +*/ return ERROR_SUCCESS; } -- cgit v1.2.3