diff options
author | Marcus Huderle <huderlem@gmail.com> | 2019-04-15 17:51:11 -0500 |
---|---|---|
committer | huderlem <huderlem@gmail.com> | 2019-04-16 11:21:13 -0500 |
commit | 394c0f5546aa152012f0c812d1e6cf0a696bfe86 (patch) | |
tree | c516bd31a0c3b7177423adf0aae8c74155086a70 /src | |
parent | f40f2c5e9cc497576dd799a93571ceb8b492a17c (diff) |
Start decompiling pokenav_unk_4.c
Diffstat (limited to 'src')
-rw-r--r-- | src/pokenav.c | 15 | ||||
-rwxr-xr-x | src/pokenav_unk_4.c | 67 |
2 files changed, 73 insertions, 9 deletions
diff --git a/src/pokenav.c b/src/pokenav.c index 734d37c46..fde79682b 100644 --- a/src/pokenav.c +++ b/src/pokenav.c @@ -34,7 +34,7 @@ struct UnknownPokenavCallbackStruct u32 (*unkC)(void); u32 (*unk10)(void); void (*unk14)(void); - u32 (*unk18)(void); + void (*unk18)(void); }; extern u32 sub_81C9924(void); @@ -47,42 +47,39 @@ extern u32 sub_81CC5F4(void); extern u32 sub_81CC62C(void); extern u32 sub_81CC65C(void); extern void sub_81CC524(void); -extern u32 sub_81CC670(void); +extern void sub_81CC670(void); extern u32 sub_81CCFD8(void); extern u32 sub_81CD070(void); extern u32 sub_81CDDD4(void); extern u32 sub_81CDE2C(void); extern u32 sub_81CDE64(void); extern void sub_81CD1C0(void); -extern u32 sub_81CECA0(void); +extern void sub_81CECA0(void); extern u32 sub_81CEF3C(void); extern u32 sub_81CEFDC(void); extern u32 sub_81CF330(void); extern u32 sub_81CF3A0(void); extern u32 sub_81CF3D0(void); extern void sub_81CEFF0(void); -extern u32 sub_81CF3F8(void); +extern void sub_81CF3F8(void); extern u32 sub_81CD024(void); extern u32 sub_81CEF98(void); extern u32 sub_81CF368(void); -extern u32 sub_81CB260(void); extern u32 sub_81CB29C(void); -extern u32 sub_81CB2CC(void); -extern u32 sub_81CB2E0(void); extern u32 sub_81CF9BC(void); extern u32 sub_81CFA34(void); extern u32 sub_81CFDD0(void); extern u32 sub_81CFE40(void); extern u32 sub_81CFE70(void); extern void sub_81CFA48(void); -extern u32 sub_81CFE98(void); +extern void sub_81CFE98(void); extern u32 sub_81D0450(void); extern u32 sub_81D04A0(void); extern u32 sub_81D0978(void); extern u32 sub_81D09B0(void); extern u32 sub_81D09E0(void); extern void sub_81D04B8(void); -extern u32 sub_81D09F4(void); +extern void sub_81D09F4(void); extern u32 sub_81CFA04(void); extern u32 sub_81CFE08(void); 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); +} |