diff options
Diffstat (limited to 'dep/CascLib/src/common/Map.h')
-rw-r--r-- | dep/CascLib/src/common/Map.h | 13 |
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__ |