diff options
Diffstat (limited to 'src/kangaskhan_storage_2.c')
-rw-r--r-- | src/kangaskhan_storage_2.c | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/src/kangaskhan_storage_2.c b/src/kangaskhan_storage_2.c new file mode 100644 index 0000000..ebef475 --- /dev/null +++ b/src/kangaskhan_storage_2.c @@ -0,0 +1,98 @@ +#include "global.h" +#include "input.h" +#include "memory.h" + +struct unkStruct_203B20C +{ + u32 state; + u8 unk4[0x10]; + u32 unk14; + u32 unk18; + u32 unk1C; +}; +extern struct unkStruct_203B20C *gUnknown_203B20C; + +extern void sub_800641C(u8 *, u32, u32); +extern void sub_8017F10(u32); + + +extern void sub_8017F10(u32); +extern void sub_8018588(void); +extern void sub_8018620(void); +extern void sub_8018904(void); +extern void sub_8018AC8(void); +extern void sub_80186F8(void); +extern void sub_8018854(void); +extern void sub_80189C8(void); +extern void sub_8018AE4(void); + + +extern void sub_8017F28(); +extern void sub_8018100(); + +u32 sub_8017E1C(void) +{ + ResetUnusedInputStruct(); + sub_800641C(NULL, 1, 1); + gUnknown_203B20C = MemoryAlloc(0x150, 8); + gUnknown_203B20C->unk14 = 0; + gUnknown_203B20C->unk18 = 0; + gUnknown_203B20C->unk1C = 0; + sub_8017F10(0); + return 1; +} + +u32 sub_8017E54(void) +{ + switch(gUnknown_203B20C->state) + { + case 0: + sub_8017F10(1); + break; + case 1: + sub_8018588(); + break; + case 4: + case 5: + sub_8018620(); + break; + case 6: + sub_8018904(); + break; + case 7: + sub_8018AC8(); + break; + case 10: + case 11: + sub_80186F8(); + break; + case 12: + sub_8018854(); + break; + case 13: + sub_80189C8(); + break; + case 14: + sub_8018AE4(); + break; + case 3: + return 3; + } + return 0; +} + +void sub_8017EF4(void) +{ + if(gUnknown_203B20C != NULL) + { + MemoryFree(gUnknown_203B20C); + gUnknown_203B20C = NULL; + } +} + +void sub_8017F10(u32 newState) +{ + gUnknown_203B20C->state = newState; + sub_8017F28(); + sub_8018100(); +} |