aboutsummaryrefslogtreecommitdiff
path: root/src/SBaseDumpData.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/SBaseDumpData.cpp')
-rw-r--r--src/SBaseDumpData.cpp52
1 files changed, 36 insertions, 16 deletions
diff --git a/src/SBaseDumpData.cpp b/src/SBaseDumpData.cpp
index 7056d8b..d2b1206 100644
--- a/src/SBaseDumpData.cpp
+++ b/src/SBaseDumpData.cpp
@@ -41,6 +41,26 @@ void DumpMpqHeader(TMPQHeader * pHeader)
printf("-----------------------------------------------\n\n");
}
+void DumpHashTable(TMPQHash * pHashTable, DWORD dwHashTableSize)
+{
+ DWORD i;
+
+ if(pHashTable == NULL || dwHashTableSize == 0)
+ return;
+
+ printf("== Hash Table =================================\n");
+ for(i = 0; i < dwHashTableSize; i++)
+ {
+ printf("[%08x] %08X %08X %04X %04X %08X\n", i,
+ pHashTable[i].dwName1,
+ pHashTable[i].dwName2,
+ pHashTable[i].lcLocale,
+ pHashTable[i].wPlatform,
+ pHashTable[i].dwBlockIndex);
+ }
+ printf("-----------------------------------------------\n\n");
+}
+
void DumpHetAndBetTable(TMPQHetTable * pHetTable, TMPQBetTable * pBetTable)
{
DWORD i;
@@ -49,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 dwMaxFileCount = %08X\n", pHetTable->dwMaxFileCount);
- printf("DWORD dwHashTableSize = %08X\n", pHetTable->dwHashTableSize);
- printf("DWORD dwHashBitSize = %08X\n", pHetTable->dwHashBitSize);
printf("-----------------------------------------------\n\n");
printf("== BET Header =================================\n");
@@ -71,17 +91,17 @@ void DumpHetAndBetTable(TMPQHetTable * pHetTable, TMPQBetTable * pBetTable)
printf("DWORD dwBitCount_CmpSize = %08X\n", pBetTable->dwBitCount_CmpSize);
printf("DWORD dwBitCount_FlagIndex = %08X\n", pBetTable->dwBitCount_FlagIndex);
printf("DWORD dwBitCount_Unknown = %08X\n", pBetTable->dwBitCount_Unknown);
- printf("DWORD dwBetHashSizeTotal = %08X\n", pBetTable->dwBetHashSizeTotal);
- printf("DWORD dwBetHashSizeExtra = %08X\n", pBetTable->dwBetHashSizeExtra);
- printf("DWORD dwBetHashSize = %08X\n", pBetTable->dwBetHashSize);
- printf("DWORD dwMaxFileCount = %08X\n", pBetTable->dwMaxFileCount);
+ printf("DWORD dwBitTotal_NameHash2 = %08X\n", pBetTable->dwBitTotal_NameHash2);
+ printf("DWORD dwBitExtra_NameHash2 = %08X\n", pBetTable->dwBitExtra_NameHash2);
+ printf("DWORD dwBitCount_NameHash2 = %08X\n", pBetTable->dwBitCount_NameHash2);
+ printf("DWORD dwEntryCount = %08X\n", pBetTable->dwEntryCount);
printf("DWORD dwFlagCount = %08X\n", pBetTable->dwFlagCount);
printf("-----------------------------------------------\n\n");
printf("== HET & Bet Table ======================================================================\n\n");
printf("HetIdx HetHash BetIdx BetHash ByteOffset FileSize CmpSize FlgIdx Flags \n");
printf("------ ------- ------ ---------------- ---------------- -------- -------- ------ --------\n");
- for(i = 0; i < pHetTable->dwHashTableSize; i++)
+ for(i = 0; i < pHetTable->dwTotalCount; i++)
{
ULONGLONG ByteOffset = 0;
ULONGLONG BetHash = 0;
@@ -96,14 +116,14 @@ void DumpHetAndBetTable(TMPQHetTable * pHetTable, TMPQBetTable * pBetTable)
&dwBetIndex,
4);
- if(dwBetIndex < pHetTable->dwMaxFileCount)
+ if(dwBetIndex < pHetTable->dwTotalCount)
{
DWORD dwEntryIndex = pBetTable->dwTableEntrySize * dwBetIndex;
- GetBits(pBetTable->pBetHashes, dwBetIndex * pBetTable->dwBetHashSizeTotal,
- pBetTable->dwBetHashSize,
- &BetHash,
- 8);
+ GetBits(pBetTable->pNameHashes, dwBetIndex * pBetTable->dwBitTotal_NameHash2,
+ pBetTable->dwBitCount_NameHash2,
+ &BetHash,
+ 8);
GetBits(pBetTable->pFileTable, dwEntryIndex + pBetTable->dwBitIndex_FilePos,
pBetTable->dwBitCount_FilePos,
@@ -129,7 +149,7 @@ void DumpHetAndBetTable(TMPQHetTable * pHetTable, TMPQBetTable * pBetTable)
}
printf(" %04X %02lX %04X %016llX %016llX %08X %08X %04X %08X\n", i,
- pHetTable->pHetHashes[i],
+ pHetTable->pNameHashes[i],
dwBetIndex,
BetHash,
ByteOffset,