aboutsummaryrefslogtreecommitdiff
path: root/src/StormLib.h
diff options
context:
space:
mode:
authorLadislav Zezula <zezula@volny.cz>2020-10-26 08:12:25 +0100
committerGitHub <noreply@github.com>2020-10-26 08:12:25 +0100
commit6e836417806d2ca6944b2565c506590d91f21d5c (patch)
treeb6352136f402f3962d8b56cca5cccd1c7346a29f /src/StormLib.h
parent7e4f377e0b45c737f26309ae602addc05c9b6b30 (diff)
parentf3560fa9af389d9b8be09b4e90f668fc22ed531f (diff)
Merge pull request #190 from ladislav-zezula/TBitArrayChangedToPrivate
Resolved name conflicts with Unreal Engine 4
Diffstat (limited to 'src/StormLib.h')
-rw-r--r--src/StormLib.h78
1 files changed, 33 insertions, 45 deletions
diff --git a/src/StormLib.h b/src/StormLib.h
index 81f8c59..4f19772 100644
--- a/src/StormLib.h
+++ b/src/StormLib.h
@@ -479,20 +479,8 @@ typedef void (WINAPI * SFILE_DOWNLOAD_CALLBACK)(void * pvUserData, ULONGLONG Byt
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);
-typedef struct TFileStream TFileStream;
-
-//-----------------------------------------------------------------------------
-// Structure for bit arrays used for HET and BET tables
-
-typedef struct _TBitArray
-{
- DWORD NumberOfBytes; // Total number of bytes in "Elements"
- DWORD NumberOfBits; // Total number of bits that are available
- BYTE Elements[1]; // Array of elements (variable length)
-} TBitArray;
-
-void GetBits(TBitArray * array, unsigned int nBitPosition, unsigned int nBitLength, void * pvBuffer, int nResultSize);
-void SetBits(TBitArray * array, unsigned int nBitPosition, unsigned int nBitLength, void * pvBuffer, int nResultSize);
+struct TFileStream;
+struct TStormBits;
//-----------------------------------------------------------------------------
// Structures related to MPQ format
@@ -630,7 +618,7 @@ typedef struct _TMPQHash
// The hash of the file path, using method B.
DWORD dwName2;
-#ifdef PLATFORM_LITTLE_ENDIAN
+#ifdef STORMLIB_LITTLE_ENDIAN
// The language of the file. This is a Windows LANGID data type, and uses the same values.
// 0 indicates the default language (American English), or that the file is language-neutral.
@@ -719,14 +707,14 @@ typedef struct _TMPQHetHeader
{
TMPQExtHeader ExtHdr;
- DWORD dwTableSize; // Size of the entire HET table, including HET_TABLE_HEADER (in bytes)
- DWORD dwEntryCount; // Number of occupied entries in the HET table
- DWORD dwTotalCount; // Total number of entries in the HET table
- DWORD dwNameHashBitSize; // Size of the name hash entry (in bits)
- DWORD dwIndexSizeTotal; // Total size of file index (in bits)
- DWORD dwIndexSizeExtra; // Extra bits in the file index
- DWORD dwIndexSize; // Effective size of the file index (in bits)
- DWORD dwIndexTableSize; // Size of the block index subtable (in bytes)
+ DWORD dwTableSize; // Size of the entire HET table, including HET_TABLE_HEADER (in bytes)
+ DWORD dwEntryCount; // Number of occupied entries in the HET table
+ DWORD dwTotalCount; // Total number of entries in the HET table
+ DWORD dwNameHashBitSize; // Size of the name hash entry (in bits)
+ DWORD dwIndexSizeTotal; // Total size of file index (in bits)
+ DWORD dwIndexSizeExtra; // Extra bits in the file index
+ DWORD dwIndexSize; // Effective size of the file index (in bits)
+ DWORD dwIndexTableSize; // Size of the block index subtable (in bytes)
} TMPQHetHeader;
@@ -735,32 +723,32 @@ typedef struct _TMPQBetHeader
{
TMPQExtHeader ExtHdr;
- DWORD dwTableSize; // Size of the entire BET table, including the header (in bytes)
- DWORD dwEntryCount; // Number of entries in the BET table. Must match HET_TABLE_HEADER::dwEntryCount
+ DWORD dwTableSize; // Size of the entire BET table, including the header (in bytes)
+ DWORD dwEntryCount; // Number of entries in the BET table. Must match HET_TABLE_HEADER::dwEntryCount
DWORD dwUnknown08;
- DWORD dwTableEntrySize; // Size of one table entry (in bits)
- DWORD dwBitIndex_FilePos; // Bit index of the file position (within the entry record)
- DWORD dwBitIndex_FileSize; // Bit index of the file size (within the entry record)
- DWORD dwBitIndex_CmpSize; // Bit index of the compressed size (within the entry record)
- DWORD dwBitIndex_FlagIndex; // Bit index of the flag index (within the entry record)
- DWORD dwBitIndex_Unknown; // Bit index of the ??? (within the entry record)
- DWORD dwBitCount_FilePos; // Bit size of file position (in the entry record)
- DWORD dwBitCount_FileSize; // Bit size of file size (in the entry record)
- DWORD dwBitCount_CmpSize; // Bit size of compressed file size (in the entry record)
- DWORD dwBitCount_FlagIndex; // Bit size of flags index (in the entry record)
- DWORD dwBitCount_Unknown; // Bit size of ??? (in the entry record)
- DWORD dwBitTotal_NameHash2; // Total bit size of the NameHash2
- DWORD dwBitExtra_NameHash2; // Extra bits in the NameHash2
- DWORD dwBitCount_NameHash2; // Effective size of NameHash2 (in bits)
- DWORD dwNameHashArraySize; // Size of NameHash2 table, in bytes
- DWORD dwFlagCount; // Number of flags in the following array
+ DWORD dwTableEntrySize; // Size of one table entry (in bits)
+ DWORD dwBitIndex_FilePos; // Bit index of the file position (within the entry record)
+ DWORD dwBitIndex_FileSize; // Bit index of the file size (within the entry record)
+ DWORD dwBitIndex_CmpSize; // Bit index of the compressed size (within the entry record)
+ DWORD dwBitIndex_FlagIndex; // Bit index of the flag index (within the entry record)
+ DWORD dwBitIndex_Unknown; // Bit index of the ??? (within the entry record)
+ DWORD dwBitCount_FilePos; // Bit size of file position (in the entry record)
+ DWORD dwBitCount_FileSize; // Bit size of file size (in the entry record)
+ DWORD dwBitCount_CmpSize; // Bit size of compressed file size (in the entry record)
+ DWORD dwBitCount_FlagIndex; // Bit size of flags index (in the entry record)
+ DWORD dwBitCount_Unknown; // Bit size of ??? (in the entry record)
+ DWORD dwBitTotal_NameHash2; // Total bit size of the NameHash2
+ DWORD dwBitExtra_NameHash2; // Extra bits in the NameHash2
+ DWORD dwBitCount_NameHash2; // Effective size of NameHash2 (in bits)
+ DWORD dwNameHashArraySize; // Size of NameHash2 table, in bytes
+ DWORD dwFlagCount; // Number of flags in the following array
} TMPQBetHeader;
// Structure for parsed HET table
typedef struct _TMPQHetTable
{
- TBitArray * pBetIndexes; // Bit array of FileIndex values
+ TStormBits * pBetIndexes; // Bit array of FileIndex values
LPBYTE pNameHashes; // Array of NameHash1 values (NameHash1 = upper 8 bits of FileName hashe)
ULONGLONG AndMask64; // AND mask used for calculating file name hash
ULONGLONG OrMask64; // OR mask used for setting the highest bit of the file name hash
@@ -776,8 +764,8 @@ typedef struct _TMPQHetTable
// Structure for parsed BET table
typedef struct _TMPQBetTable
{
- TBitArray * pNameHashes; // Array of NameHash2 entries (lower 24 bits of FileName hash)
- TBitArray * pFileTable; // Bit-based file table
+ TStormBits * pNameHashes; // Array of NameHash2 entries (lower 24 bits of FileName hash)
+ TStormBits * pFileTable; // Bit-based file table
LPDWORD pFileFlags; // Array of file flags
DWORD dwTableEntrySize; // Size of one table entry, in bits
@@ -1104,7 +1092,7 @@ int WINAPI SCompDecompress2(void * pvOutBuffer, int * pcbOutBuffer, void * pv
//-----------------------------------------------------------------------------
// Non-Windows support for SetLastError/GetLastError
-#ifndef PLATFORM_WINDOWS
+#ifndef STORMLIB_WINDOWS
void SetLastError(DWORD dwErrCode);
DWORD GetLastError();