summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/darray.h17
-rw-r--r--include/hashtable.h35
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
}