diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/darray.h | 17 | ||||
-rw-r--r-- | include/hashtable.h | 35 |
2 files changed, 25 insertions, 27 deletions
diff --git a/include/darray.h b/include/darray.h index a5fff87..f20cb82 100644 --- a/include/darray.h +++ b/include/darray.h @@ -5,19 +5,18 @@ extern "C" {
#endif
-// size is at least 0x18 bytes
-typedef struct unkStruct2 {
- s32 unk0; // TODO: number of elements in array
+typedef struct DArray {
+ s32 size;
s32 unk4;
- u32 unk8; // TODO: size of each element
+ u32 elementSz;
s32 unkC;
s32 unk10;
- char *unk14; // TODO: pointer to start of array
-} unkStruct2;
+ char *buf;
+} DArray;
-
-void *ArrayNth(unkStruct2 *p1, s32 p2);
-void *ArrayMapBackwards2(unkStruct2 *p1, s32 p2, s32 p3);
+void *ArrayNew(s32 p1, s32 p3, s32 p6);
+void *ArrayNth(DArray *p1, s32 p2);
+void *ArrayMapBackwards2(DArray *p1, s32 p2, s32 p3);
#ifdef __cplusplus
}
diff --git a/include/hashtable.h b/include/hashtable.h index 93d27cd..0502273 100644 --- a/include/hashtable.h +++ b/include/hashtable.h @@ -9,25 +9,24 @@ extern "C" { typedef s32 (*HashFunction)(void *, s32);
-// size 0x14
-// hashtable
-typedef struct unkStruct {
- unkStruct2 **unk0;
- s32 unk4; // TODO: number of elements in unk0
+
+typedef struct HashTable {
+ DArray **chains;
+ s32 size;
s32 unk8;
- HashFunction unkC; // TODO: callback to hashing function
- s32 unk10;
-} unkStruct;
-
-unkStruct *TableNew(s32 p1, s32 p2, HashFunction p3, s32 p4, s32 p5);
-unkStruct *TableNew2(s32 p1, s32 p2, s32 p3, HashFunction p4, s32 p5, s32 p6);
-void TableFree(unkStruct *p1);
-s32 TableCount(unkStruct *p1);
-void TableEnter(unkStruct *p1, void *p2);
-BOOL TableRemove(unkStruct *p1, void *p2);
-void *TableLookup(unkStruct *p1, void *p2);
-void TableMapSafe(unkStruct *p1, s32 p2, s32 p3);
-void *TableMapSafe2(unkStruct *p1, s32 p2, s32 p3);
+ HashFunction hashFunc;
+ s32 unk10; // comparison callback?
+} HashTable;
+
+HashTable *TableNew(s32 p1, s32 p2, HashFunction hf, s32 p4, s32 p5);
+HashTable *TableNew2(s32 p1, s32 size, s32 p3, HashFunction hf, s32 p5, s32 p6);
+void TableFree(HashTable *table);
+s32 TableCount(HashTable *table);
+void TableEnter(HashTable *table, void *elem);
+BOOL TableRemove(HashTable *table, void *elem);
+void *TableLookup(HashTable *table, void *elem);
+void TableMapSafe(HashTable *table, s32 p2, s32 p3);
+void *TableMapSafe2(HashTable *table, s32 p2, s32 p3);
#ifdef __cplusplus
}
|