summaryrefslogtreecommitdiff
path: root/src/mailbox_1.c
diff options
context:
space:
mode:
authorSeth Barberee <seth.barberee@gmail.com>2021-11-22 12:14:58 -0600
committerGitHub <noreply@github.com>2021-11-22 12:14:58 -0600
commitfd8720b75c56ef3f641e6c5abf6c446929c824b9 (patch)
tree7b65558bd366be680c577e6a0aea7787db24dd3f /src/mailbox_1.c
parent938a88551f6ddefb7f696b738696c8ce2d8e0e36 (diff)
Label all entities in Boss Fight Cutscenes (#78)
* label all entities in cutscenes * remove commented func.. wasn't matching anyway * Skarmony -> Skarmory
Diffstat (limited to 'src/mailbox_1.c')
-rw-r--r--src/mailbox_1.c161
1 files changed, 157 insertions, 4 deletions
diff --git a/src/mailbox_1.c b/src/mailbox_1.c
index 18bb8fc..41b7994 100644
--- a/src/mailbox_1.c
+++ b/src/mailbox_1.c
@@ -5,8 +5,11 @@
#include "input.h"
#include "mailbox.h"
+extern struct unkStruct_203B304 *gUnknown_203B304;
+
extern u8 gMailAccepted[];
extern u8 gUnknown_80E0324[];
+
extern void xxx_call_draw_string(s32 x, u32 y, u8 *, u32 , u32);
extern void sub_8012BC4(u32 x, u32 y, u32, u32, u32, u32);
extern void sub_8008C54(u32);
@@ -21,10 +24,160 @@ extern u32 sub_802C898(void);
extern void sub_802C8F4(void);
extern u32 sub_802DEE0(void);
extern void sub_802DF24(void);
+extern u8 *sub_8095FE8(u8);
+extern u8 HasNoMailinMailbox(void);
+extern u8 sub_8012FD8(u32 *);
+extern void sub_8013114(u32 *, s32 *);
+extern u32 sub_802BDEC(u32);
+extern void sub_8096A78(void);
+extern void sub_8096C80(void);
+extern void sub_8096D24(void);
+extern void sub_8096040(u8);
+extern void sub_8096DF8(u8);
+extern void sub_8096078(void);
+extern void PlayMenuSoundEffect(u32);
+extern void PlaySound(u32);
+extern void sub_802BEDC(void);
+extern u8 sub_802BE74(void);
+extern u8 HasNoAcceptedJobs(void);
+extern u8 HasNoPKMNNews(void);
+extern void sub_8012EA4(u32 *, u32);
-extern struct unkStruct_203B304 *gUnknown_203B304;
+void HandleMailboxMenu(void)
+{
+ s32 menuAction = 0;
+
+ if(!sub_8012FD8(&gUnknown_203B304->unk6C))
+ {
+ sub_8013114(&gUnknown_203B304->unk6C, &menuAction);
+ if(menuAction != 1) gUnknown_203B304->unk64 = menuAction;
+ }
+ switch(menuAction)
+ {
+ case 2:
+ if(!HasNoMailinMailbox())
+ SetMailboxState(4);
+ else
+ sub_8012EA4(&gUnknown_203B304->unk6C, 1);
+ break;
+ case 3:
+ if(!HasNoAcceptedJobs())
+ SetMailboxState(8);
+ else
+ sub_8012EA4(&gUnknown_203B304->unk6C, 1);
+ break;
+ case 4:
+ if(!HasNoPKMNNews())
+ SetMailboxState(9);
+ else
+ sub_8012EA4(&gUnknown_203B304->unk6C, 1);
+ break;
+ case 8:
+ SetMailboxState(2);
+ break;
+ case 1:
+ SetMailboxState(3);
+ break;
+ }
+}
+
+void sub_802E578(void)
+{
+ u8 *return_var;
+
+ switch(sub_802BDEC(1))
+ {
+
+ case 3:
+ gUnknown_203B304->unk8 = sub_802BE74();
+ SetMailboxState(6);
+ break;
+ case 4:
+ gUnknown_203B304->unk8 = sub_802BE74();
+ return_var = sub_8095FE8(gUnknown_203B304->unk8);
+ if(return_var[0] == 1)
+ {
+ gUnknown_203B304->mailIndex = return_var[5];
+ gUnknown_203B304->fallbackState = 5;
+ SetMailboxState(0xB);
+ }
+ else
+ SetMailboxState(7);
+ break;
+ case 2:
+ sub_802BEDC();
+ SetMailboxState(1);
+ break;
+ case 0:
+ case 1:
+ break;
+ }
+}
+
+void HandleMailActionMenu(void)
+{
+ s32 menuAction = 0;
+ u8 *return_var;
+ sub_802BDEC(0);
+ if(!sub_8012FD8(&gUnknown_203B304->unk6C))
+ {
+ sub_8013114(&gUnknown_203B304->unk6C, &menuAction);
+ if(menuAction != 1) gUnknown_203B304->unk68 = menuAction;
+ }
+ switch(menuAction)
+ {
+ case 2:
+ case 3:
+ case 4:
+ break;
+ case 5:
+ PlaySound(0x133);
+ sub_8095FE8(gUnknown_203B304->unk8);
+ sub_8096A78();
+ sub_8096C80();
+ sub_8096D24();
+ sub_8096040(gUnknown_203B304->unk8);
+ sub_8096078();
+ if(HasNoMailinMailbox())
+ {
+ sub_802BEDC();
+ SetMailboxState(1);
+ }
+ else
+ SetMailboxState(5);
+ break;
+ case 8:
+ SetMailboxState(7);
+ break;
+ case 6:
+ PlaySound(0x133);
+ return_var = sub_8095FE8(gUnknown_203B304->unk8);
+ sub_8096DF8(return_var[5]);
+ sub_8096040(gUnknown_203B304->unk8);
+ sub_8096078();
+ if(HasNoMailinMailbox())
+ {
+ sub_802BEDC();
+ SetMailboxState(1);
+ }
+ else
+ SetMailboxState(5);
+ break;
+ case 7:
+ PlayMenuSoundEffect(0);
+ return_var = sub_8095FE8(gUnknown_203B304->unk8);
+ gUnknown_203B304->mailIndex = return_var[5];
+ gUnknown_203B304->fallbackState = 5;
+ SetMailboxState(0xB);
+ break;
+ case 1:
+ SetMailboxState(5);
+ break;
+ }
+}
+
void sub_802E73C(void)
{
switch(sub_802DEE0())
@@ -63,12 +216,12 @@ void sub_802E774(void)
case 3:
case 4:
gUnknown_203B304->mailIndex = GetPokemonNewsIndex();
- gUnknown_203B304->unk4 = 0xA;
+ gUnknown_203B304->fallbackState = 0xA;
SetMailboxState(0xB);
break;
case 2:
sub_802B81C();
- SetMailboxState(0x1);
+ SetMailboxState(1);
break;
}
}
@@ -80,7 +233,7 @@ void sub_802E7D0(void)
case 2:
case 3:
sub_802BACC();
- SetMailboxState(gUnknown_203B304->unk4);
+ SetMailboxState(gUnknown_203B304->fallbackState);
case 0:
case 1:
break;