aboutsummaryrefslogtreecommitdiff
path: root/dep/CascLib/src/common/Map.h
diff options
context:
space:
mode:
Diffstat (limited to 'dep/CascLib/src/common/Map.h')
-rw-r--r--dep/CascLib/src/common/Map.h13
1 files changed, 8 insertions, 5 deletions
diff --git a/dep/CascLib/src/common/Map.h b/dep/CascLib/src/common/Map.h
index 40ea4238b81..7b0c1321e6c 100644
--- a/dep/CascLib/src/common/Map.h
+++ b/dep/CascLib/src/common/Map.h
@@ -20,20 +20,23 @@ typedef struct _CASC_MAP
{
size_t TableSize;
size_t ItemCount; // Number of items in the map
- size_t MemberOffset; // How far is the hash from the begin of the structure (in bytes)
+ size_t KeyOffset; // How far is the hash from the begin of the structure (in bytes)
size_t KeyLength; // Length of the hash key
void * HashTable[1]; // Pointer table
} CASC_MAP, *PCASC_MAP;
+typedef bool (*MAP_COMPARE)(PCASC_MAP pMap, void * pvObject, void * pvKey);
+
//-----------------------------------------------------------------------------
// Functions
-PCASC_MAP Map_Create(DWORD dwMaxItems, DWORD dwKeyLength, DWORD dwMemberOffset);
+PCASC_MAP Map_Create(DWORD dwMaxItems, DWORD dwKeyLength, DWORD dwKeyOffset);
size_t Map_EnumObjects(PCASC_MAP pMap, void **ppvArray);
-void * Map_FindObject(PCASC_MAP pMap, void * pvIdentifier);
-bool Map_InsertObject(PCASC_MAP pMap, void * pvIdentifier);
-void Map_Sort(PCASC_MAP pMap);
+void * Map_FindObject(PCASC_MAP pMap, void * pvKey, PDWORD PtrIndex);
+bool Map_InsertObject(PCASC_MAP pMap, void * pvNewObject, void * pvKey);
+const char * Map_FindString(PCASC_MAP pMap, const char * szString, const char * szStringEnd);
+bool Map_InsertString(PCASC_MAP pMap, const char * szString, bool bCutExtension);
void Map_Free(PCASC_MAP pMap);
#endif // __HASHTOPTR_H__