diff options
author | Ladislav Zezula <zezula@volny.cz> | 2020-11-23 12:56:00 +0100 |
---|---|---|
committer | Ladislav Zezula <zezula@volny.cz> | 2020-11-23 12:56:00 +0100 |
commit | b6102b2600f792f159320439686a872a72d20c70 (patch) | |
tree | a9cfacadc0c28b3cfde908d2a4511b6605a648a0 | |
parent | 809005c7f025bcc55bfa4ede78cb4cc45d3c0e6c (diff) |
Removed trailing whitespace
34 files changed, 387 insertions, 387 deletions
diff --git a/src/DllMain.def b/src/DllMain.def index 440b3e0..bce2877 100644 --- a/src/DllMain.def +++ b/src/DllMain.def @@ -21,23 +21,23 @@ EXPORTS SFileSetCompactCallback SFileCompactArchive - + SFileGetMaxFileCount - SFileSetMaxFileCount - + SFileSetMaxFileCount + SFileGetAttributes SFileSetAttributes SFileUpdateFileAttributes SFileOpenPatchArchive SFileIsPatchedArchive - + SFileOpenFileEx SFileGetFileSize SFileSetFilePointer SFileReadFile SFileCloseFile - + SFileHasFile SFileGetFileName SFileGetFileInfo @@ -57,7 +57,7 @@ EXPORTS SListFileFindClose SFileEnumLocales - + SFileCreateFile SFileWriteFile SFileFinishFile @@ -72,8 +72,8 @@ EXPORTS SCompImplode SCompExplode - SCompCompress - SCompDecompress + SCompCompress + SCompDecompress GetLastError=Kernel32.GetLastError SetLastError=Kernel32.SetLastError diff --git a/src/DllMain.rc b/src/DllMain.rc index ddfe3c3..27f43e2 100644 --- a/src/DllMain.rc +++ b/src/DllMain.rc @@ -78,19 +78,19 @@ LANGUAGE LANG_CZECH, SUBLANG_DEFAULT // TEXTINCLUDE // -2 TEXTINCLUDE +2 TEXTINCLUDE BEGIN "#include ""afxres.h""\r\n" "\0" END -3 TEXTINCLUDE +3 TEXTINCLUDE BEGIN "\r\n" "\0" END -1 TEXTINCLUDE +1 TEXTINCLUDE BEGIN "resource.h\0" END diff --git a/src/FileStream.cpp b/src/FileStream.cpp index 06f7627..a7b3e6a 100644 --- a/src/FileStream.cpp +++ b/src/FileStream.cpp @@ -108,14 +108,14 @@ static bool BaseFile_Create(TFileStream * pStream) #if defined(STORMLIB_MAC) || defined(STORMLIB_LINUX) || defined(STORMLIB_HAIKU)
{
intptr_t handle;
-
+
handle = open(pStream->szFileName, O_RDWR | O_CREAT | O_TRUNC | O_LARGEFILE, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
if(handle == -1)
{
nLastError = errno;
return false;
}
-
+
pStream->Base.File.hFile = (HANDLE)handle;
}
#endif
@@ -244,7 +244,7 @@ static bool BaseFile_Read( nLastError = errno;
return false;
}
-
+
dwBytesRead = (DWORD)(size_t)bytes_read;
}
}
@@ -313,7 +313,7 @@ static bool BaseFile_Write(TFileStream * pStream, ULONGLONG * pByteOffset, const nLastError = errno;
return false;
}
-
+
dwBytesWritten = (DWORD)(size_t)bytes_written;
}
#endif
@@ -360,7 +360,7 @@ static bool BaseFile_Resize(TFileStream * pStream, ULONGLONG NewFileSize) return bResult;
}
#endif
-
+
#if defined(STORMLIB_MAC) || defined(STORMLIB_LINUX) || defined(STORMLIB_HAIKU)
{
if(ftruncate64((intptr_t)pStream->Base.File.hFile, (off64_t)NewFileSize) == -1)
@@ -368,7 +368,7 @@ static bool BaseFile_Resize(TFileStream * pStream, ULONGLONG NewFileSize) nLastError = errno;
return false;
}
-
+
pStream->Base.File.FileSize = NewFileSize;
return true;
}
@@ -412,7 +412,7 @@ static bool BaseFile_Replace(TFileStream * pStream, TFileStream * pNewStream) nLastError = errno;
return false;
}
-
+
return true;
#endif
}
@@ -472,7 +472,7 @@ static bool RetrieveFileMappingSize(HANDLE hSection, ULARGE_INTEGER & RefFileSiz NTQUERYSECTION PfnQuerySection;
HMODULE hNtdll;
SIZE_T ReturnLength = 0;
-
+
if((hNtdll = GetModuleHandle(_T("ntdll.dll"))) != NULL)
{
PfnQuerySection = (NTQUERYSECTION)GetProcAddress(hNtdll, "NtQuerySection");
@@ -817,7 +817,7 @@ static bool BaseHttp_Read( // Add range request to the HTTP headers
// http://www.clevercomponents.com/articles/article015/resuming.asp
wsprintf(szRangeRequest, _T("Range: bytes=%u-%u"), (unsigned int)dwStartOffset, (unsigned int)dwEndOffset);
- HttpAddRequestHeaders(hRequest, szRangeRequest, 0xFFFFFFFF, HTTP_ADDREQ_FLAG_ADD_IF_NEW);
+ HttpAddRequestHeaders(hRequest, szRangeRequest, 0xFFFFFFFF, HTTP_ADDREQ_FLAG_ADD_IF_NEW);
// Send the request to the server
if(HttpSendRequest(hRequest, NULL, 0, NULL, 0))
@@ -1070,7 +1070,7 @@ static void BlockStream_Close(TBlockStream * pStream) static STREAM_INIT StreamBaseInit[4] =
{
BaseFile_Init,
- BaseMap_Init,
+ BaseMap_Init,
BaseHttp_Init,
BaseNone_Init
};
@@ -1109,7 +1109,7 @@ static TFileStream * AllocateFileStream( SetLastError(ERROR_INVALID_PARAMETER);
return NULL;
}
-
+
// Open the master file
pMaster = FileStream_OpenFile(szNextFile + 1, STREAM_FLAG_READ_ONLY);
}
@@ -1167,7 +1167,7 @@ static DWORD FlatStream_CheckFile(TBlockStream * pStream) static bool FlatStream_LoadBitmap(TBlockStream * pStream)
{
FILE_BITMAP_FOOTER Footer;
- ULONGLONG ByteOffset;
+ ULONGLONG ByteOffset;
LPBYTE FileBitmap;
DWORD BlockCount;
DWORD BitmapSize;
@@ -1275,7 +1275,7 @@ static bool FlatStream_BlockCheck( // Sanity checks
assert((BlockOffset & (pStream->BlockSize - 1)) == 0);
assert(FileBitmap != NULL);
-
+
// Calculate the index of the block
BlockIndex = (DWORD)(BlockOffset / pStream->BlockSize);
BitMask = (BYTE)(1 << (BlockIndex & 0x07));
@@ -1336,7 +1336,7 @@ static void FlatStream_Close(TBlockStream * pStream) {
// Write the file bitmap
pStream->BaseWrite(pStream, &pStream->StreamSize, pStream->FileBitmap, pStream->BitmapSize);
-
+
// Prepare and write the file footer
Footer.Signature = ID_FILE_BITMAP_FOOTER;
Footer.Version = 3;
@@ -1431,7 +1431,7 @@ static bool FlatStream_CreateMirror(TBlockStream * pStream) static TFileStream * FlatStream_Open(const TCHAR * szFileName, DWORD dwStreamFlags)
{
- TBlockStream * pStream;
+ TBlockStream * pStream;
ULONGLONG ByteOffset = 0;
// Create new empty stream
@@ -1655,7 +1655,7 @@ static bool PartStream_BlockCheck( // Sanity checks
assert((BlockOffset & (pStream->BlockSize - 1)) == 0);
assert(pStream->FileBitmap != NULL);
-
+
// Calculate the block map entry
FileBitmap = (PPART_FILE_MAP_ENTRY)pStream->FileBitmap + (BlockOffset / pStream->BlockSize);
@@ -1751,7 +1751,7 @@ static void PartStream_Close(TBlockStream * pStream) PartHeader.FileSizeHi = (DWORD)(pStream->StreamSize >> 0x20);
PartHeader.FileSizeLo = (DWORD)(pStream->StreamSize & 0xFFFFFFFF);
PartHeader.BlockSize = pStream->BlockSize;
-
+
// Make sure that the header is properly BSWAPed
BSWAP_ARRAY32_UNSIGNED(&PartHeader, sizeof(PART_FILE_HEADER));
IntToString(PartHeader.GameBuildNumber, _countof(PartHeader.GameBuildNumber), pStream->BuildNumber);
@@ -1916,7 +1916,7 @@ static const char * AuthCodeArray[] = "S48B6CDTN5XEQAKQDJNDLJBJ73FDFM3U", // SC2 Heart of the Swarm-all : "expand 32-byte kQAKQ0000FM3UN5XE000073FD6CDT0000LJBJS48B0000DJND"
// Diablo III: Agent.exe (1.0.0.954)
- // Address of decryption routine: 00502b00
+ // Address of decryption routine: 00502b00
// Pointer to decryptor object: ECX
// Pointer to key: ECX+0x5C
// Authentication code URL: http://dist.blizzard.com/mediakey/d3-authenticationcode-enGB.txt
@@ -2022,7 +2022,7 @@ static void DecryptFileChunk( KeyShuffled[0x04] = KeyMirror[0x0D];
KeyShuffled[0x01] = KeyMirror[0x0E];
KeyShuffled[0x00] = KeyMirror[0x0F];
-
+
// Shuffle the key - part 2
for(DWORD i = 0; i < RoundCount; i += 2)
{
@@ -2113,7 +2113,7 @@ static bool MpqeStream_DetectFileKey(TEncryptedStream * pStream) // Prepare they decryption key from game serial number
CreateKeyFromAuthCode(pStream->Key, AuthCodeArray[i]);
- // Try to decrypt with the given key
+ // Try to decrypt with the given key
memcpy(FileHeader, EncryptedHeader, MPQE_CHUNK_SIZE);
DecryptFileChunk((LPDWORD)FileHeader, pStream->Key, ByteOffset, MPQE_CHUNK_SIZE);
@@ -2368,8 +2368,8 @@ static TFileStream * Block4Stream_Open(const TCHAR * szFileName, DWORD dwStreamF assert(FileSize <= BLOCK4_MAX_FSIZE);
RemainderBlock = FileSize % (BLOCK4_BLOCK_SIZE + BLOCK4_HASH_SIZE);
BlockCount = FileSize / (BLOCK4_BLOCK_SIZE + BLOCK4_HASH_SIZE);
-
- // Increment the stream size and number of blocks
+
+ // Increment the stream size and number of blocks
pStream->StreamSize += (BlockCount * BLOCK4_BLOCK_SIZE);
pStream->BlockCount += (DWORD)BlockCount;
@@ -2586,7 +2586,7 @@ size_t FileStream_Prefix(const TCHAR * szFileName, DWORD * pdwProvider) dwProvider |= BASE_PROVIDER_MAP;
nPrefixLength2 = 4;
}
-
+
else if(!_tcsnicmp(szFileName+nPrefixLength1, _T("http:"), 5))
{
dwProvider |= BASE_PROVIDER_HTTP;
@@ -2794,7 +2794,7 @@ bool FileStream_GetSize(TFileStream * pStream, ULONGLONG * pFileSize) * \a NewFileSize File size to set
*/
bool FileStream_SetSize(TFileStream * pStream, ULONGLONG NewFileSize)
-{
+{
if(pStream->dwFlags & STREAM_FLAG_READ_ONLY)
{
SetLastError(ERROR_ACCESS_DENIED);
diff --git a/src/FileStream.h b/src/FileStream.h index 44beeed..2bc118b 100644 --- a/src/FileStream.h +++ b/src/FileStream.h @@ -202,7 +202,7 @@ struct TBlockStream : public TFileStream DWORD BlockCount; // Number of data blocks in the file DWORD IsComplete; // If nonzero, no blocks are missing DWORD IsModified; // nonzero if the bitmap has been modified -}; +}; //----------------------------------------------------------------------------- // Structure for encrypted stream diff --git a/src/SBaseCommon.cpp b/src/SBaseCommon.cpp index 97ebc59..28dc701 100644 --- a/src/SBaseCommon.cpp +++ b/src/SBaseCommon.cpp @@ -28,66 +28,66 @@ USHORT wPlatform = 0; // File platform // Converts ASCII characters to lowercase
// Converts slash (0x2F) to backslash (0x5C)
-unsigned char AsciiToLowerTable[256] =
+unsigned char AsciiToLowerTable[256] =
{
- 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x5C,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
- 0x40, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
- 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
- 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
- 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
- 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F,
- 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
- 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
- 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
- 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
+ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
+ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
+ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x5C,
+ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
+ 0x40, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
+ 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
+ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
+ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F,
+ 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
+ 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
+ 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
+ 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
};
// Converts ASCII characters to uppercase
// Converts slash (0x2F) to backslash (0x5C)
-unsigned char AsciiToUpperTable[256] =
+unsigned char AsciiToUpperTable[256] =
{
- 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x5C,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
- 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
- 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
- 0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
- 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
- 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F,
- 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
- 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
- 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
- 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
+ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
+ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
+ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x5C,
+ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
+ 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
+ 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
+ 0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
+ 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
+ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
+ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F,
+ 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
+ 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
+ 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
+ 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
};
// Converts ASCII characters to uppercase
// Does NOT convert slash (0x2F) to backslash (0x5C)
-unsigned char AsciiToUpperTable_Slash[256] =
+unsigned char AsciiToUpperTable_Slash[256] =
{
- 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
- 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
- 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
- 0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
- 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
- 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F,
- 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
- 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
- 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
- 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
+ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
+ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
+ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
+ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
+ 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
+ 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
+ 0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
+ 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
+ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
+ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F,
+ 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
+ 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
+ 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
+ 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
};
@@ -105,7 +105,7 @@ char * StringCopy(char * szTarget, size_t cchTarget, const char * szSource) if(cchSource >= cchTarget)
cchSource = cchTarget - 1;
-
+
memcpy(szTarget, szSource, cchSource);
szTarget[cchSource] = 0;
}
@@ -158,7 +158,7 @@ void StringCopy(TCHAR * szTarget, size_t cchTarget, const char * szSource) if(cchSource >= cchTarget)
cchSource = cchTarget - 1;
-
+
mbstowcs(szTarget, szSource, cchSource);
szTarget[cchSource] = 0;
}
@@ -172,7 +172,7 @@ void StringCopy(char * szTarget, size_t cchTarget, const TCHAR * szSource) if(cchSource >= cchTarget)
cchSource = cchTarget - 1;
-
+
wcstombs(szTarget, szSource, cchSource);
szTarget[cchSource] = 0;
}
@@ -186,7 +186,7 @@ void StringCopy(TCHAR * szTarget, size_t cchTarget, const TCHAR * szSource) if(cchSource >= cchTarget)
cchSource = cchTarget - 1;
-
+
memcpy(szTarget, szSource, cchSource * sizeof(TCHAR));
szTarget[cchSource] = 0;
}
@@ -246,7 +246,7 @@ void InitializeMpqCryptography() register_hash(&sha1_desc);
// Use LibTomMath as support math library for LibTomCrypt
- ltc_mp = ltm_desc;
+ ltc_mp = ltm_desc;
// Don't do that again
bMpqCryptographyInitialized = true;
@@ -255,7 +255,7 @@ void InitializeMpqCryptography() //
// Note: Implementation of this function in WorldEdit.exe and storm.dll
-// incorrectly treats the character as signed, which leads to the
+// incorrectly treats the character as signed, which leads to the
// a buffer underflow if the character in the file name >= 0x80:
// The following steps happen when *pbKey == 0xBF and dwHashType == 0x0000
// (calculating hash index)
@@ -268,7 +268,7 @@ void InitializeMpqCryptography() // As result, MPQs containing files with non-ANSI characters will not work between
// various game versions and localizations. Even WorldEdit, after importing a file
// with Korean characters in the name, cannot open the file back.
-//
+//
DWORD HashString(const char * szFileName, DWORD dwHashType)
{
LPBYTE pbKey = (BYTE *)szFileName;
@@ -448,7 +448,7 @@ void DecryptMpqBlock(void * pvDataBlock, DWORD dwLength, DWORD dwKey1) {
// Modify the second key
dwKey2 += StormBuffer[MPQ_HASH_KEY2_MIX + (dwKey1 & 0xFF)];
-
+
DataBlock[i] = DataBlock[i] ^ (dwKey1 + dwKey2);
dwValue32 = DataBlock[i];
@@ -629,7 +629,7 @@ DWORD DecryptFileKey( TMPQArchive * IsValidMpqHandle(HANDLE hMpq)
{
TMPQArchive * ha = (TMPQArchive *)hMpq;
-
+
return (ha != NULL && ha->pHeader != NULL && ha->pHeader->dwID == ID_MPQ) ? ha : NULL;
}
@@ -879,7 +879,7 @@ TMPQFile * CreateWritableHandle(TMPQArchive * ha, DWORD dwFileSize) {
TempPos = FreeMpqSpace +
dwFileSize +
- (ha->pHeader->dwHashTableSize * sizeof(TMPQHash)) +
+ (ha->pHeader->dwHashTableSize * sizeof(TMPQHash)) +
(ha->dwFileTableSize * sizeof(TMPQBlock));
if((TempPos >> 32) != 0)
{
@@ -955,7 +955,7 @@ void * LoadMpqTable( // Fill the extra data with zeros
dwBytesToRead = (DWORD)(FileSize - ByteOffset);
memset(pbMpqTable + dwBytesToRead, 0, (dwTableSize - dwBytesToRead));
-
+
// Give the caller information that the table was cut
if(pbTableIsCut != NULL)
pbTableIsCut[0] = true;
@@ -1145,7 +1145,7 @@ int AllocateSectorOffsets(TMPQFile * hf, bool bLoadFromFile) // Calculate the number of file sectors
dwSectorOffsLen = (hf->dwSectorCount + 1) * sizeof(DWORD);
-
+
// If MPQ_FILE_SECTOR_CRC flag is set, there will either be extra DWORD
// or an array of MD5's. Either way, we read at least 4 bytes more
// in order to save additional read from the file.
@@ -1251,7 +1251,7 @@ int AllocateSectorOffsets(TMPQFile * hf, bool bLoadFromFile) //
// These extra values are, however, include in the dwCmpSize in the file
// table. We cannot ignore them, because compacting archive would fail
- //
+ //
if(hf->SectorOffsets[0] > dwSectorOffsLen)
{
@@ -1298,7 +1298,7 @@ int AllocateSectorChecksums(TMPQFile * hf, bool bLoadFromFile) // Caller must ensure that we are only called when we have sector checksums
assert(pFileEntry->dwFlags & MPQ_FILE_SECTOR_CRC);
- //
+ //
// Older MPQs store an array of CRC32's after
// the raw file data in the MPQ.
//
@@ -1338,7 +1338,7 @@ int AllocateSectorChecksums(TMPQFile * hf, bool bLoadFromFile) // Calculate offset of the CRC table
dwCrcSize = hf->dwSectorCount * sizeof(DWORD);
dwCrcOffset = hf->SectorOffsets[hf->dwSectorCount];
- RawFilePos = CalculateRawSectorOffset(hf, dwCrcOffset);
+ RawFilePos = CalculateRawSectorOffset(hf, dwCrcOffset);
// Now read the table from the MPQ
hf->SectorChksums = (DWORD *)LoadMpqTable(ha, RawFilePos, dwCompressedSize, dwCrcSize, 0, NULL);
@@ -1394,7 +1394,7 @@ int WriteSectorOffsets(TMPQFile * hf) // Write sector offsets to the archive
if(!FileStream_Write(ha->pStream, &RawFilePos, hf->SectorOffsets, dwSectorOffsLen))
return GetLastError();
-
+
// Not necessary, as the sector checksums
// are going to be freed when this is done.
// BSWAP_ARRAY32_UNSIGNED(hf->SectorOffsets, dwSectorOffsLen);
@@ -1452,7 +1452,7 @@ int WriteSectorChecksums(TMPQFile * hf) // are going to be freed when this is done.
// BSWAP_ARRAY32_UNSIGNED(hf->SectorChksums, dwCrcSize);
- // Store the sector CRCs
+ // Store the sector CRCs
hf->SectorOffsets[hf->dwSectorCount + 1] = hf->SectorOffsets[hf->dwSectorCount] + dwCompressedSize;
pFileEntry->dwCmpSize += dwCompressedSize;
STORM_FREE(pbCompressed);
diff --git a/src/SBaseDumpData.cpp b/src/SBaseDumpData.cpp index 2454f22..b08796a 100644 --- a/src/SBaseDumpData.cpp +++ b/src/SBaseDumpData.cpp @@ -69,14 +69,14 @@ void DumpHetAndBetTable(TMPQHetTable * pHetTable, TMPQBetTable * pBetTable) return; printf("== HET Header =================================\n"); - printf("ULONGLONG AndMask64 = %016llX\n", pHetTable->AndMask64); - printf("ULONGLONG OrMask64 = %016llX\n", pHetTable->OrMask64); + printf("ULONGLONG AndMask64 = %016llX\n", pHetTable->AndMask64); + printf("ULONGLONG OrMask64 = %016llX\n", pHetTable->OrMask64); printf("DWORD dwEntryCount = %08X\n", pHetTable->dwEntryCount); printf("DWORD dwTotalCount = %08X\n", pHetTable->dwTotalCount); printf("DWORD dwNameHashBitSize = %08X\n", pHetTable->dwNameHashBitSize); printf("DWORD dwIndexSizeTotal = %08X\n", pHetTable->dwIndexSizeTotal); printf("DWORD dwIndexSizeExtra = %08X\n", pHetTable->dwIndexSizeExtra); - printf("DWORD dwIndexSize = %08X\n", pHetTable->dwIndexSize); + printf("DWORD dwIndexSize = %08X\n", pHetTable->dwIndexSize); printf("-----------------------------------------------\n\n"); printf("== BET Header =================================\n"); @@ -89,7 +89,7 @@ void DumpHetAndBetTable(TMPQHetTable * pHetTable, TMPQBetTable * pBetTable) printf("DWORD dwBitCount_FilePos = %08X\n", pBetTable->dwBitCount_FilePos); printf("DWORD dwBitCount_FileSize = %08X\n", pBetTable->dwBitCount_FileSize); printf("DWORD dwBitCount_CmpSize = %08X\n", pBetTable->dwBitCount_CmpSize); - printf("DWORD dwBitCount_FlagIndex = %08X\n", pBetTable->dwBitCount_FlagIndex); + printf("DWORD dwBitCount_FlagIndex = %08X\n", pBetTable->dwBitCount_FlagIndex); printf("DWORD dwBitCount_Unknown = %08X\n", pBetTable->dwBitCount_Unknown); printf("DWORD dwBitTotal_NameHash2 = %08X\n", pBetTable->dwBitTotal_NameHash2); printf("DWORD dwBitExtra_NameHash2 = %08X\n", pBetTable->dwBitExtra_NameHash2); @@ -114,7 +114,7 @@ void DumpHetAndBetTable(TMPQHetTable * pHetTable, TMPQBetTable * pBetTable) GetMPQBits(pHetTable->pBetIndexes, i * pHetTable->dwIndexSizeTotal, pHetTable->dwIndexSize, &dwBetIndex, 4); - + if(dwBetIndex < pHetTable->dwTotalCount) { DWORD dwEntryIndex = pBetTable->dwTableEntrySize * dwBetIndex; diff --git a/src/SBaseFileTable.cpp b/src/SBaseFileTable.cpp index 7fe1042..98d8e44 100644 --- a/src/SBaseFileTable.cpp +++ b/src/SBaseFileTable.cpp @@ -52,7 +52,7 @@ static DWORD GetNecessaryBitCount(ULONGLONG MaxValue) MaxValue >>= 1;
dwBitCount++;
}
-
+
return dwBitCount;
}
@@ -119,7 +119,7 @@ void TMPQBits::GetBits( #ifndef STORMLIB_LITTLE_ENDIAN
// Adjust the buffer pointer for big endian platforms
pbBuffer += (nResultByteSize - 1);
-#endif
+#endif
// Copy whole bytes, if any
while(nByteLength > 0)
@@ -178,7 +178,7 @@ void TMPQBits::SetBits( #ifndef STORMLIB_LITTLE_ENDIAN
// Adjust the buffer pointer for big endian platforms
pbBuffer += (nResultByteSize - 1);
-#endif
+#endif
// Copy whole bytes, if any
while(nBitLength > 8)
@@ -392,7 +392,7 @@ ULONGLONG CalculateRawSectorOffset( // Must be used for files within a MPQ
assert(hf->ha != NULL);
assert(hf->ha->pHeader != NULL);
-
+
//
// Some MPQ protectors place the sector offset table after the actual file data.
// Sector offsets in the sector offset table are negative. When added
@@ -476,7 +476,7 @@ int ConvertMpqHeaderToFormat4( pHeader->BlockTableSize64 = pHeader->dwBlockTableSize * sizeof(TMPQBlock);
pHeader->HashTableSize64 = pHeader->dwHashTableSize * sizeof(TMPQHash);
pHeader->ArchiveSize64 = pHeader->dwArchiveSize;
-
+
// Block table position must be calculated as 32-bit value
// Note: BOBA protector puts block table before the MPQ header, so it is negative
BlockTablePos64 = (ULONGLONG)((DWORD)MpqOffset + pHeader->dwBlockTablePos);
@@ -626,7 +626,7 @@ int ConvertMpqHeaderToFormat4( pHeader->HetTableSize64 = ByteOffset - pHeader->HetTablePos64;
// ByteOffset = pHeader->HetTablePos64;
}
-
+
// Add the MPQ Offset
BlockTablePos64 += MpqOffset;
break;
@@ -697,14 +697,14 @@ int ConvertMpqHeaderToFormat4( bool IsValidHashEntry(TMPQArchive * ha, TMPQHash * pHash)
{
TFileEntry * pFileEntry = ha->pFileTable + MPQ_BLOCK_INDEX(pHash);
-
+
return ((MPQ_BLOCK_INDEX(pHash) < ha->dwFileTableSize) && (pFileEntry->dwFlags & MPQ_FILE_EXISTS)) ? true : false;
}
// Hash entry verification when the file table does not exist yet
static bool IsValidHashEntry1(TMPQArchive * ha, TMPQHash * pHash, TMPQBlock * pBlockTable)
{
- ULONGLONG ByteOffset;
+ ULONGLONG ByteOffset;
TMPQBlock * pBlock;
// The block index is considered valid if it's less than block table size
@@ -758,7 +758,7 @@ static TMPQHash * GetHashEntryLocale(TMPQArchive * ha, const char * szFileName, }
// Get the next hash entry for that file
- pHash = GetNextHashEntry(ha, pFirstHash, pHash);
+ pHash = GetNextHashEntry(ha, pFirstHash, pHash);
}
// At the end, return neutral hash (if found), otherwise NULL
@@ -779,9 +779,9 @@ static TMPQHash * GetHashEntryExact(TMPQArchive * ha, const char * szFileName, L // If the locales match, return it
if(pHash->lcLocale == lcLocale)
return pHash;
-
+
// Get the next hash entry for that file
- pHash = GetNextHashEntry(ha, pFirstHash, pHash);
+ pHash = GetNextHashEntry(ha, pFirstHash, pHash);
}
// Not found
@@ -1361,7 +1361,7 @@ TMPQHetTable * CreateHetTable(DWORD dwEntryCount, DWORD dwTotalCount, DWORD dwNa // Copy the file indexes
memcpy(pHetTable->pBetIndexes->Elements, pbSrcData + dwTotalCount, pHetTable->pBetIndexes->NumberOfBytes);
}
-
+
// Return the result HET table
return pHetTable;
}
@@ -1445,7 +1445,7 @@ static TMPQHetTable * TranslateHetTable(TMPQHetHeader * pHetHeader) // The size of index table (in entries) is expected
// to be the same like the hash table size (in bytes)
assert(((pHetHeader->dwTotalCount * pHetHeader->dwIndexSizeTotal) + 7) / 8 == pHetHeader->dwIndexTableSize);
-
+
// Create translated table
pHetTable = CreateHetTable(pHetHeader->dwEntryCount, pHetHeader->dwTotalCount, pHetHeader->dwNameHashBitSize, pbSrcData);
if(pHetTable != NULL)
@@ -1761,7 +1761,7 @@ static TMPQBetTable * TranslateBetTable( pBetTable->dwBitTotal_NameHash2 = pBetHeader->dwBitTotal_NameHash2;
pBetTable->dwBitExtra_NameHash2 = pBetHeader->dwBitExtra_NameHash2;
pBetTable->dwBitCount_NameHash2 = pBetHeader->dwBitCount_NameHash2;
-
+
// Create and load the array of BET hashes
pBetTable->pNameHashes = TMPQBits::Create(pBetTable->dwBitTotal_NameHash2 * pBetHeader->dwEntryCount, 0);
if(pBetTable->pNameHashes != NULL)
@@ -1875,7 +1875,7 @@ TMPQExtHeader * TranslateBetTable( BetHeader.dwBitCount_NameHash2,
&pFileEntry->FileNameHash,
8);
-
+
assert(dwFileIndex < BetHeader.dwEntryCount);
dwFileIndex++;
}
@@ -1983,7 +1983,7 @@ TFileEntry * GetFileEntryExact(TMPQArchive * ha, const char * szFileName, LCID l return ha->pFileTable + dwFileIndex;
}
}
-
+
// Not found
return NULL;
}
@@ -2045,7 +2045,7 @@ TFileEntry * AllocateFileEntry(TMPQArchive * ha, const char * szFileName, LCID l if(pFreeEntry == NULL)
pFreeEntry = pFileEntry;
dwFreeCount++;
-
+
// If the number of free items is greater than number
// of reserved items, We can add the file
if(dwFreeCount > dwReservedFiles)
@@ -2173,7 +2173,7 @@ int DeleteFileEntry(TMPQArchive * ha, TMPQFile * hf) pFileEntry->dwFlags &= ~MPQ_FILE_EXISTS;
pFileEntry->FileNameHash = 0;
- return ERROR_SUCCESS;
+ return ERROR_SUCCESS;
}
DWORD InvalidateInternalFile(TMPQArchive * ha, const char * szFileName, DWORD dwFlagNone, DWORD dwFlagNew, DWORD dwForceAddTheFile = 0)
@@ -2206,7 +2206,7 @@ DWORD InvalidateInternalFile(TMPQArchive * ha, const char * szFileName, DWORD dw else
{
ha->dwFlags |= dwFlagNone;
- dwFileFlags = 0;
+ dwFileFlags = 0;
}
// Return the intended file flags
@@ -2220,7 +2220,7 @@ void InvalidateInternalFiles(TMPQArchive * ha) {
//
// We clear the file entries for (listfile), (attributes) and (signature)
- // For each internal file cleared, we increment the number
+ // For each internal file cleared, we increment the number
// of reserved entries in the file table.
//
@@ -2366,7 +2366,7 @@ TMPQBlock * LoadBlockTable(TMPQArchive * ha, bool /* bDontFixEntries */) // Read, decrypt and uncompress the block table
pBlockTable = (TMPQBlock * )LoadMpqTable(ha, ByteOffset, dwCmpSize, dwTableSize, MPQ_KEY_BLOCK_TABLE, &bBlockTableIsCut);
-
+
// If the block table was cut, we need to remember it
if(pBlockTable != NULL && bBlockTableIsCut)
ha->dwFlags |= (MPQ_FLAG_MALFORMED | MPQ_FLAG_BLOCK_TABLE_CUT);
@@ -2551,7 +2551,7 @@ static int BuildFileTable_HetBet(TMPQArchive * ha) FreeBetTable(pBetTable);
return ERROR_FILE_CORRUPT;
}
-
+
// Step one: Fill the name indexes
for(i = 0; i < pHetTable->dwTotalCount; i++)
{
@@ -2586,7 +2586,7 @@ static int BuildFileTable_HetBet(TMPQArchive * ha) // Go through the entire BET table and convert it to the file table.
pFileEntry = ha->pFileTable;
- pBitArray = pBetTable->pFileTable;
+ pBitArray = pBetTable->pFileTable;
for(i = 0; i < pBetTable->dwEntryCount; i++)
{
DWORD dwFlagIndex = 0;
@@ -2697,7 +2697,7 @@ void UpdateBlockTableSize(TMPQArchive * ha) // Calculate the number of files
for(pFileEntry = ha->pFileTable; pFileEntry < pFileTableEnd; pFileEntry++)
{
- // If the source table entry is valid,
+ // If the source table entry is valid,
if(pFileEntry->dwFlags & MPQ_FILE_EXISTS)
dwBlockTableSize = (DWORD)(pFileEntry - ha->pFileTable) + 1;
}
@@ -2728,7 +2728,7 @@ int DefragmentFileTable(TMPQArchive * ha) // Parse the entire file table and defragment it
for(; pSource < pFileTableEnd; pSource++)
{
- // If the source table entry is valid,
+ // If the source table entry is valid,
if(pSource->dwFlags & MPQ_FILE_EXISTS)
{
// Remember the index conversion
@@ -2920,7 +2920,7 @@ int SaveMPQTables(TMPQArchive * ha) // We expect this function to be called only when tables have been changed
assert(ha->dwFlags & MPQ_FLAG_CHANGED);
- // Find the space where the MPQ tables will be saved
+ // Find the space where the MPQ tables will be saved
TablePos = FindFreeMpqSpace(ha);
// If the MPQ has HET table, we prepare a ready-to-save version
@@ -3011,7 +3011,7 @@ int SaveMPQTables(TMPQArchive * ha) pHeader->HiBlockTableSize64 = HiBlockTableSize64;
pHeader->HiBlockTablePos64 = TablePos;
BSWAP_ARRAY16_UNSIGNED(pHiBlockTable, HiBlockTableSize64);
-
+
if(!FileStream_Write(ha->pStream, &ByteOffset, pHiBlockTable, (DWORD)HiBlockTableSize64))
nError = GetLastError();
TablePos += HiBlockTableSize64;
@@ -3034,7 +3034,7 @@ int SaveMPQTables(TMPQArchive * ha) // Update the size of the archive
pHeader->ArchiveSize64 = TablePos;
pHeader->dwArchiveSize = (DWORD)TablePos;
-
+
// Update the MD5 of the archive header
CalculateDataBlockHash(pHeader, MPQ_HEADER_SIZE_V4 - MD5_DIGEST_SIZE, pHeader->MD5_MpqHeader);
diff --git a/src/SBaseSubTypes.cpp b/src/SBaseSubTypes.cpp index 47c205e..6ac5279 100644 --- a/src/SBaseSubTypes.cpp +++ b/src/SBaseSubTypes.cpp @@ -21,24 +21,24 @@ typedef struct _TSQPHeader { // The ID_MPQ ('MPQ\x1A') signature - DWORD dwID; + DWORD dwID; // Size of the archive header - DWORD dwHeaderSize; + DWORD dwHeaderSize; // 32-bit size of MPQ archive DWORD dwArchiveSize; // Offset to the beginning of the hash table, relative to the beginning of the archive. DWORD dwHashTablePos; - + // Offset to the beginning of the block table, relative to the beginning of the archive. DWORD dwBlockTablePos; - + // Number of entries in the hash table. Must be a power of two, and must be less than 2^16 for // the original MoPaQ format, or less than 2^20 for the Burning Crusade format. DWORD dwHashTableSize; - + // Number of entries in the block table DWORD dwBlockTableSize; @@ -66,7 +66,7 @@ typedef struct _TSQPHash // The hash of the file path, using method A. DWORD dwName1; - + // The hash of the file path, using method B. DWORD dwName2; @@ -76,16 +76,16 @@ typedef struct _TSQPBlock { // Offset of the beginning of the file, relative to the beginning of the archive. DWORD dwFilePos; - + // Flags for the file. See MPQ_FILE_XXXX constants - DWORD dwFlags; + DWORD dwFlags; // Compressed file size DWORD dwCSize; - + // Uncompressed file size - DWORD dwFSize; - + DWORD dwFSize; + } TSQPBlock; //----------------------------------------------------------------------------- @@ -143,7 +143,7 @@ int ConvertSqpHeaderToFormat4( // Copy the converted MPQ header back memcpy(ha->HeaderData, &Header, sizeof(TMPQHeader)); - + // Mark this file as SQP file ha->pfnHashString = HashStringSlash; ha->dwFlags |= MPQ_FLAG_READ_ONLY; @@ -292,13 +292,13 @@ typedef struct _TMPKHeader { // The ID_MPK ('MPK\x1A') signature DWORD dwID; - + // Contains '2000' DWORD dwVersion; - + // 32-bit size of the archive DWORD dwArchiveSize; - + // Size of the archive header DWORD dwHeaderSize; @@ -315,7 +315,7 @@ typedef struct _TMPKHash { // The hash of the file path, using method A. DWORD dwName1; - + // The hash of the file path, using method B. DWORD dwName2; @@ -334,7 +334,7 @@ typedef struct _TMPKHash typedef struct _TMPKBlock { - DWORD dwFlags; // 0x1121 - Compressed , 0x1120 - Not compressed + DWORD dwFlags; // 0x1121 - Compressed , 0x1120 - Not compressed DWORD dwFilePos; // Offset of the beginning of the file, relative to the beginning of the archive. DWORD dwFSize; // Uncompressed file size DWORD dwCSize; // Compressed file size diff --git a/src/SCompression.cpp b/src/SCompression.cpp index d706a6f..93f80e1 100644 --- a/src/SCompression.cpp +++ b/src/SCompression.cpp @@ -2,7 +2,7 @@ /* SCompression.cpp Copyright (c) Ladislav Zezula 2003 */ /*---------------------------------------------------------------------------*/ /* This module serves as a bridge between StormLib code and (de)compression */ -/* functions. All (de)compression calls go (and should only go) through this */ +/* functions. All (de)compression calls go (and should only go) through this */ /* module. No system headers should be included in this module to prevent */ /* compile-time problems. */ /*---------------------------------------------------------------------------*/ @@ -45,11 +45,11 @@ typedef int (*DECOMPRESS)( void * pvOutBuffer, // [out] Pointer to the buffer where to store decompressed data int * pcbOutBuffer, // [in] Pointer to total size of the buffer pointed by pvOutBuffer // [out] Contains length of the decompressed data - void * pvInBuffer, // [in] Pointer to data to be decompressed + void * pvInBuffer, // [in] Pointer to data to be decompressed int cbInBuffer); // [in] Length of the data to be decompressed // Table of compression functions -typedef struct +typedef struct { unsigned long uMask; // Compression mask COMPRESS Compress; // Compression function @@ -76,7 +76,7 @@ void Compress_huff(void * pvOutBuffer, int * pcbOutBuffer, void * pvInBuffer, in STORMLIB_UNUSED(nCmpLevel); *pcbOutBuffer = ht.Compress(&os, pvInBuffer, cbInBuffer, *pCmpType); -} +} int Decompress_huff(void * pvOutBuffer, int * pcbOutBuffer, void * pvInBuffer, int cbInBuffer) { @@ -144,7 +144,7 @@ void Compress_ZLIB(void * pvOutBuffer, int * pcbOutBuffer, void * pvInBuffer, in { // Call zlib to compress the data nResult = deflate(&z, Z_FINISH); - + if(nResult == Z_OK || nResult == Z_STREAM_END) *pcbOutBuffer = z.total_out; @@ -187,7 +187,7 @@ int Decompress_ZLIB(void * pvOutBuffer, int * pcbOutBuffer, void * pvInBuffer, i // Function loads data from the input buffer. Used by Pklib's "implode" // and "explode" function as user-defined callback // Returns number of bytes loaded -// +// // char * buf - Pointer to a buffer where to store loaded data // unsigned int * size - Max. number of bytes to read // void * param - Custom pointer, parameter of implode/explode @@ -201,7 +201,7 @@ static unsigned int ReadInputData(char * buf, unsigned int * size, void * param) // Check the case when not enough data available if(nToRead > nMaxAvail) nToRead = nMaxAvail; - + // Load data and increment offsets memcpy(buf, pInfo->pbInBuff, nToRead); pInfo->pbInBuff += nToRead; @@ -211,7 +211,7 @@ static unsigned int ReadInputData(char * buf, unsigned int * size, void * param) // Function for store output data. Used by Pklib's "implode" and "explode" // as user-defined callback -// +// // char * buf - Pointer to data to be written // unsigned int * size - Number of bytes to write // void * param - Custom pointer, parameter of implode/explode @@ -293,7 +293,7 @@ static int Decompress_PKLIB(void * pvOutBuffer, int * pcbOutBuffer, void * pvInB // Do the decompression explode(ReadInputData, WriteOutputData, work_buf, &Info); - + // If PKLIB is unable to decompress the data, return 0; if(Info.pbOutBuff == pvOutBuffer) { @@ -376,8 +376,8 @@ static int Decompress_BZIP2(void * pvOutBuffer, int * pcbOutBuffer, void * pvInB while(nResult != BZ_STREAM_END) { nResult = BZ2_bzDecompress(&strm); - - // If any error there, break the loop + + // If any error there, break the loop if(nResult < BZ_OK) break; } @@ -510,7 +510,7 @@ static int Decompress_LZMA(void * pvOutBuffer, int * pcbOutBuffer, void * pvInBu SRes nResult; // There must be at least 0x0E bytes in the buffer - if(srcLen <= LZMA_HEADER_SIZE) + if(srcLen <= LZMA_HEADER_SIZE) return 0; // We only accept blocks that have no filter used @@ -527,7 +527,7 @@ static int Decompress_LZMA(void * pvOutBuffer, int * pcbOutBuffer, void * pvInBu &destLen, srcBuffer + LZMA_HEADER_SIZE, &srcLen, - srcBuffer + 1, + srcBuffer + 1, LZMA_PROPS_SIZE, LZMA_FINISH_END, &LzmaStatus, @@ -568,7 +568,7 @@ static int Decompress_LZMA_MPK(void * pvOutBuffer, int * pcbOutBuffer, void * pv &destLen, srcBuffer + sizeof(LZMA_Props), &srcLen, - srcBuffer, + srcBuffer, sizeof(LZMA_Props), LZMA_FINISH_END, &LzmaStatus, @@ -728,7 +728,7 @@ int WINAPI SCompExplode(void * pvOutBuffer, int * pcbOutBuffer, void * pvInBuffe memcpy(pvOutBuffer, pvInBuffer, cbInBuffer); return 1; } - + // Perform decompression if(!Decompress_PKLIB(pvOutBuffer, &cbOutBuffer, pvInBuffer, cbInBuffer)) { @@ -992,7 +992,7 @@ int WINAPI SCompDecompress(void * pvOutBuffer, int * pcbOutBuffer, void * pvInBu // Get the correct output buffer pbOutput = (nCompressIndex & 1) ? pbWorkBuffer : pbOutBuffer; nCompressIndex--; - + // Perform the decompression cbOutBuffer = *pcbOutBuffer; nResult = dcmp_table[i].Decompress(pbOutput, &cbOutBuffer, pbInput, cbInLength); @@ -1140,6 +1140,6 @@ int WINAPI SCompDecompress2(void * pvOutBuffer, int * pcbOutBuffer, void * pvInB int SCompDecompressMpk(void * pvOutBuffer, int * pcbOutBuffer, void * pvInBuffer, int cbInBuffer) { - return Decompress_LZMA_MPK(pvOutBuffer, pcbOutBuffer, pvInBuffer, cbInBuffer); + return Decompress_LZMA_MPK(pvOutBuffer, pcbOutBuffer, pvInBuffer, cbInBuffer); } diff --git a/src/SFileAddFile.cpp b/src/SFileAddFile.cpp index e756781..31f052a 100644 --- a/src/SFileAddFile.cpp +++ b/src/SFileAddFile.cpp @@ -36,8 +36,8 @@ typedef struct _WAVE_FILE_HEADER DWORD dwChunkId; // 0x52494646 ("RIFF")
DWORD dwChunkSize; // Size of that chunk, in bytes
DWORD dwFormat; // Must be 0x57415645 ("WAVE")
-
- // Format sub-chunk
+
+ // Format sub-chunk
DWORD dwSubChunk1Id; // 0x666d7420 ("fmt ")
DWORD dwSubChunk1Size; // 0x16 for PCM
USHORT wAudioFormat; // 1 = PCM. Other value means some sort of compression
@@ -150,11 +150,11 @@ static int WriteDataToMpqFile( DWORD dwSectorIndex = hf->dwFilePos / hf->dwSectorSize;
DWORD dwBytesToCopy;
- // Process all data.
+ // Process all data.
while(dwDataSize != 0)
{
dwBytesToCopy = dwDataSize;
-
+
// Check for sector overflow
if(dwBytesToCopy > (hf->dwSectorSize - dwBytesInSector))
dwBytesToCopy = (hf->dwSectorSize - dwBytesInSector);
@@ -214,7 +214,7 @@ static int WriteDataToMpqFile( // by the first sector compression. This is because the entire sector must
// be compressed by the same compression.
//
- // Test case:
+ // Test case:
//
// WRITE_FILE(hFile, pvBuffer, 0x10, MPQ_COMPRESSION_PKWARE) // Write 0x10 bytes (sector 0)
// WRITE_FILE(hFile, pvBuffer, 0x10, MPQ_COMPRESSION_ADPCM_MONO) // Write 0x10 bytes (still sector 0)
@@ -370,7 +370,7 @@ static int RecryptFileData( }
// If necessary, re-encrypt the sector
- // Note: Recompression is not necessary here. Unlike encryption,
+ // Note: Recompression is not necessary here. Unlike encryption,
// the compression does not depend on the position of the file in MPQ.
BSWAP_ARRAY32_UNSIGNED(hf->pbFileSector, dwRawDataInSector);
DecryptMpqBlock(hf->pbFileSector, dwRawDataInSector, dwOldKey + dwSector);
@@ -422,7 +422,7 @@ int SFileAddFile_Init( // Sector CRC is not allowed if the file is not compressed
if(!(dwFlags & MPQ_FILE_COMPRESS_MASK))
dwFlags &= ~MPQ_FILE_SECTOR_CRC;
-
+
// Fix Key is not allowed if the file is not enrypted
if(!(dwFlags & MPQ_FILE_ENCRYPTED))
dwFlags &= ~MPQ_FILE_FIX_KEY;
@@ -456,7 +456,7 @@ int SFileAddFile_Init( if(pFileEntry != NULL)
InvalidateInternalFiles(ha);
else
- nError = ERROR_DISK_FULL;
+ nError = ERROR_DISK_FULL;
}
// Set the file entry to the file structure
@@ -621,7 +621,7 @@ int SFileAddFile_Write(TMPQFile * hf, const void * pvData, DWORD dwSize, DWORD d {
if(!FileStream_Write(ha->pStream, &RawFilePos, hf->pPatchInfo, hf->pPatchInfo->dwLength))
nError = GetLastError();
-
+
pFileEntry->dwCmpSize += hf->pPatchInfo->dwLength;
RawFilePos += hf->pPatchInfo->dwLength;
}
@@ -754,7 +754,7 @@ int SFileAddFile_Finish(TMPQFile * hf) }
//-----------------------------------------------------------------------------
-// Adds data as file to the archive
+// Adds data as file to the archive
bool WINAPI SFileCreateFile(
HANDLE hMpq,
@@ -775,7 +775,7 @@ bool WINAPI SFileCreateFile( nError = ERROR_INVALID_PARAMETER;
if(phFile == NULL)
nError = ERROR_INVALID_PARAMETER;
-
+
// Don't allow to add file if the MPQ is open for read only
if(nError == ERROR_SUCCESS)
{
@@ -841,7 +841,7 @@ bool WINAPI SFileWriteFile( //
// if(dwFlags & MPQ_FILE_ENCRYPTED)
// nError = ERROR_INVALID_PARAMETER;
-
+
// Lossy compression is not allowed on single unit files
if(dwCompression & MPQ_LOSSY_COMPRESSION_MASK)
nError = ERROR_INVALID_PARAMETER;
@@ -851,7 +851,7 @@ bool WINAPI SFileWriteFile( // Write the data to the file
if(nError == ERROR_SUCCESS)
nError = SFileAddFile_Write(hf, pvData, dwSize, dwCompression);
-
+
// Deal with errors
if(nError != ERROR_SUCCESS)
SetLastError(nError);
@@ -872,7 +872,7 @@ bool WINAPI SFileFinishFile(HANDLE hFile) // Finish the file
if(nError == ERROR_SUCCESS)
nError = SFileAddFile_Finish(hf);
-
+
// Deal with errors
if(nError != ERROR_SUCCESS)
SetLastError(nError);
@@ -880,7 +880,7 @@ bool WINAPI SFileFinishFile(HANDLE hFile) }
//-----------------------------------------------------------------------------
-// Adds a file to the archive
+// Adds a file to the archive
bool WINAPI SFileAddFileEx(
HANDLE hMpq,
@@ -937,7 +937,7 @@ bool WINAPI SFileAddFileEx( // we will copy the compression for the first sector
if(dwCompressionNext == MPQ_COMPRESSION_NEXT_SAME)
dwCompressionNext = dwCompression;
-
+
// If the caller wants ADPCM compression, we make sure
// that the first sector is not compressed with lossy compression
if(dwCompressionNext & (MPQ_COMPRESSION_ADPCM_MONO | MPQ_COMPRESSION_ADPCM_STEREO))
@@ -946,7 +946,7 @@ bool WINAPI SFileAddFileEx( // in order not to corrupt the headers
if(dwCompression & (MPQ_COMPRESSION_ADPCM_MONO | MPQ_COMPRESSION_ADPCM_STEREO))
dwCompression = MPQ_COMPRESSION_PKWARE;
-
+
// Remove both flag mono and stereo flags.
// They will be re-added according to WAVE type
dwCompressionNext &= ~(MPQ_COMPRESSION_ADPCM_MONO | MPQ_COMPRESSION_ADPCM_STEREO);
@@ -1020,7 +1020,7 @@ bool WINAPI SFileAddFileEx( SetLastError(nError);
return (nError == ERROR_SUCCESS);
}
-
+
// Adds a data file into the archive
bool WINAPI SFileAddFile(HANDLE hMpq, const TCHAR * szFileName, const char * szArchivedName, DWORD dwFlags)
{
@@ -1047,7 +1047,7 @@ bool WINAPI SFileAddWave(HANDLE hMpq, const TCHAR * szFileName, const char * szA // Starcraft files are packed as Mono (0x41) on medium quality.
// Because this compression is not used anymore, our compression functions
// will default to WaveCompressionLevel = 4 when using ADPCM compression
- //
+ //
// Convert quality to data compression
switch(dwQuality)
@@ -1190,7 +1190,7 @@ bool WINAPI SFileRenameFile(HANDLE hMpq, const char * szFileName, const char * s {
// Recrypt the file data in the MPQ
nError = RecryptFileData(ha, hf, szFileName, szNewFileName);
-
+
// Update the MD5 of the raw block
if(nError == ERROR_SUCCESS && ha->pHeader->dwRawChunkSize != 0)
{
diff --git a/src/SFileAttributes.cpp b/src/SFileAttributes.cpp index f57f62c..77464f0 100644 --- a/src/SFileAttributes.cpp +++ b/src/SFileAttributes.cpp @@ -151,7 +151,7 @@ static int LoadAttributesFile(TMPQArchive * ha, LPBYTE pbAttrFile, DWORD cbAttrF if((pbAttrPtr + sizeof(MPQ_ATTRIBUTES_HEADER)) <= pbAttrFileEnd)
{
PMPQ_ATTRIBUTES_HEADER pAttrHeader = (PMPQ_ATTRIBUTES_HEADER)pbAttrPtr;
-
+
// Verify the header version
BSWAP_ARRAY32_UNSIGNED(pAttrHeader, sizeof(MPQ_ATTRIBUTES_HEADER));
if(pAttrHeader->dwVersion != MPQ_ATTRIBUTES_V1)
@@ -378,7 +378,7 @@ int SAttrLoadAttributes(TMPQArchive * ha) {
// Retrieve and check size of the (attributes) file
cbAttrFile = SFileGetFileSize(hFile, NULL);
-
+
// Integer overflow check
if((cbAttrFile + 1) > cbAttrFile)
{
@@ -461,7 +461,7 @@ int SAttrFileSaveToMpq(TMPQArchive * ha) nError = (cbAttrFile == 0) ? ERROR_SUCCESS : ERROR_NOT_ENOUGH_MEMORY;
}
}
-
+
return nError;
}
diff --git a/src/SFileCompactArchive.cpp b/src/SFileCompactArchive.cpp index ff7b25b..1fed524 100644 --- a/src/SFileCompactArchive.cpp +++ b/src/SFileCompactArchive.cpp @@ -158,7 +158,7 @@ static int CopyMpqFileSectors( DWORD dwCmpSize = 0; // Compressed file size, including patch header
int nError = ERROR_SUCCESS;
- // Resolve decryption keys. Note that the file key given
+ // Resolve decryption keys. Note that the file key given
// in the TMPQFile structure also includes the key adjustment
if(nError == ERROR_SUCCESS && (pFileEntry->dwFlags & MPQ_FILE_ENCRYPTED))
{
@@ -240,7 +240,7 @@ static int CopyMpqFileSectors( // Calculate the raw file offset of the file sector
RawFilePos = CalculateRawSectorOffset(hf, dwRawByteOffset);
-
+
// Read the file sector
if(!FileStream_Read(ha->pStream, &RawFilePos, hf->pbFileSector, dwRawDataInSector))
{
@@ -249,7 +249,7 @@ static int CopyMpqFileSectors( }
// If necessary, re-encrypt the sector
- // Note: Recompression is not necessary here. Unlike encryption,
+ // Note: Recompression is not necessary here. Unlike encryption,
// the compression does not depend on the position of the file in MPQ.
if((pFileEntry->dwFlags & MPQ_FILE_ENCRYPTED) && dwFileKey1 != dwFileKey2)
{
@@ -337,7 +337,7 @@ static int CopyMpqFileSectors( // Write the MD5's of the raw file data, if needed
if(nError == ERROR_SUCCESS && ha->pHeader->dwRawChunkSize != 0)
{
- nError = WriteMpqDataMD5(pNewStream,
+ nError = WriteMpqDataMD5(pNewStream,
ha->MpqPos + MpqFilePos,
pFileEntry->dwCmpSize,
ha->pHeader->dwRawChunkSize);
@@ -349,7 +349,7 @@ static int CopyMpqFileSectors( // At this point, number of bytes written should be exactly
// the same like the compressed file size. If it isn't,
// there's something wrong (an unknown archive version, MPQ malformation, ...)
- //
+ //
// Note: Diablo savegames have very weird layout, and the file "hero"
// seems to have improper compressed size. Instead of real compressed size,
// the "dwCmpSize" member of the block table entry contains
diff --git a/src/SFileCreateArchive.cpp b/src/SFileCreateArchive.cpp index de4ab36..7c24491 100644 --- a/src/SFileCreateArchive.cpp +++ b/src/SFileCreateArchive.cpp @@ -186,7 +186,7 @@ bool WINAPI SFileCreateArchive2(const TCHAR * szMpqName, PSFILE_CREATE_MPQ pCrea if(!FileStream_SetSize(pStream, MpqPos)) nError = GetLastError(); -#ifdef _DEBUG +#ifdef _DEBUG // Debug code, used for testing StormLib // dwBlockTableSize = dwHashTableSize * 2; #endif @@ -267,7 +267,7 @@ bool WINAPI SFileCreateArchive2(const TCHAR * szMpqName, PSFILE_CREATE_MPQ pCrea SetLastError(nError); ha = NULL; } - + // Return the values *phMpq = (HANDLE)ha; return (nError == ERROR_SUCCESS); diff --git a/src/SFileFindFile.cpp b/src/SFileFindFile.cpp index 6a4cecd..3dbb2f8 100644 --- a/src/SFileFindFile.cpp +++ b/src/SFileFindFile.cpp @@ -345,7 +345,7 @@ static int DoMPQSearch(TMPQSearch * hs, SFILE_FIND_DATA * lpFindFileData) // Start searching with base MPQ
while(ha != NULL)
- {
+ {
// If the archive has hash table, we need to use hash table
// in order to catch hash table index and file locale.
// Note: If multiple hash table entries, point to the same block entry,
@@ -445,7 +445,7 @@ HANDLE WINAPI SFileFindFirstFile(HANDLE hMpq, const char * szMask, SFILE_FIND_DA FreeMPQSearch(hs);
SetLastError(nError);
}
-
+
// Return the result value
return (HANDLE)hs;
}
diff --git a/src/SFileGetFileInfo.cpp b/src/SFileGetFileInfo.cpp index 4ec05e2..44cbf4a 100644 --- a/src/SFileGetFileInfo.cpp +++ b/src/SFileGetFileInfo.cpp @@ -475,7 +475,7 @@ struct TFileHeader2Ext const char * szExt; // Supplied extension, if the condition is true
};
-static TFileHeader2Ext data2ext[] =
+static TFileHeader2Ext data2ext[] =
{
{0x00005A4D, 0x0000FFFF, 0x00000000, 0x00000000, "exe"}, // EXE files
{0x00000006, 0xFFFFFFFF, 0x00000001, 0xFFFFFFFF, "dc6"}, // EXE files
@@ -506,7 +506,7 @@ static TFileHeader2Ext data2ext[] = {0x5733504D, 0xFFFFFFFF, 0x00000000, 0x00000000, "wpm"}, // Warcraft III pathing map files
{0x21475457, 0xFFFFFFFF, 0x00000000, 0x00000000, "wtg"}, // Warcraft III trigger files
{0x00000000, 0x00000000, 0x00000000, 0x00000000, "xxx"}, // Default extension
- {0, 0, 0, 0, NULL} // Terminator
+ {0, 0, 0, 0, NULL} // Terminator
};
static int CreatePseudoFileName(HANDLE hFile, TFileEntry * pFileEntry, char * szFileName)
@@ -518,7 +518,7 @@ static int CreatePseudoFileName(HANDLE hFile, TFileEntry * pFileEntry, char * sz char szPseudoName[20];
// Read the first 2 DWORDs bytes from the file
- dwFilePos = SFileSetFilePointer(hFile, 0, NULL, FILE_CURRENT);
+ dwFilePos = SFileSetFilePointer(hFile, 0, NULL, FILE_CURRENT);
SFileReadFile(hFile, FirstBytes, sizeof(FirstBytes), &dwBytesRead, NULL);
SFileSetFilePointer(hFile, dwFilePos, NULL, FILE_BEGIN);
diff --git a/src/SFileListFile.cpp b/src/SFileListFile.cpp index fe9bc69..6fcd736 100644 --- a/src/SFileListFile.cpp +++ b/src/SFileListFile.cpp @@ -115,7 +115,7 @@ static TListFileCache * CreateListFileCache( pCache->szWildCard = (char *)(pCache + 1);
memcpy(pCache->szWildCard, szWildCard, cchWildCard);
}
-
+
// Fill-in the rest of the cache pointers
pCache->pBegin = (LPBYTE)(pCache + 1) + cchWildCard;
@@ -272,11 +272,11 @@ static char * ReadListFileLine(TListFileCache * pCache, size_t * PtrLength) {
LPBYTE pbLineBegin;
LPBYTE pbLineEnd;
-
+
// Skip newlines. Keep spaces and tabs, as they can be a legal part of the file name
while(pCache->pPos < pCache->pEnd && (pCache->pPos[0] == 0x0A || pCache->pPos[0] == 0x0D))
pCache->pPos++;
-
+
// Set the line begin and end
if(pCache->pPos >= pCache->pEnd)
return NULL;
@@ -296,7 +296,7 @@ static char * ReadListFileLine(TListFileCache * pCache, size_t * PtrLength) return (char *)pbLineBegin;
}
-static int STORMLIB_CDECL CompareFileNodes(const void * p1, const void * p2)
+static int STORMLIB_CDECL CompareFileNodes(const void * p1, const void * p2)
{
char * szFileName1 = *(char **)p1;
char * szFileName2 = *(char **)p2;
@@ -526,7 +526,7 @@ static int SFileAddArbitraryListFile( // Delete the cache
FreeListFileCache(pCache);
}
-
+
return (pCache != NULL) ? ERROR_SUCCESS : ERROR_FILE_CORRUPT;
}
@@ -550,7 +550,7 @@ static int SFileAddInternalListFile( pFirstHash = pHash = GetFirstHashEntry(ha, LISTFILE_NAME);
while(nError == ERROR_SUCCESS && pHash != NULL)
- {
+ {
// Set the prefered locale to that from list file
SFileSetLocale(pHash->lcLocale);
diff --git a/src/SFileOpenArchive.cpp b/src/SFileOpenArchive.cpp index 3e333a9..7dfb851 100644 --- a/src/SFileOpenArchive.cpp +++ b/src/SFileOpenArchive.cpp @@ -187,7 +187,7 @@ bool WINAPI SFileOpenArchive( LPBYTE pbHeaderBuffer = NULL; // Buffer for searching MPQ header DWORD dwStreamFlags = (dwFlags & STREAM_FLAGS_MASK); MTYPE MapType = MapTypeNotRecognized; - int nError = ERROR_SUCCESS; + int nError = ERROR_SUCCESS; // Verify the parameters if(szMpqName == NULL || *szMpqName == 0 || phMpq == NULL) @@ -255,7 +255,7 @@ bool WINAPI SFileOpenArchive( // Also remember if this MPQ is a patch ha->dwFlags |= (dwFlags & MPQ_OPEN_PATCH) ? MPQ_FLAG_PATCH : 0; - + // Limit the header searching to about 130 MB of data if(EndOfSearch > 0x08000000) EndOfSearch = 0x08000000; diff --git a/src/SFileOpenFileEx.cpp b/src/SFileOpenFileEx.cpp index d66c369..5b7933a 100644 --- a/src/SFileOpenFileEx.cpp +++ b/src/SFileOpenFileEx.cpp @@ -168,7 +168,7 @@ bool OpenPatchedFile(HANDLE hMpq, const char * szFileName, HANDLE * PtrFile) /*****************************************************************************/ //----------------------------------------------------------------------------- -// SFileEnumLocales enums all locale versions within MPQ. +// SFileEnumLocales enums all locale versions within MPQ. // Functions fills all available language identifiers on a file into the buffer // pointed by plcLocales. There must be enough entries to copy the localed, // otherwise the function returns ERROR_INSUFFICIENT_BUFFER. @@ -198,7 +198,7 @@ int WINAPI SFileEnumLocales( return ERROR_INVALID_PARAMETER; if(IsPseudoFileName(szFileName, &dwFileIndex)) return ERROR_INVALID_PARAMETER; - + // Keep compiler happy dwMaxLocales = PtrMaxLocales[0]; dwSearchScope = dwSearchScope; @@ -259,7 +259,7 @@ bool WINAPI SFileOpenFileEx(HANDLE hMpq, const char * szFileName, DWORD dwSearch case SFILE_OPEN_FROM_MPQ: case SFILE_OPEN_BASE_FILE: case SFILE_OPEN_CHECK_EXISTS: - + // If this MPQ has no patches, open the file from this MPQ directly if(ha->haPatch == NULL || dwSearchScope == SFILE_OPEN_BASE_FILE) { @@ -284,7 +284,7 @@ bool WINAPI SFileOpenFileEx(HANDLE hMpq, const char * szFileName, DWORD dwSearch case SFILE_OPEN_LOCAL_FILE: // Open a local file - return OpenLocalFile(szFileName, PtrFile); + return OpenLocalFile(szFileName, PtrFile); default: @@ -405,7 +405,7 @@ bool WINAPI SFileHasFile(HANDLE hMpq, const char * szFileName) bool WINAPI SFileCloseFile(HANDLE hFile) { TMPQFile * hf = (TMPQFile *)hFile; - + if(!IsValidFileHandle(hFile)) { SetLastError(ERROR_INVALID_HANDLE); diff --git a/src/SFilePatchArchives.cpp b/src/SFilePatchArchives.cpp index 37b4612..83cb501 100644 --- a/src/SFilePatchArchives.cpp +++ b/src/SFilePatchArchives.cpp @@ -31,7 +31,7 @@ typedef struct _MPQ_PATCH_HEADER DWORD dwSizeOfPatchData; // Size of the entire patch (decompressed)
DWORD dwSizeBeforePatch; // Size of the file before patch
DWORD dwSizeAfterPatch; // Size of file after patch
-
+
//-- MD5 block --------------------------------------
DWORD dwMD5; // 'MD5_'
DWORD dwMd5BlockSize; // Size of the MD5 block, including the signature and size itself
@@ -78,14 +78,14 @@ static const char * LanguageList = "baseteenenUSenGBenCNenTWdeDEesESesMXfrFRitIT // List of localized MPQs for World of Warcraft
static LOCALIZED_MPQ_INFO LocaleMpqs_WoW[] =
{
- {"expansion1-locale-####", 18, 22},
- {"expansion1-speech-####", 18, 22},
- {"expansion2-locale-####", 18, 22},
- {"expansion2-speech-####", 18, 22},
- {"expansion3-locale-####", 18, 22},
- {"expansion3-speech-####", 18, 22},
- {"locale-####", 7, 11},
- {"speech-####", 7, 11},
+ {"expansion1-locale-####", 18, 22},
+ {"expansion1-speech-####", 18, 22},
+ {"expansion2-locale-####", 18, 22},
+ {"expansion2-speech-####", 18, 22},
+ {"expansion3-locale-####", 18, 22},
+ {"expansion3-speech-####", 18, 22},
+ {"locale-####", 7, 11},
+ {"speech-####", 7, 11},
{NULL, 0, 0}
};
@@ -113,7 +113,7 @@ static void Decompress_RLE(LPBYTE pbDecompressed, DWORD cbDecompressed, LPBYTE p {
LPBYTE pbDecompressedEnd = pbDecompressed + cbDecompressed;
LPBYTE pbCompressedEnd = pbCompressed + cbCompressed;
- BYTE RepeatCount;
+ BYTE RepeatCount;
BYTE OneByte;
// Cut the initial DWORD from the compressed chunk
@@ -126,7 +126,7 @@ static void Decompress_RLE(LPBYTE pbDecompressed, DWORD cbDecompressed, LPBYTE p while(pbCompressed < pbCompressedEnd && pbDecompressed < pbDecompressedEnd)
{
OneByte = *pbCompressed++;
-
+
// Is it a repetition byte ?
if(OneByte & 0x80)
{
@@ -285,8 +285,8 @@ static int ApplyFilePatch_BSD0( // Now combine the patch data with the original file
for(i = 0; i < dwCombineSize; i++)
pbNewData[dwNewOffset + i] = pbNewData[dwNewOffset + i] + pbOldData[dwOldOffset + i];
-
- // Move the offsets
+
+ // Move the offsets
dwNewOffset += dwAddDataLength;
dwOldOffset += dwAddDataLength;
@@ -399,7 +399,7 @@ static int ApplyFilePatch( // Verify the patched file
if(!VerifyDataBlockHash(pbTarget, pFullPatch->dwSizeAfterPatch, pFullPatch->md5_after_patch))
nError = ERROR_FILE_CORRUPT;
-
+
// Copy the MD5 of the new block
memcpy(pPatcher->this_md5, pFullPatch->md5_after_patch, MD5_DIGEST_SIZE);
}
@@ -491,7 +491,7 @@ static bool IsMatchingPatchFile( {
// TODO: How to match it if it's not an incremental patch?
// Example: StarCraft II\Updates\enGB\s2-update-enGB-23258.MPQ:
- // Mods\Core.SC2Mod\enGB.SC2Assets\StreamingBuckets.txt"
+ // Mods\Core.SC2Mod\enGB.SC2Assets\StreamingBuckets.txt"
bResult = false;
}
@@ -697,7 +697,7 @@ static bool ExtractPatchPrefixFromFile(const TCHAR * szHelperFile, char * szPatc {
char * szLinePtr = szFileData + 11;
char * szLineEnd;
-
+
// Skip spaces or '='
while(szLinePtr[0] == ' ' || szLinePtr[0] == '=')
szLinePtr++;
@@ -867,8 +867,8 @@ static bool FindPatchPrefix_SC2(TMPQArchive * haBase, TMPQArchive * haPatch, TFi // Example 3:
// Main MPQ: %GAME%\Battle.net\Battle.net.MPQ
// Patch MPQ: s2-update-base-26147.MPQ
-// File in main MPQ: Battle.net\i18n\deDE\String\CLIENT_ACHIEVEMENTS.xml
-// File in patch MPQ: Battle.net\Battle.net.MPQ\Battle.net\i18n\deDE\String\CLIENT_ACHIEVEMENTS.xml
+// File in main MPQ: Battle.net\i18n\deDE\String\CLIENT_ACHIEVEMENTS.xml
+// File in patch MPQ: Battle.net\Battle.net.MPQ\Battle.net\i18n\deDE\String\CLIENT_ACHIEVEMENTS.xml
// Path prefix: Battle.net\Battle.net.MPQ
//
// Example 4:
@@ -894,7 +894,7 @@ static bool FindPatchPrefix(TMPQArchive * haBase, TMPQArchive * haPatch, const c return FindPatchPrefix_WoW_13164_13623(haBase, haPatch);
// Updates for Starcraft II
- // Match: LocalizedData\GameHotkeys.txt <==> Campaigns\Liberty.SC2Campaign\enGB.SC2Data\LocalizedData\GameHotkeys.txt
+ // Match: LocalizedData\GameHotkeys.txt <==> Campaigns\Liberty.SC2Campaign\enGB.SC2Data\LocalizedData\GameHotkeys.txt
// All Starcraft II base archives seem to have the file "StreamingBuckets.txt" present
pFileEntry = GetFileEntryLocale(haBase, "StreamingBuckets.txt", 0);
if(pFileEntry != NULL)
@@ -1076,7 +1076,7 @@ void Patch_Finalize(TMPQPatcher * pPatcher) STORM_FREE(pPatcher->pbFileData1);
if(pPatcher->pbFileData2 != NULL)
STORM_FREE(pPatcher->pbFileData2);
-
+
memset(pPatcher, 0, sizeof(TMPQPatcher));
}
}
diff --git a/src/SFileReadFile.cpp b/src/SFileReadFile.cpp index 0320677..a9d070f 100644 --- a/src/SFileReadFile.cpp +++ b/src/SFileReadFile.cpp @@ -212,10 +212,10 @@ static int ReadMpqSectors(TMPQFile * hf, LPBYTE pbBuffer, DWORD dwByteOffset, DW // Free all used buffers if(pbRawSector != NULL) STORM_FREE(pbRawSector); - + // Give the caller thenumber of bytes read *pdwBytesRead = dwBytesRead; - return nError; + return nError; } static int ReadMpqFileSingleUnit(TMPQFile * hf, void * pvBuffer, DWORD dwFilePos, DWORD dwToRead, LPDWORD pdwBytesRead) @@ -252,7 +252,7 @@ static int ReadMpqFileSingleUnit(TMPQFile * hf, void * pvBuffer, DWORD dwFilePos return ERROR_NOT_ENOUGH_MEMORY; pbRawData = pbCompressed; } - + // Load the raw (compressed, encrypted) data if(!FileStream_Read(ha->pStream, &RawFilePos, pbRawData, pFileEntry->dwCmpSize)) { @@ -285,7 +285,7 @@ static int ReadMpqFileSingleUnit(TMPQFile * hf, void * pvBuffer, DWORD dwFilePos // -------------------------------------- ---------- -------- -------- --------------- // esES\DBFilesClient\LightSkyBox.dbc 0xBE->0xA2 0xBC 0xBC Yes // deDE\DBFilesClient\MountCapability.dbc 0x93->0x77 0x77 0x77 No - // + // if(pFileEntry->dwFlags & MPQ_FILE_PATCH_FILE) cbInBuffer = cbInBuffer - sizeof(TPatchInfo); @@ -383,7 +383,7 @@ static int ReadMpkFileSingleUnit(TMPQFile * hf, void * pvBuffer, DWORD dwFilePos return ERROR_NOT_ENOUGH_MEMORY; pbRawData = pbCompressed; } - + // Load the raw (compressed, encrypted) data if(!FileStream_Read(ha->pStream, &RawFilePos, pbRawData, pFileEntry->dwCmpSize)) { @@ -485,7 +485,7 @@ static int ReadMpqFileSectorFile(TMPQFile * hf, void * pvBuffer, DWORD dwFilePos { DWORD dwBytesInSector = ha->dwSectorSize; DWORD dwBufferOffs = dwFilePos & dwSectorSizeMask; - DWORD dwToCopy; + DWORD dwToCopy; // Is the file sector already loaded ? if(hf->dwSectorOffs != dwFileSectorPos) @@ -559,7 +559,7 @@ static int ReadMpqFileSectorFile(TMPQFile * hf, void * pvBuffer, DWORD dwFilePos // Copy the data from the cached last sector to the caller's buffer memcpy(pbBuffer, hf->pbFileSector, dwToCopy); - + // Update pointers dwTotalBytesRead += dwToCopy; } @@ -717,7 +717,7 @@ bool WINAPI SFileReadFile(HANDLE hFile, void * pvBuffer, DWORD dwToRead, LPDWORD nError = ReadMpkFileSingleUnit(hf, pvBuffer, hf->dwFilePos, dwToRead, &dwBytesRead); } - // If the file is single unit file, redirect it to read file + // If the file is single unit file, redirect it to read file else if(hf->pFileEntry->dwFlags & MPQ_FILE_SINGLE_UNIT) { nError = ReadMpqFileSingleUnit(hf, pvBuffer, hf->dwFilePos, dwToRead, &dwBytesRead); @@ -837,7 +837,7 @@ DWORD WINAPI SFileSetFilePointer(HANDLE hFile, LONG lFilePos, LONG * plFilePosHi break; case FILE_CURRENT: - + // Retrieve the current file position if(hf->pStream != NULL) { diff --git a/src/SFileVerify.cpp b/src/SFileVerify.cpp index 3ceecb9..7e8848f 100644 --- a/src/SFileVerify.cpp +++ b/src/SFileVerify.cpp @@ -216,7 +216,7 @@ static bool CalculateMpqHashMd5( if(dwToRead == 0)
break;
- // Read the next chunk
+ // Read the next chunk
if(!FileStream_Read(ha->pStream, &BeginBuffer, pbDigestBuffer, dwToRead))
{
STORM_FREE(pbDigestBuffer);
@@ -312,7 +312,7 @@ static bool CalculateMpqHashSha1( if(dwToRead == 0)
break;
- // Read the next chunk
+ // Read the next chunk
if(!FileStream_Read(ha->pStream, &BeginBuffer, pbDigestBuffer, dwToRead))
{
STORM_FREE(pbDigestBuffer);
@@ -482,7 +482,7 @@ static DWORD VerifyStrongSignatureWithKey( // Verify the signature
if(rsa_verify_simple(reversed_signature, MPQ_STRONG_SIGNATURE_SIZE, padded_digest, MPQ_STRONG_SIGNATURE_SIZE, &result, &key) != CRYPT_OK)
return ERROR_VERIFY_FAILED;
-
+
// Free the key and return result
rsa_free(&key);
return result ? ERROR_STRONG_SIGNATURE_OK : ERROR_STRONG_SIGNATURE_ERROR;
@@ -639,7 +639,7 @@ static DWORD VerifyFile( // Update CRC32 value
if(dwFlags & SFILE_VERIFY_FILE_CRC)
dwCrc32 = crc32(dwCrc32, Buffer, dwBytesRead);
-
+
// Update MD5 value
if(dwFlags & SFILE_VERIFY_FILE_MD5)
md5_process(&md5_state, Buffer, dwBytesRead);
@@ -714,7 +714,7 @@ static DWORD VerifyFile( if(pdwCrc32 != NULL)
*pdwCrc32 = dwCrc32;
if(pMD5 != NULL)
- memcpy(pMD5, md5, MD5_DIGEST_SIZE);
+ memcpy(pMD5, md5, MD5_DIGEST_SIZE);
return dwVerifyResult;
}
@@ -853,7 +853,7 @@ int SSignFileFinish(TMPQArchive * ha) // Sign the hash
memset(WeakSignature, 0, sizeof(WeakSignature));
rsa_sign_hash_ex(Md5Digest, sizeof(Md5Digest), WeakSignature + 8, &signature_len, LTC_LTC_PKCS_1_V1_5, 0, 0, hash_idx, 0, &key);
- memrev(WeakSignature + 8, MPQ_WEAK_SIGNATURE_SIZE);
+ memrev(WeakSignature + 8, MPQ_WEAK_SIGNATURE_SIZE);
rsa_free(&key);
// Write the signature to the MPQ. Don't use SFile* functions, but write the hash directly
@@ -922,7 +922,7 @@ int WINAPI SFileVerifyRawData(HANDLE hMpq, DWORD dwWhatToVerify, const char * sz switch(dwWhatToVerify)
{
case SFILE_VERIFY_MPQ_HEADER:
-
+
// Only if the header is of version 4 or newer
if(pHeader->dwHeaderSize >= (MPQ_HEADER_SIZE_V4 - MD5_DIGEST_SIZE))
return VerifyRawMpqData(ha, 0, MPQ_HEADER_SIZE_V4 - MD5_DIGEST_SIZE);
diff --git a/src/StormCommon.h b/src/StormCommon.h index 2d51d92..1167d29 100644 --- a/src/StormCommon.h +++ b/src/StormCommon.h @@ -86,7 +86,7 @@ typedef enum _MTYPE // Size of each signature type
#define MPQ_WEAK_SIGNATURE_SIZE 64
-#define MPQ_STRONG_SIGNATURE_SIZE 256
+#define MPQ_STRONG_SIGNATURE_SIZE 256
#define MPQ_STRONG_SIGNATURE_ID 0x5349474E // ID of the strong signature ("NGIS")
#define MPQ_SIGNATURE_FILE_SIZE (MPQ_WEAK_SIGNATURE_SIZE + 8)
diff --git a/src/StormLib.h b/src/StormLib.h index f254290..4d9066d 100644 --- a/src/StormLib.h +++ b/src/StormLib.h @@ -79,9 +79,9 @@ #define __STORMLIB_H__ #ifdef _MSC_VER -#pragma warning(disable:4668) // 'XXX' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' +#pragma warning(disable:4668) // 'XXX' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' #pragma warning(disable:4820) // 'XXX' : '2' bytes padding added after data member 'XXX::yyy' -#endif +#endif #include "StormPort.h" @@ -94,7 +94,7 @@ extern "C" { // // The library type is encoded in the library name as the following // StormLibXYZ.lib -// +// // X - D for Debug version, R for Release version // Y - A for ANSI version, U for Unicode version // Z - S for static-linked CRT library, D for multithreaded DLL CRT library @@ -107,30 +107,30 @@ extern "C" { #if defined(_MSC_VER) && !defined(STORMLIB_NO_AUTO_LINK) #ifndef WDK_BUILD #ifdef _DEBUG // DEBUG VERSIONS - #ifndef _UNICODE - #ifdef _DLL + #ifndef _UNICODE + #ifdef _DLL #pragma comment(lib, "StormLibDAD.lib") // Debug Ansi CRT-DLL version - #else + #else #pragma comment(lib, "StormLibDAS.lib") // Debug Ansi CRT-LIB version #endif #else - #ifdef _DLL + #ifdef _DLL #pragma comment(lib, "StormLibDUD.lib") // Debug Unicode CRT-DLL version - #else + #else #pragma comment(lib, "StormLibDUS.lib") // Debug Unicode CRT-LIB version #endif #endif #else // RELEASE VERSIONS - #ifndef _UNICODE + #ifndef _UNICODE #ifdef _DLL #pragma comment(lib, "StormLibRAD.lib") // Release Ansi CRT-DLL version - #else + #else #pragma comment(lib, "StormLibRAS.lib") // Release Ansi CRT-LIB version #endif #else #ifdef _DLL #pragma comment(lib, "StormLibRUD.lib") // Release Unicode CRT-DLL version - #else + #else #pragma comment(lib, "StormLibRUS.lib") // Release Unicode CRT-LIB version #endif #endif @@ -215,7 +215,7 @@ extern "C" { // Flags for SFileAddFile #define MPQ_FILE_IMPLODE 0x00000100 // Implode method (By PKWARE Data Compression Library) #define MPQ_FILE_COMPRESS 0x00000200 // Compress methods (By multiple methods) -#define MPQ_FILE_ENCRYPTED 0x00010000 // Indicates whether file is encrypted +#define MPQ_FILE_ENCRYPTED 0x00010000 // Indicates whether file is encrypted #define MPQ_FILE_FIX_KEY 0x00020000 // File decryption key has to be fixed #define MPQ_FILE_PATCH_FILE 0x00100000 // The file is a patch file. Raw file data begin with TPatchInfo structure #define MPQ_FILE_SINGLE_UNIT 0x01000000 // File is stored as a single unit, rather than split into sectors (Thx, Quantam) @@ -287,7 +287,7 @@ extern "C" { #define PATCH_METADATA_NAME "(patch_metadata)" #define MPQ_FORMAT_VERSION_1 0 // Up to The Burning Crusade -#define MPQ_FORMAT_VERSION_2 1 // The Burning Crusade and newer +#define MPQ_FORMAT_VERSION_2 1 // The Burning Crusade and newer #define MPQ_FORMAT_VERSION_3 2 // WoW Cataclysm Beta #define MPQ_FORMAT_VERSION_4 3 // WoW Cataclysm and newer @@ -382,7 +382,7 @@ extern "C" { #define ERROR_WEAK_SIGNATURE_ERROR 3 // There is a weak signature but sign check failed #define ERROR_STRONG_SIGNATURE_OK 4 // There is a strong signature and sign check passed #define ERROR_STRONG_SIGNATURE_ERROR 5 // There is a strong signature but sign check failed - + #ifndef MD5_DIGEST_SIZE #define MD5_DIGEST_SIZE 0x10 #endif @@ -474,7 +474,7 @@ typedef enum _SFileInfoClass #define CCB_COPYING_NON_MPQ_DATA 3 // Copying non-MPQ data: No params used #define CCB_COMPACTING_FILES 4 // Compacting archive (dwParam1 = current, dwParam2 = total) #define CCB_CLOSING_ARCHIVE 5 // Closing archive: No params used - + typedef void (WINAPI * SFILE_DOWNLOAD_CALLBACK)(void * pvUserData, ULONGLONG ByteOffset, DWORD dwTotalBytes); typedef void (WINAPI * SFILE_ADDFILE_CALLBACK)(void * pvUserData, DWORD dwBytesWritten, DWORD dwTotalBytes, bool bFinalCall); typedef void (WINAPI * SFILE_COMPACT_CALLBACK)(void * pvUserData, DWORD dwWorkType, ULONGLONG BytesProcessed, ULONGLONG TotalBytes); @@ -545,14 +545,14 @@ typedef struct _TMPQHeader // Offset to the beginning of the hash table, relative to the beginning of the archive. DWORD dwHashTablePos; - + // Offset to the beginning of the block table, relative to the beginning of the archive. DWORD dwBlockTablePos; - + // Number of entries in the hash table. Must be a power of two, and must be less than 2^16 for // the original MoPaQ format, or less than 2^20 for the Burning Crusade format. DWORD dwHashTableSize; - + // Number of entries in the block table DWORD dwBlockTableSize; @@ -597,7 +597,7 @@ typedef struct _TMPQHeader // Size of raw data chunk to calculate MD5. // MD5 of each data chunk follows the raw file data. - DWORD dwRawChunkSize; + DWORD dwRawChunkSize; // MD5 of MPQ tables unsigned char MD5_BlockTable[MD5_DIGEST_SIZE]; // MD5 of the block table before decryption @@ -614,7 +614,7 @@ typedef struct _TMPQHash { // The hash of the file path, using method A. DWORD dwName1; - + // The hash of the file path, using method B. DWORD dwName2; @@ -651,16 +651,16 @@ typedef struct _TMPQBlock { // Offset of the beginning of the file, relative to the beginning of the archive. DWORD dwFilePos; - + // Compressed file size DWORD dwCSize; - + // Only valid if the block is a file; otherwise meaningless, and should be 0. // If the file is compressed, this is the size of the uncompressed file data. - DWORD dwFSize; - + DWORD dwFSize; + // Flags for the file. See MPQ_FILE_XXXX constants - DWORD dwFlags; + DWORD dwFlags; } TMPQBlock; // Patch file information, preceding the sector offset table @@ -825,7 +825,7 @@ typedef struct _TMPQArchive TMPQHetTable * pHetTable; // HET table TFileEntry * pFileTable; // File table HASH_STRING pfnHashString; // Hashing function that will convert the file name into hash - + TMPQUserData UserData; // MPQ user data. Valid only when ID_MPQ_USERDATA has been found DWORD HeaderData[MPQ_HEADER_DWORDS]; // Storage for MPQ header @@ -849,7 +849,7 @@ typedef struct _TMPQArchive ULONGLONG CompactBytesProcessed; // Amount of bytes that have been processed during a particular compact call ULONGLONG CompactTotalBytes; // Total amount of bytes to be compacted void * pvCompactUserData; // User data thats passed to the callback -} TMPQArchive; +} TMPQArchive; // File handle structure typedef struct _TMPQFile @@ -1075,8 +1075,8 @@ bool WINAPI SFileWriteFile(HANDLE hFile, const void * pvData, DWORD dwSize, DW bool WINAPI SFileFinishFile(HANDLE hFile); bool WINAPI SFileAddFileEx(HANDLE hMpq, const TCHAR * szFileName, const char * szArchivedName, DWORD dwFlags, DWORD dwCompression, DWORD dwCompressionNext = MPQ_COMPRESSION_NEXT_SAME); -bool WINAPI SFileAddFile(HANDLE hMpq, const TCHAR * szFileName, const char * szArchivedName, DWORD dwFlags); -bool WINAPI SFileAddWave(HANDLE hMpq, const TCHAR * szFileName, const char * szArchivedName, DWORD dwFlags, DWORD dwQuality); +bool WINAPI SFileAddFile(HANDLE hMpq, const TCHAR * szFileName, const char * szArchivedName, DWORD dwFlags); +bool WINAPI SFileAddWave(HANDLE hMpq, const TCHAR * szFileName, const char * szArchivedName, DWORD dwFlags, DWORD dwQuality); bool WINAPI SFileRemoveFile(HANDLE hMpq, const char * szFileName, DWORD dwSearchScope); bool WINAPI SFileRenameFile(HANDLE hMpq, const char * szOldFileName, const char * szNewFileName); bool WINAPI SFileSetFileLocale(HANDLE hFile, LCID lcNewLocale); diff --git a/src/adpcm/adpcm.cpp b/src/adpcm/adpcm.cpp index c8086ab..fb0efbf 100644 --- a/src/adpcm/adpcm.cpp +++ b/src/adpcm/adpcm.cpp @@ -108,7 +108,7 @@ class TADPCMStream unsigned char * pbBufferEnd; unsigned char * pbBuffer; -}; +}; //---------------------------------------------------------------------------- // Local functions @@ -215,7 +215,7 @@ int CompressADPCM(void * pvOutBuffer, int cbOutBuffer, void * pvInBuffer, int cb // Get the initial index ChannelIndex = ChannelCount - 1; - + // Now keep reading the input data as long as there is something in the input buffer while(is.ReadWordSample(InputSample)) { @@ -240,7 +240,7 @@ int CompressADPCM(void * pvOutBuffer, int cbOutBuffer, void * pvInBuffer, int cb { if(StepIndexes[ChannelIndex] != 0) StepIndexes[ChannelIndex]--; - + os.WriteByteSample(0x80); } else @@ -284,7 +284,7 @@ int CompressADPCM(void * pvOutBuffer, int cbOutBuffer, void * pvInBuffer, int cb // Write the encoded sample to the output stream if(!os.WriteByteSample((unsigned char)EncodedSample)) break; - + // Calculates the step index to use for the next encode StepIndexes[ChannelIndex] = GetNextStepIndex(StepIndexes[ChannelIndex], EncodedSample); } @@ -377,7 +377,7 @@ int DecompressADPCM(void * pvOutBuffer, int cbOutBuffer, void * pvInBuffer, int // Encode one sample PredictedSamples[ChannelIndex] = (short)DecodeSample(PredictedSamples[ChannelIndex], - EncodedSample, + EncodedSample, StepSize, StepSize >> BitShift); diff --git a/src/huffman/huff.cpp b/src/huffman/huff.cpp index fa0964d..6930354 100644 --- a/src/huffman/huff.cpp +++ b/src/huffman/huff.cpp @@ -15,10 +15,10 @@ /* 08.12.03 2.01 Dan High-memory handling (> 0x80000000) */ /* 09.01.13 3.00 Lad Refactored, beautified, documented :-) */ /*****************************************************************************/ - + #include <assert.h> #include <string.h> - + #include "huff.h" //----------------------------------------------------------------------------- @@ -67,7 +67,7 @@ static unsigned char ByteToWeight_01[] = 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x01, 0x01, 0x02, 0x02, 0x02, 0x06, 0x4B, 0x00, 0x00 }; - + // Data for compression type 0x02 static unsigned char ByteToWeight_02[] = { @@ -89,7 +89,7 @@ static unsigned char ByteToWeight_02[] = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - + // Data for compression type 0x03 static unsigned char ByteToWeight_03[] = { @@ -111,7 +111,7 @@ static unsigned char ByteToWeight_03[] = 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x11, 0x00, 0x00 }; - + // Data for compression type 0x04 static unsigned char ByteToWeight_04[] = { @@ -133,7 +133,7 @@ static unsigned char ByteToWeight_04[] = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - + // Data for compression type 0x05 static unsigned char ByteToWeight_05[] = { @@ -155,7 +155,7 @@ static unsigned char ByteToWeight_05[] = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - + // Data for compression type 0x06 static unsigned char ByteToWeight_06[] = { @@ -177,7 +177,7 @@ static unsigned char ByteToWeight_06[] = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - + // Data for compression type 0x07 static unsigned char ByteToWeight_07[] = { @@ -199,7 +199,7 @@ static unsigned char ByteToWeight_07[] = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - + // Data for compression type 0x08 static unsigned char ByteToWeight_08[] = { @@ -235,7 +235,7 @@ static unsigned char * WeightTables[0x09] = ByteToWeight_08 }; -//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- // Debug/diagnostics #ifdef _DEBUG @@ -306,7 +306,7 @@ unsigned int TInputStream::Get1Bit() BitCount--; return OneBit; -} +} // Gets the whole byte from the input stream. unsigned int TInputStream::Get8Bits() @@ -363,13 +363,13 @@ void TOutputStream::PutBits(unsigned int dwValue, unsigned int nBitCount) { BitBuffer |= (dwValue << BitCount); BitCount += nBitCount; - + // Flush completed bytes while(BitCount >= 8) { if(pbOutBuffer < pbOutBufferEnd) *pbOutBuffer++ = (unsigned char)BitBuffer; - + BitBuffer >>= 8; BitCount -= 8; } @@ -402,7 +402,7 @@ void THTreeItem::RemoveItem() //----------------------------------------------------------------------------- // THuffmannTree class functions - + THuffmannTree::THuffmannTree(bool bCompression) { pFirst = pLast = LIST_HEAD(); @@ -439,7 +439,7 @@ void THuffmannTree::InsertItem(THTreeItem * pNewItem, TInsertPoint InsertPoint, { // Remove the item from the tree pNewItem->RemoveItem(); - + if(pInsertPoint == NULL) pInsertPoint = LIST_HEAD(); @@ -448,7 +448,7 @@ void THuffmannTree::InsertItem(THTreeItem * pNewItem, TInsertPoint InsertPoint, case InsertAfter: LinkTwoItems(pInsertPoint, pNewItem); return; - + case InsertBefore: pNewItem->pNext = pInsertPoint; // Set next item (or pointer to pointer to first item) pNewItem->pPrev = pInsertPoint->pPrev; // Set prev item (or last item in the tree) @@ -495,7 +495,7 @@ THTreeItem * THuffmannTree::CreateNewItem(unsigned int DecompressedValue, unsign pNewItem->pParent = NULL; pNewItem->pChildLo = NULL; } - + return pNewItem; } @@ -529,16 +529,16 @@ bool THuffmannTree::BuildTree(unsigned int CompressionType) THTreeItem * pChildHi; unsigned char * WeightTable; unsigned int MaxWeight; // [ESP+10] - The greatest character found in table - + // Clear all pointers in HTree item array memset(ItemsByByte, 0, sizeof(ItemsByByte)); MaxWeight = 0; - + // Ensure that the compression type is in range if((CompressionType & 0x0F) > 0x08) return false; WeightTable = WeightTables[CompressionType & 0x0F]; - + // Build the linear list of entries that is sorted by byte weight for(unsigned int i = 0; i < 0x100; i++) { @@ -552,11 +552,11 @@ bool THuffmannTree::BuildTree(unsigned int CompressionType) MaxWeight = FixupItemPosByWeight(pNewItem, MaxWeight); } } - + // Insert termination entries at the end of the list ItemsByByte[0x100] = CreateNewItem(0x100, 1, InsertBefore); ItemsByByte[0x101] = CreateNewItem(0x101, 1, InsertBefore); - + // Now we need to build the tree. We start at the last entry // and go backwards to the first one pChildLo = pLast; @@ -598,7 +598,7 @@ void THuffmannTree::IncWeightsAndRebalance(THTreeItem * pItem) THTreeItem * pChildHi; // The higher-weight child THTreeItem * pChildLo; // The lower-weight child THTreeItem * pParent; - + // Climb up the tree and increment weight of each tree item for(; pItem != NULL; pItem = pItem->pParent) { @@ -615,11 +615,11 @@ void THuffmannTree::IncWeightsAndRebalance(THTreeItem * pItem) // Move the previous item to the RIGHT from the given item pChildHi->RemoveItem(); LinkTwoItems(pItem, pChildHi); - + // Move the given item AFTER the greater-weight tree item pItem->RemoveItem(); LinkTwoItems(pHigherItem, pItem); - + // We need to maintain the tree so that pChildHi->Weight is >= pChildLo->Weight. // Rebalance the tree accordingly. pChildLo = pChildHi->pParent->pChildLo; @@ -703,7 +703,7 @@ unsigned int THuffmannTree::DecodeOneByte(TInputStream * is) // Get the eventual quick-link index ItemLinkIndex = is->Peek7Bits(); - + // Is the quick-link item valid? if(QuickLinks[ItemLinkIndex].ValidValue > MinValidValue) { @@ -783,14 +783,14 @@ unsigned int THuffmannTree::Compress(TOutputStream * os, void * pvInBuffer, int unsigned char * pbInBuffer = (unsigned char *)pvInBuffer; unsigned char * pbOutBuff = os->pbOutBuffer; unsigned char InputByte; - + if(!BuildTree(CompressionType)) return 0; bIsCmp0 = (CompressionType == 0); // Store the compression type into output buffer os->PutBits(CompressionType, 8); - + // Process the entire input buffer while(pbInBuffer < pbInBufferEnd) { @@ -802,10 +802,10 @@ unsigned int THuffmannTree::Compress(TOutputStream * os, void * pvInBuffer, int { // Encode the relationship EncodeOneByte(os, ItemsByByte[0x101]); - + // Store the loaded byte into output stream os->PutBits(InputByte, 8); - + if(!InsertNewBranchAndRebalance(pLast->DecompressedValue, InputByte)) return 0; @@ -814,28 +814,28 @@ unsigned int THuffmannTree::Compress(TOutputStream * os, void * pvInBuffer, int IncWeightsAndRebalance(ItemsByByte[InputByte]); continue; } - + IncWeightsAndRebalance(ItemsByByte[InputByte]); } else { EncodeOneByte(os, ItemsByByte[InputByte]); } - + if(bIsCmp0) { IncWeightsAndRebalance(ItemsByByte[InputByte]); } } - + // Put the termination mark to the compressed stream EncodeOneByte(os, ItemsByByte[0x100]); - + // Flush the remaining bits os->Flush(); return (unsigned int)(os->pbOutBuffer - pbOutBuff); } - + // Decompression using Huffman tree (1500E450) unsigned int THuffmannTree::Decompress(void * pvOutBuffer, unsigned int cbOutLength, TInputStream * is) { @@ -843,19 +843,19 @@ unsigned int THuffmannTree::Decompress(void * pvOutBuffer, unsigned int cbOutLen unsigned char * pbOutBuffer = (unsigned char *)pvOutBuffer; unsigned int DecompressedValue = 0; unsigned int CompressionType = 0; - + // Test the output length. Must not be NULL. if(cbOutLength == 0) return 0; - + // Get the compression type from the input stream CompressionType = is->Get8Bits(); bIsCmp0 = (CompressionType == 0) ? 1 : 0; - + // Build the Huffman tree if(!BuildTree(CompressionType)) return 0; - + // Process the entire input buffer until end of the stream while((DecompressedValue = DecodeOneByte(is)) != 0x100) { @@ -875,18 +875,18 @@ unsigned int THuffmannTree::Decompress(void * pvOutBuffer, unsigned int cbOutLen if(bIsCmp0 == 0) IncWeightsAndRebalance(ItemsByByte[DecompressedValue]); } - + // A byte successfully decoded - store it in the output stream *pbOutBuffer++ = (unsigned char)DecompressedValue; if(pbOutBuffer >= pbOutBufferEnd) break; - + if(bIsCmp0) { IncWeightsAndRebalance(ItemsByByte[DecompressedValue]); } } - + return (unsigned int)(pbOutBuffer - (unsigned char *)pvOutBuffer); } diff --git a/src/huffman/huff.h b/src/huffman/huff.h index d2c3e3e..b75acbb 100644 --- a/src/huffman/huff.h +++ b/src/huffman/huff.h @@ -9,13 +9,13 @@ /* 03.05.03 2.00 Lad Added compression */ /* 08.12.03 2.01 Dan High-memory handling (> 0x80000000) */ /*****************************************************************************/ - + #ifndef __HUFFMAN_H__ #define __HUFFMAN_H__ //----------------------------------------------------------------------------- // Defines - + #define HUFF_ITEM_COUNT 0x203 // Number of items in the item pool #define LINK_ITEM_COUNT 0x80 // Maximum number of quick-link items @@ -32,23 +32,23 @@ class TInputStream unsigned int Peek7Bits(); unsigned int Get8Bits(); void SkipBits(unsigned int BitCount); - + unsigned char * pbInBufferEnd; // End position in the the input buffer unsigned char * pbInBuffer; // Current position in the the input buffer unsigned int BitBuffer; // Input bit buffer unsigned int BitCount; // Number of bits remaining in 'dwBitBuff' }; - + // Output stream for Huffmann compression class TOutputStream { public: - + TOutputStream(void * pvOutBuffer, size_t cbOutLength); void PutBits(unsigned int dwValue, unsigned int nBitCount); void Flush(); - + unsigned char * pbOutBufferEnd; // End position in the output buffer unsigned char * pbOutBuffer; // Current position in the output buffer unsigned int BitBuffer; // Bit buffer @@ -72,7 +72,7 @@ struct THTreeItem void RemoveItem(); // void RemoveEntry(); - + THTreeItem * pNext; // Pointer to lower-weight tree item THTreeItem * pPrev; // Pointer to higher-weight item unsigned int DecompressedValue; // 08 - Decompressed byte value (also index in the array) @@ -87,7 +87,7 @@ struct THTreeItem // decompressing a bit faster. Sometimes it can even get the decompressed // byte directly. struct TQuickLink -{ +{ unsigned int ValidValue; // If greater than THuffmannTree::MinValidValue, the entry is valid unsigned int ValidBits; // Number of bits that are valid for this item link union @@ -96,7 +96,7 @@ struct TQuickLink unsigned int DecompressedValue; // Value for direct decompression }; }; - + // Structure for Huffman tree (Size 0x3674 bytes). Because I'm not expert // for the decompression, I do not know actually if the class is really a Hufmann @@ -104,7 +104,7 @@ struct TQuickLink class THuffmannTree { public: - + THuffmannTree(bool bCompression); ~THuffmannTree(); @@ -125,17 +125,17 @@ class THuffmannTree unsigned int Compress(TOutputStream * os, void * pvInBuffer, int cbInBuffer, int nCmpType); unsigned int Decompress(void * pvOutBuffer, unsigned int cbOutLength, TInputStream * is); - + THTreeItem ItemBuffer[HUFF_ITEM_COUNT]; // Buffer for tree items. No memory allocation is needed unsigned int ItemsUsed; // Number of tree items used from ItemBuffer - + // Head of the linear item list THTreeItem * pFirst; // Pointer to the highest weight item THTreeItem * pLast; // Pointer to the lowest weight item THTreeItem * ItemsByByte[0x102]; // Array of item pointers, one for each possible byte value TQuickLink QuickLinks[LINK_ITEM_COUNT]; // Array of quick-link items - + unsigned int MinValidValue; // A minimum value of TQDecompress::ValidValue to be considered valid unsigned int bIsCmp0; // 1 if compression type 0 }; diff --git a/src/pklib/explode.c b/src/pklib/explode.c index 7d63687..0f551d8 100644 --- a/src/pklib/explode.c +++ b/src/pklib/explode.c @@ -16,7 +16,7 @@ #include "pklib.h" -#define PKDCL_OK 0 +#define PKDCL_OK 0 #define PKDCL_STREAM_END 1 // All data from the input stream is read #define PKDCL_NEED_DICT 2 // Need more data (dictionary) #define PKDCL_CONTINUE 10 // Internal flag, not returned to user @@ -31,7 +31,7 @@ char CopyrightPkware[] = "PKWARE Data Compression Library for Win32\r\n" //----------------------------------------------------------------------------- // Tables -unsigned char DistBits[0x40] = +unsigned char DistBits[0x40] = { 0x02, 0x04, 0x04, 0x05, 0x05, 0x05, 0x05, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, @@ -39,7 +39,7 @@ unsigned char DistBits[0x40] = 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08 }; -unsigned char DistCode[0x40] = +unsigned char DistCode[0x40] = { 0x03, 0x0D, 0x05, 0x19, 0x09, 0x11, 0x01, 0x3E, 0x1E, 0x2E, 0x0E, 0x36, 0x16, 0x26, 0x06, 0x3A, 0x1A, 0x2A, 0x0A, 0x32, 0x12, 0x22, 0x42, 0x02, 0x7C, 0x3C, 0x5C, 0x1C, 0x6C, 0x2C, 0x4C, 0x0C, @@ -88,7 +88,7 @@ unsigned char ChBitsAsc[0x100] = 0x0D, 0x0D, 0x0C, 0x0C, 0x0C, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D }; -unsigned short ChCodeAsc[0x100] = +unsigned short ChCodeAsc[0x100] = { 0x0490, 0x0FE0, 0x07E0, 0x0BE0, 0x03E0, 0x0DE0, 0x05E0, 0x09E0, 0x01E0, 0x00B8, 0x0062, 0x0EE0, 0x06E0, 0x0022, 0x0AE0, 0x02E0, @@ -121,7 +121,7 @@ unsigned short ChCodeAsc[0x100] = 0x0300, 0x0D40, 0x1D00, 0x0D00, 0x1500, 0x0540, 0x0500, 0x1900, 0x0900, 0x0940, 0x1100, 0x0100, 0x1E00, 0x0E00, 0x0140, 0x1600, 0x0600, 0x1A00, 0x0E40, 0x0640, 0x0A40, 0x0A00, 0x1200, 0x0200, - 0x1C00, 0x0C00, 0x1400, 0x0400, 0x1800, 0x0800, 0x1000, 0x0000 + 0x1C00, 0x0C00, 0x1400, 0x0400, 0x1800, 0x0800, 0x1000, 0x0000 }; //----------------------------------------------------------------------------- @@ -278,11 +278,11 @@ static unsigned int DecodeLit(TDcmpStruct * pWork) { // Remove one bit from the input data if(WasteBits(pWork, 1)) - return 0x306; - + return 0x306; + // The next 8 bits hold the index to the length code table length_code = pWork->LengthCodes[pWork->bit_buff & 0xFF]; - + // Remove the apropriate number of bits if(WasteBits(pWork, pWork->LenBits[length_code])) return 0x306; @@ -442,7 +442,7 @@ static unsigned int Expand(TDcmpStruct * pWork) { pWork->out_buff[pWork->outputPos++] = (unsigned char)next_literal; } - + // Flush the output buffer, if number of extracted bytes has reached the end if(pWork->outputPos >= 0x2000) { @@ -495,7 +495,7 @@ unsigned int PKEXPORT explode( pWork->in_pos = 3; // Position in input buffer // Test for the valid dictionary size - if(4 > pWork->dsize_bits || pWork->dsize_bits > 6) + if(4 > pWork->dsize_bits || pWork->dsize_bits > 6) return CMP_INVALID_DICTSIZE; pWork->dsize_mask = 0xFFFF >> (0x10 - pWork->dsize_bits); // Shifted by 'sar' instruction @@ -517,6 +517,6 @@ unsigned int PKEXPORT explode( GenDecodeTabs(pWork->DistPosCodes, DistCode, pWork->DistBits, sizeof(pWork->DistBits)); if(Expand(pWork) != 0x306) return CMP_NO_ERROR; - + return CMP_ABORT; } diff --git a/src/pklib/implode.c b/src/pklib/implode.c index f34eb22..90cb482 100644 --- a/src/pklib/implode.c +++ b/src/pklib/implode.c @@ -50,7 +50,7 @@ static void SortBuffer(TCmpStruct * pWork, unsigned char * buffer_begin, unsigne // Zero the entire "phash_to_index" table memset(pWork->phash_to_index, 0, sizeof(pWork->phash_to_index)); - + // Step 1: Count amount of each PAIR_HASH in the input buffer // The table will look like this: // offs 0x000: Number of occurences of PAIR_HASH 0 @@ -60,7 +60,7 @@ static void SortBuffer(TCmpStruct * pWork, unsigned char * buffer_begin, unsigne for(buffer_ptr = buffer_begin; buffer_ptr < buffer_end; buffer_ptr++) pWork->phash_to_index[BYTE_PAIR_HASH(buffer_ptr)]++; - // Step 2: Convert the table to the array of PAIR_HASH amounts. + // Step 2: Convert the table to the array of PAIR_HASH amounts. // Each element contains count of PAIR_HASHes that is less or equal // to element index // The table will look like this: @@ -128,7 +128,7 @@ static void OutputBits(TCmpStruct * pWork, unsigned int nbits, unsigned long bit { pWork->out_bytes++; bit_buff >>= (8 - out_bits); - + pWork->out_buff[pWork->out_bytes] = (unsigned char)bit_buff; pWork->out_bits &= 7; } @@ -146,7 +146,7 @@ static void OutputBits(TCmpStruct * pWork, unsigned int nbits, unsigned long bit // This function searches for a repetition // (a previous occurence of the current byte sequence) -// Returns length of the repetition, and stores the backward distance +// Returns length of the repetition, and stores the backward distance // to pWork structure. static unsigned int FindRep(TCmpStruct * pWork, unsigned char * input_data) { @@ -187,7 +187,7 @@ static unsigned int FindRep(TCmpStruct * pWork, unsigned char * input_data) phash_offs = pWork->phash_offs + phash_offs_index; prev_repetition = pWork->work_buff + phash_offs[0]; repetition_limit = input_data - 1; - + // If the current PAIR_HASH was not encountered before, // we haven't found a repetition. if(prev_repetition >= repetition_limit) @@ -213,7 +213,7 @@ static unsigned int FindRep(TCmpStruct * pWork, unsigned char * input_data) { prev_repetition++; input_data_ptr++; - + // Are the bytes different ? if(*prev_repetition != *input_data_ptr) break; @@ -309,7 +309,7 @@ static unsigned int FindRep(TCmpStruct * pWork, unsigned char * input_data) pWork->offs09BC[++offs_in_rep] = ++di_val; } - // + // // Now go through all the repetitions from the first found one // to the current input data, and check if any of them migh be // a start of a greater sequence match. @@ -318,7 +318,7 @@ static unsigned int FindRep(TCmpStruct * pWork, unsigned char * input_data) prev_repetition = pWork->work_buff + phash_offs[0]; prev_rep_end = prev_repetition + rep_length; rep_length2 = rep_length; - + for(;;) { rep_length2 = pWork->offs09BC[rep_length2]; @@ -412,7 +412,7 @@ static void WriteCmpData(TCmpStruct * pWork) unsigned int save_rep_length; // Saved length of current repetition unsigned int save_distance = 0; // Saved distance of current repetition unsigned int rep_length; // Length of the found repetition - unsigned int phase = 0; // + unsigned int phase = 0; // // Store the compression type and dictionary size pWork->out_buff[0] = (char)pWork->ctype; @@ -452,12 +452,12 @@ static void WriteCmpData(TCmpStruct * pWork) input_data_end = pWork->work_buff + pWork->dsize_bytes + total_loaded; if(input_data_ended) input_data_end += 0x204; - + // // Warning: The end of the buffer passed to "SortBuffer" is actually 2 bytes beyond // valid data. It is questionable if this is actually a bug or not, // but it might cause the compressed data output to be dependent on random bytes - // that are in the buffer. + // that are in the buffer. // To prevent that, the calling application must always zero the compression // buffer before passing it to "implode" // @@ -466,7 +466,7 @@ static void WriteCmpData(TCmpStruct * pWork) // previously compressed data, if any. switch(phase) { - case 0: + case 0: SortBuffer(pWork, input_data, input_data_end + 1); phase++; if(pWork->dsize_bytes != 0x1000) diff --git a/src/pklib/pklib.h b/src/pklib/pklib.h index 6f7e933..d9b2a70 100644 --- a/src/pklib/pklib.h +++ b/src/pklib/pklib.h @@ -32,7 +32,7 @@ #ifndef PKEXPORT #ifdef WIN32 -#define PKEXPORT __cdecl // Use for normal __cdecl calling +#define PKEXPORT __cdecl // Use for normal __cdecl calling #else #define PKEXPORT #endif @@ -45,7 +45,7 @@ typedef struct { unsigned int distance; // 0000: Backward distance of the currently found repetition, decreased by 1 - unsigned int out_bytes; // 0004: # bytes available in out_buff + unsigned int out_bytes; // 0004: # bytes available in out_buff unsigned int out_bits; // 0008: # of bits available in the last out byte unsigned int dsize_bits; // 000C: Number of bits needed for dictionary size. 4 = 0x400, 5 = 0x800, 6 = 0x1000 unsigned int dsize_mask; // 0010: Bit mask for dictionary. 0x0F = 0x400, 0x1F = 0x800, 0x3F = 0x1000 @@ -55,14 +55,14 @@ typedef struct unsigned char dist_codes[0x40]; // 005C: Distance codes unsigned char nChBits[0x306]; // 009C: Table of literal bit lengths to be put to the output stream unsigned short nChCodes[0x306]; // 03A2: Table of literal codes to be put to the output stream - unsigned short offs09AE; // 09AE: + unsigned short offs09AE; // 09AE: void * param; // 09B0: User parameter unsigned int (*read_buf)(char *buf, unsigned int *size, void *param); // 9B4 void (*write_buf)(char *buf, unsigned int *size, void *param); // 9B8 unsigned short offs09BC[0x204]; // 09BC: - unsigned long offs0DC4; // 0DC4: + unsigned long offs0DC4; // 0DC4: unsigned short phash_to_index[0x900]; // 0DC8: Array of indexes (one for each PAIR_HASH) to the "pair_hash_offsets" table unsigned short phash_to_index_end; // 1FC8: End marker for "phash_to_index" table char out_buff[0x802]; // 1FCA: Compressed data @@ -99,15 +99,15 @@ typedef struct unsigned char in_buff[0x800]; // 2234: Buffer for data to be decompressed unsigned char DistPosCodes[0x100]; // 2A34: Table of distance position codes unsigned char LengthCodes[0x100]; // 2B34: Table of length codes - unsigned char offs2C34[0x100]; // 2C34: Buffer for - unsigned char offs2D34[0x100]; // 2D34: Buffer for - unsigned char offs2E34[0x80]; // 2E34: Buffer for - unsigned char offs2EB4[0x100]; // 2EB4: Buffer for - unsigned char ChBitsAsc[0x100]; // 2FB4: Buffer for + unsigned char offs2C34[0x100]; // 2C34: Buffer for + unsigned char offs2D34[0x100]; // 2D34: Buffer for + unsigned char offs2E34[0x80]; // 2E34: Buffer for + unsigned char offs2EB4[0x100]; // 2EB4: Buffer for + unsigned char ChBitsAsc[0x100]; // 2FB4: Buffer for unsigned char DistBits[0x40]; // 30B4: Numbers of bytes to skip copied block length unsigned char LenBits[0x10]; // 30F4: Numbers of bits for skip copied block length unsigned char ExLenBits[0x10]; // 3104: Number of valid bits for copied block - unsigned short LenBase[0x10]; // 3114: Buffer for + unsigned short LenBase[0x10]; // 3114: Buffer for } TDcmpStruct; #define EXP_BUFFER_SIZE sizeof(TDcmpStruct) // Size of decompression structure diff --git a/src/resource.h b/src/resource.h index c94b06b..8821947 100644 --- a/src/resource.h +++ b/src/resource.h @@ -4,7 +4,7 @@ // // Next default values for new objects -// +// #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 101 diff --git a/src/sparse/sparse.cpp b/src/sparse/sparse.cpp index 4fe0981..6d1b621 100644 --- a/src/sparse/sparse.cpp +++ b/src/sparse/sparse.cpp @@ -14,10 +14,10 @@ /* 19.11.03 1.01 Dan Big endian handling */ /* 08.12.03 2.01 Dan High-memory handling (> 0x80000000) */ /*****************************************************************************/ - + #include <assert.h> #include <string.h> - + #include "sparse.h" //----------------------------------------------------------------------------- @@ -88,7 +88,7 @@ void CompressSparse(void * pvOutBuffer, int * pcbOutBuffer, void * pvInBuffer, i // Put marker that means "0x80 of nonzeros" *pbOutBuffer++ = 0xFF; memcpy(pbOutBuffer, pbInBuffer, 0x80); - + // Adjust counter of nonzeros and both pointers NumberOfNonZeros -= 0x80; pbOutBuffer += 0x80; @@ -108,7 +108,7 @@ void CompressSparse(void * pvOutBuffer, int * pcbOutBuffer, void * pvInBuffer, i // Put marker that means "1 nonzero byte" *pbOutBuffer++ = 0x80; memcpy(pbOutBuffer, pbInBuffer, 1); - + // Adjust counter of nonzeros and both pointers NumberOfNonZeros--; pbOutBuffer++; @@ -171,7 +171,7 @@ void CompressSparse(void * pvOutBuffer, int * pcbOutBuffer, void * pvInBuffer, i // Put marker that means "Several zeros" *pbOutBuffer++ = (unsigned char)(NumberOfZeros - 3); - + // Adjust pointer pbInBuffer += NumberOfZeros; } @@ -196,7 +196,7 @@ void CompressSparse(void * pvOutBuffer, int * pcbOutBuffer, void * pvInBuffer, i // Terminate with a marker that means "0x80 of nonzeros" *pbOutBuffer++ = 0xFF; memcpy(pbOutBuffer, pbInBuffer, NumberOfNonZeros); - + // Adjust pointer pbOutBuffer += NumberOfNonZeros; break; diff --git a/storm_dll/storm_test.cpp b/storm_dll/storm_test.cpp index 766750b..92ff061 100644 --- a/storm_dll/storm_test.cpp +++ b/storm_dll/storm_test.cpp @@ -31,11 +31,11 @@ int main() DWORD dwBytesRead = 0; if(StormOpenArchive(szArchiveName, 0, 0, &hMpq)) - { + { if(StormOpenFileEx(hMpq, "(1)TheDeathSheep.w3m", 0, &hFile)) { dwBytesRead = StormGetFileSize(hFile, NULL); - StormReadFile(hFile, Buffer, sizeof(Buffer), &dwBytesRead, NULL); + StormReadFile(hFile, Buffer, sizeof(Buffer), &dwBytesRead, NULL); StormCloseFile(hFile); } diff --git a/test/StormTest.cpp b/test/StormTest.cpp index 8f9cd71..3d92ae6 100644 --- a/test/StormTest.cpp +++ b/test/StormTest.cpp @@ -2120,7 +2120,7 @@ static DWORD TestOnLocalListFile(LPCTSTR szPlainName) // Get the full name of the local file
CreateFullPathName(szFileName1, _countof(szFileName1), szMpqSubDir, szPlainName);
-
+
// Test opening the local file
if(SFileOpenFileEx(NULL, szFileName1, SFILE_OPEN_LOCAL_FILE, &hFile))
{
@@ -2513,7 +2513,7 @@ static DWORD TestArchive( // Search the archive
dwErrCode = SearchArchive(&Logger, hMpq, dwSearchFlags, &dwFileCount, OverallMD5);
-
+
// Shall we check the file count and overall MD5?
if(dwExpectedFileCount != 0)
{
diff --git a/test/TLogHelper.cpp b/test/TLogHelper.cpp index fca85ec..cd10a3c 100644 --- a/test/TLogHelper.cpp +++ b/test/TLogHelper.cpp @@ -45,7 +45,7 @@ class TLogHelper #if defined(UNICODE) || defined(UNICODE)
TCHAR * CopyFormatCharacter(TCHAR * szBuffer, const TCHAR *& szFormat);
-#endif
+#endif
char * CopyFormatCharacter(char * szBuffer, const char *& szFormat);
int GetConsoleWidth();
@@ -73,7 +73,7 @@ class TLogHelper //-----------------------------------------------------------------------------
// Constructor and destructor
-
+
TLogHelper::TLogHelper(const char * szNewMainTitle, const TCHAR * szNewSubTitle1, const TCHAR * szNewSubTitle2)
{
@@ -168,7 +168,7 @@ int TLogHelper::PrintWithClreol(const TCHAR * szFormat, va_list argList, bool bP {
while(szMainTitle[nLength] != 0)
*szBuffer++ = szMainTitle[nLength++];
-
+
*szBuffer++ = ':';
*szBuffer++ = ' ';
}
@@ -275,7 +275,7 @@ DWORD TLogHelper::PrintWithClreol(const char * szFormat, va_list argList, bool b {
while(szMainTitle[nLength] != 0)
*szBuffer++ = (char)szMainTitle[nLength++];
-
+
*szBuffer++ = ':';
*szBuffer++ = ' ';
}
|