1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
|
#include "global.h"
#include "memory.h"
#include "text.h"
#include "menu.h"
#include "input.h"
#include "mailbox.h"
extern void HandleMailboxMenu(void);
extern void nullsub_133(void);
extern void sub_802E578(void);
extern void HandleMailActionMenu(void);
extern void sub_802E73C(void);
extern void sub_802E758(void);
extern void sub_802E774(void);
extern void sub_802E7D0(void);
extern void sub_802E0A0(void);
extern void sub_802E1AC(void);
extern struct UnkTextStruct2 gUnknown_80E0284;
extern struct UnkTextStruct2 gUnknown_80E029C;
extern struct UnkTextStruct2 gUnknown_80E02B4;
extern struct UnkTextStruct2 gUnknown_80E02CC;
extern struct unkStruct_203B304 *gUnknown_203B304;
extern void sub_802E088(u32);
extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *);
extern void CreateMailboxMenu(void);
extern void CreateMailActionMenu(void);
extern void sub_8012D60(u32 *, struct MenuItem *, u32, u16 *, u32, u32);
extern void sub_802BD14(u32, u32, u32);
extern void sub_802BE94(u32);
extern void CreateMailMenu(void);
extern void CreateMailAcceptedStatusBox(u32);
extern u32 sub_8095FE8(u32);
extern void sub_803B35C(u32, u32 *);
extern void sub_802DE84(u32 *);
extern void sub_802C860(u32);
extern void sub_802B640(u32, u32, u32);
extern void sub_802B7D0(u32);
extern void sub_802B9FC(u8);
u32 sub_802DFB0(void)
{
gUnknown_203B304 = MemoryAlloc(sizeof(struct unkStruct_203B304), 8);
gUnknown_203B304->unk64 = 0;
gUnknown_203B304->unk68 = 0;
SetMailboxState(0);
return 1;
}
u32 sub_802DFD8(void)
{
switch(gUnknown_203B304->state)
{
case 0:
SetMailboxState(1);
break;
case 1:
HandleMailboxMenu();
break;
case 2:
nullsub_133();
break;
case 4:
case 5:
sub_802E578();
break;
case 6:
HandleMailActionMenu();
break;
case 7:
sub_802E73C();
break;
case 8:
sub_802E758();
break;
case 9:
case 0xA:
sub_802E774();
break;
case 0xB:
sub_802E7D0();
break;
case 3:
default:
return 3;
}
return 0;
}
void sub_802E06C(void)
{
if(gUnknown_203B304 != NULL)
{
MemoryFree(gUnknown_203B304);
gUnknown_203B304 = NULL;
}
}
void SetMailboxState(u32 newState)
{
gUnknown_203B304->state = newState;
sub_802E0A0();
sub_802E1AC();
}
void sub_802E0A0(void)
{
s32 iVar1;
sub_8006518(gUnknown_203B304->unk10C);
switch(gUnknown_203B304->state)
{
case 1:
for(iVar1 = 0; iVar1 < 4; iVar1++)
{
gUnknown_203B304->unk10C[iVar1] = gUnknown_80E0284;
}
CreateMailboxMenu();
gUnknown_203B304->unk10C[2] = gUnknown_80E029C;
sub_8012CAC(&gUnknown_203B304->unk10C[2], gUnknown_203B304->unkBC);
break;
case 6:
CreateMailActionMenu();
gUnknown_203B304->unk10C[2] = gUnknown_80E02B4;
sub_8012CAC(&gUnknown_203B304->unk10C[2], gUnknown_203B304->unkBC);
gUnknown_203B304->unk10C[2].unk0c = 6;
gUnknown_203B304->unk10C[3] = gUnknown_80E02CC;
break;
default:
for(iVar1 = 0; iVar1 < 4; iVar1++)
{
gUnknown_203B304->unk10C[iVar1] = gUnknown_80E0284;
}
break;
}
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B304->unk10C, 1, 1);
}
void sub_802E1AC(void)
{
switch(gUnknown_203B304->state)
{
case 1:
sub_8012D60(&gUnknown_203B304->unk6C, gUnknown_203B304->unkBC, 0, gUnknown_203B304->unkFC, gUnknown_203B304->unk64, 2);
break;
case 4:
sub_802BD14(0, 0, 4);
break;
case 5:
sub_802BE94(1);
break;
case 6:
CreateMailMenu();
CreateMailAcceptedStatusBox(3);
sub_8012D60(&gUnknown_203B304->unk6C, gUnknown_203B304->unkBC, 0, 0, gUnknown_203B304->unk68, 2);
break;
case 7:
sub_803B35C(sub_8095FE8(gUnknown_203B304->unk8), &gUnknown_203B304->unkC);
gUnknown_203B304->unkC = 3;
gUnknown_203B304->unk50 = 0;
sub_802DE84(&gUnknown_203B304->unkC);
break;
case 8:
sub_802C860(0);
break;
case 9:
sub_802B640(0, 0, 8);
break;
case 0xA:
sub_802B7D0(1);
break;
case 0xB:
sub_802B9FC(gUnknown_203B304->mailIndex);
break;
case 0:
case 2:
case 3:
break;
}
}
|