summaryrefslogtreecommitdiff
path: root/src/pokenav_unk_4.c
diff options
context:
space:
mode:
authorMarcus Huderle <huderlem@gmail.com>2019-04-15 17:51:11 -0500
committerhuderlem <huderlem@gmail.com>2019-04-16 11:21:13 -0500
commit394c0f5546aa152012f0c812d1e6cf0a696bfe86 (patch)
treec516bd31a0c3b7177423adf0aae8c74155086a70 /src/pokenav_unk_4.c
parentf40f2c5e9cc497576dd799a93571ceb8b492a17c (diff)
Start decompiling pokenav_unk_4.c
Diffstat (limited to 'src/pokenav_unk_4.c')
-rwxr-xr-xsrc/pokenav_unk_4.c67
1 files changed, 67 insertions, 0 deletions
diff --git a/src/pokenav_unk_4.c b/src/pokenav_unk_4.c
new file mode 100755
index 000000000..c07794126
--- /dev/null
+++ b/src/pokenav_unk_4.c
@@ -0,0 +1,67 @@
+#include "global.h"
+#include "pokenav.h"
+#include "window.h"
+
+struct Pokenav4Struct
+{
+ u32 (*unk0)(void);
+ u32 unk4;
+ u8 filler8[0x8];
+ u8 unk10;
+ u8 filler11[0x1];
+ u8 unk12;
+ u8 filler13[0x1];
+ u8 unk14;
+ u8 filler15[0x4];
+ u8 unk19;
+ u8 filler1A[0x202E];
+};
+
+static bool32 sub_81CB310(void);
+u32 sub_81CB324(int);
+void sub_81CBC1C(void);
+void sub_81CC2B4(void);
+
+extern const LoopedTask gUnknown_08622798[];
+
+bool32 sub_81CB260(void)
+{
+ struct Pokenav4Struct *state = AllocSubstruct(6, sizeof(struct Pokenav4Struct));
+ if (!state)
+ return FALSE;
+
+ state->unk19 = 0;
+ state->unk4 = CreateLoopedTask(sub_81CB324, 1);
+ state->unk0 = sub_81CB310;
+ return TRUE;
+}
+
+void sub_81CB29C(int index)
+{
+ struct Pokenav4Struct *state = GetSubstructPtr(6);
+ state->unk4 = CreateLoopedTask(gUnknown_08622798[index], 1);
+ state->unk0 = sub_81CB310;
+}
+
+u32 sub_81CB2CC(void)
+{
+ struct Pokenav4Struct *state = GetSubstructPtr(6);
+ return state->unk0();
+}
+
+void sub_81CB2E0(void)
+{
+ struct Pokenav4Struct *state = GetSubstructPtr(6);
+ sub_81CC2B4();
+ sub_81CBC1C();
+ RemoveWindow(state->unk12);
+ RemoveWindow(state->unk10);
+ RemoveWindow(state->unk14);
+ FreePokenavSubstruct(6);
+}
+
+static bool32 sub_81CB310(void)
+{
+ struct Pokenav4Struct *state = GetSubstructPtr(6);
+ return IsLoopedTaskActive(state->unk4);
+}