diff options
author | Seth Barberee <seth.barberee@gmail.com> | 2021-04-19 21:55:40 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-19 23:55:40 -0500 |
commit | f65dee5a143bd543c74c010d7252eb76893ee243 (patch) | |
tree | d343e826c63f8b501d37873c3c7bc1f010819deb /src/wonder_mail_3.c | |
parent | d316d1e359c7672277a9cf644acd4e40170f5968 (diff) |
Wonder mail and some boss dialogues (#36)
* more wonder mail and main menu work
* Lots of things.. doc'ing, decomping, and other things
* continue decomping boss scenes
* up to Suicune
* up to Mewtwo dialogue
* up to Raquaza
* fix spelling error on Rayquaza and decomp a few more
* up to groudon
* divide > shift
Diffstat (limited to 'src/wonder_mail_3.c')
-rw-r--r-- | src/wonder_mail_3.c | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/src/wonder_mail_3.c b/src/wonder_mail_3.c new file mode 100644 index 0000000..7951efc --- /dev/null +++ b/src/wonder_mail_3.c @@ -0,0 +1,106 @@ +#include "global.h" + +struct unkStruct_203B2F8 +{ + // size: 0x208 + u32 unk0; // state + u32 unk4; + u8 unk8; + u8 unk9; + u8 unkA; + u8 unkB; + u32 unkC; + u8 fill10[0x6C - 0x10]; + u32 unk6C; + u32 unk70; + u32 unk74; +}; +extern struct unkStruct_203B2F8 *gUnknown_203B2F8; + +extern void *MemoryAlloc(u32, u32); +extern void MemoryFree(void *); +extern u8 sub_8099328(u8 *); +extern u32 sub_8011C1C(); +extern void sub_802D1A0(u32); + +extern void sub_802D7D0(); +extern void sub_802D8CC(); +extern void sub_802D940(); +extern void sub_802D9F0(); +extern void sub_802DA60(); +extern void sub_802D82C(); +extern void sub_802DA84(); +extern void sub_802D1B8(); +extern void sub_802D2A8(); + + +u32 sub_802D098(u32 param_1) +{ + gUnknown_203B2F8 = MemoryAlloc(0x208,8); + gUnknown_203B2F8->unk6C = 0; + gUnknown_203B2F8->unk70 = 0; + gUnknown_203B2F8->unk74 = 0; + gUnknown_203B2F8->unkC = param_1; + gUnknown_203B2F8->unk8 = 0; + gUnknown_203B2F8->unk9 = sub_8099328(&gUnknown_203B2F8->unkA); + if (sub_8011C1C() != 2) { + gUnknown_203B2F8->unk9 = 0; + } + sub_802D1A0(0); + return 1; +} + +u32 sub_802D0E0(void) +{ + switch(gUnknown_203B2F8->unk0) { + case 0: + break; + case 1: + sub_802D7D0(); + break; + case 0xb: + case 0xc: + sub_802D8CC(); + break; + case 0xd: + sub_802D940(); + break; + case 0xe: + sub_802D9F0(); + break; + case 0xf: + case 0x10: + sub_802DA60(); + break; + case 9: + sub_802D82C(); + break; + case 2: + return 3; + default: + sub_802DA84(); + break; + } + return 0; +} + +u8 sub_802D178(void) +{ + return gUnknown_203B2F8->unk8; +} + +void sub_802D184(void) +{ + if(gUnknown_203B2F8 != NULL) + { + MemoryFree(gUnknown_203B2F8); + gUnknown_203B2F8 = NULL; + } +} + +void sub_802D1A0(u32 newState) +{ + gUnknown_203B2F8->unk0 = newState; + sub_802D1B8(); + sub_802D2A8(); +} |