diff options
author | Max <mparisi@stevens.edu> | 2020-10-29 14:27:37 -0400 |
---|---|---|
committer | Max <mparisi@stevens.edu> | 2020-10-29 14:27:37 -0400 |
commit | 47a1bdea8872c79dd2cd7d75ca7f254b9ed13170 (patch) | |
tree | f254bbac3fde59afbc4abe7f07ea763bed53b20c /include/SDK | |
parent | f13fcff4a5f496e8bc1fa4ff759698d9ac37c478 (diff) |
match up to func_801DCFE4, add string.h and stdlib.h, add types.h to Makefile include path, and move GameSpy under DWC
Diffstat (limited to 'include/SDK')
-rw-r--r-- | include/SDK/DVD/dvdfs.h | 15 | ||||
-rw-r--r-- | include/SDK/DWC/gamespy/darray.h | 40 | ||||
-rw-r--r-- | include/SDK/DWC/gamespy/hashtable.h | 34 | ||||
-rw-r--r-- | include/SDK/DWC/gamespy/nonport.h | 16 | ||||
-rw-r--r-- | include/SDK/NAND/NANDOpenClose.h | 19 | ||||
-rw-r--r-- | include/SDK/nand.h | 3 |
6 files changed, 125 insertions, 2 deletions
diff --git a/include/SDK/DVD/dvdfs.h b/include/SDK/DVD/dvdfs.h index a5283eb..444ae92 100644 --- a/include/SDK/DVD/dvdfs.h +++ b/include/SDK/DVD/dvdfs.h @@ -5,6 +5,18 @@ extern "C" {
#endif
+// TODO: not a nested class, but a struct from the SDK. Referenced
+// by DVDFileInfo
+struct gUnkClass6
+{
+ u8 unk0;
+ u8 unk1;
+ char unk2[0x5];
+ char unk7[0x41];
+ NANDFileInfo unk48;
+ u8 unkD3[0xBD];
+};
+
typedef struct DVDFileInfo DVDFileInfo;
typedef void (*DVDCallback)(s32 result, DVDFileInfo* fileInfo);
@@ -13,7 +25,8 @@ struct DVDFileInfo {
u8 unk0[0x34];
size_t unk34;
- u8 unk38[0x8];
+ u8 unk38[0x4];
+ gUnkClass6* unk3C; // TODO: determine type
void (*unk40)(s32, void*);
void* unk44;
u32 unk48;
diff --git a/include/SDK/DWC/gamespy/darray.h b/include/SDK/DWC/gamespy/darray.h new file mode 100644 index 0000000..5c7c170 --- /dev/null +++ b/include/SDK/DWC/gamespy/darray.h @@ -0,0 +1,40 @@ +#ifndef POKEREVO_DARRAY_H
+#define POKEREVO_DARRAY_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef s32 (*CompareFunction)(const void *, const void *);
+typedef BOOL (*MapFunction)(const void *, s32);
+typedef void (*DtorFunction)(void *);
+
+typedef struct DArray {
+ s32 size;
+ s32 capacity;
+ u32 elemSz;
+ s32 growAmount;
+ DtorFunction elemDtor;
+ char *buf;
+} DArray;
+
+DArray *ArrayNew(u32 elemSz, s32 initialCap, DtorFunction dtor);
+void ArrayFree(DArray *d);
+s32 ArrayLength(DArray *d);
+void *ArrayNth(DArray *d, s32 n);
+void ArrayAppend(DArray *d, void *elem);
+void ArrayInsertSorted(DArray *d, void *elem, CompareFunction compar);
+void ArrayRemoveAt(DArray *d, s32 n);
+void ArrayDeleteAt(DArray *d, s32 n);
+void ArrayReplaceAt(DArray *d, void *elem, s32 n);
+void ArraySort(DArray *d, CompareFunction compar);
+s32 ArraySearch(DArray *d, void *elem, CompareFunction cmp, s32 start, s32 doBinarySearch);
+void ArrayMapBackwards(DArray *d, MapFunction map, s32 p3);
+void *ArrayMapBackwards2(DArray *d, MapFunction map, s32 p3);
+void ArrayClear(DArray *d);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif //POKEREVO_DARRAY_H
diff --git a/include/SDK/DWC/gamespy/hashtable.h b/include/SDK/DWC/gamespy/hashtable.h new file mode 100644 index 0000000..beb4812 --- /dev/null +++ b/include/SDK/DWC/gamespy/hashtable.h @@ -0,0 +1,34 @@ +#ifndef POKEREVO_HASHTABLE_H
+#define POKEREVO_HASHTABLE_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <DWC/gamespy/darray.h>
+
+typedef s32 (*HashFunction)(void *, s32);
+
+typedef struct HashTable {
+ DArray **chains;
+ s32 size;
+ DtorFunction dtor;
+ HashFunction hashFunc;
+ CompareFunction compar;
+} HashTable;
+
+HashTable *TableNew(u32 p1, s32 p2, HashFunction hf, CompareFunction cmp, DtorFunction dtor);
+HashTable *TableNew2(u32 p1, s32 size, s32 p3, HashFunction hf, CompareFunction cmp, DtorFunction dtor);
+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, MapFunction p2, s32 p3);
+void *TableMapSafe2(HashTable *table, MapFunction p2, s32 p3);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif //POKEREVO_HASHTABLE_H
diff --git a/include/SDK/DWC/gamespy/nonport.h b/include/SDK/DWC/gamespy/nonport.h new file mode 100644 index 0000000..c1ed0e7 --- /dev/null +++ b/include/SDK/DWC/gamespy/nonport.h @@ -0,0 +1,16 @@ +#ifndef POKEREVO_NONPORT_H
+#define POKEREVO_NONPORT_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void *gsimalloc(u32 sz);
+void *gsirealloc(void *ptr, u32 sz);
+void gsifree(void *ptr);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif //POKEREVO_NONPORT_H
diff --git a/include/SDK/NAND/NANDOpenClose.h b/include/SDK/NAND/NANDOpenClose.h new file mode 100644 index 0000000..2a93acd --- /dev/null +++ b/include/SDK/NAND/NANDOpenClose.h @@ -0,0 +1,19 @@ +#ifndef POKEREVO_NANDOPENCLOSE_H
+#define POKEREVO_NANDOPENCLOSE_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct NANDFileInfo
+{
+ u8 unk0[0x8B]; // TODO: determine actual size
+} NANDFileInfo;
+
+s32 NANDOpen(const char* path, NANDFileInfo* info, u8 accType);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif //POKEREVO_NANDOPENCLOSE_H
diff --git a/include/SDK/nand.h b/include/SDK/nand.h index c20ee68..463ef89 100644 --- a/include/SDK/nand.h +++ b/include/SDK/nand.h @@ -5,7 +5,8 @@ extern "C" {
#endif
-#include "SDK/NAND/NANDCore.h"
+#include <SDK/NAND/NANDCore.h>
+#include <SDK/NAND/NANDOpenClose.h>
#ifdef __cplusplus
}
|