summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/code_80428A0.s2
-rw-r--r--asm/code_8057824.s4
-rw-r--r--asm/code_807001C.s20
-rw-r--r--asm/friend_area_action_menu.s28
-rw-r--r--asm/friend_area_action_menu_1.s (renamed from asm/code_8027C84.s)14
-rw-r--r--asm/gulpin_shop.s121
-rw-r--r--asm/rescue_password_menu.s244
-rw-r--r--asm/wonder_mail.s307
-rw-r--r--asm/wonder_mail_1.s806
-rw-r--r--asm/wonder_mail_2.s (renamed from asm/code_802B640.s)284
-rw-r--r--asm/wonder_mail_3.s24
-rw-r--r--data/data_80E2068.s183
-rw-r--r--data/data_80F4278.s8
-rw-r--r--data/personality_test.s309
-rw-r--r--include/constants/personality_test.h18
-rw-r--r--include/felicity_bank.h3
-rw-r--r--include/friend_area_action_menu.h3
-rw-r--r--include/gUnknown_203B418.h4
-rw-r--r--include/gulpin_shop.h41
-rw-r--r--include/kecleon_items.h3
-rw-r--r--include/main_menu.h1
-rw-r--r--include/rescue_password_menu.h26
-rw-r--r--include/text.h11
-rw-r--r--include/trade_items_menu.h6
-rw-r--r--include/wonder_mail.h21
-rwxr-xr-xld_script.txt9
-rw-r--r--src/code_801AFA4.c9
-rw-r--r--src/code_801DCC4.c39
-rw-r--r--src/code_8041AD0.c5
-rw-r--r--src/code_80958E8.c1
-rw-r--r--src/code_80A26CC.c49
-rw-r--r--src/debug_menu_2.c3
-rw-r--r--src/debug_menu_mid.c24
-rw-r--r--src/friend_area_action_menu.c10
-rw-r--r--src/friend_area_action_menu_1.c22
-rw-r--r--src/friend_rescue_1.c9
-rw-r--r--src/gulpin_shop.c45
-rw-r--r--src/gulpin_shop_1.c79
-rw-r--r--src/kangaskhan_storage_2.c15
-rw-r--r--src/personality_test.c38
-rw-r--r--src/rescue_password_menu.c93
-rw-r--r--src/rescue_password_menu_1.c33
-rw-r--r--src/trade_items_menu.c26
-rw-r--r--src/wonder_mail.c20
-rw-r--r--src/wonder_mail_2.c456
-rw-r--r--src/wonder_mail_3.c13
-rw-r--r--src/wonder_mail_3_1.c15
-rw-r--r--src/wonder_mail_main_menu.c1
-rw-r--r--src/wonder_mail_pre.c310
49 files changed, 1564 insertions, 2251 deletions
diff --git a/asm/code_80428A0.s b/asm/code_80428A0.s
index 402ea92..996e063 100644
--- a/asm/code_80428A0.s
+++ b/asm/code_80428A0.s
@@ -6309,7 +6309,7 @@ _08045BD2:
bl sub_804510C
ldrb r1, [r0]
adds r0, r5, 0
- bl sub_807FE84
+ bl GetTrapName
b _08045BEC
_08045BE2:
ldr r0, _08045BF4
diff --git a/asm/code_8057824.s b/asm/code_8057824.s
index 2c65ae8..b344d4a 100644
--- a/asm/code_8057824.s
+++ b/asm/code_8057824.s
@@ -16175,7 +16175,7 @@ _0805FA62:
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
- bl sub_807EA18
+ bl GetWeatherName
ldr r0, _0805FBD4
ldr r2, [r0]
str r6, [sp]
@@ -25622,7 +25622,7 @@ _080646C4:
adds r4, r0, 0
ldrb r1, [r4]
mov r0, r10
- bl sub_807FE84
+ bl GetTrapName
movs r0, 0
bl sub_80073B8
str r7, [sp]
diff --git a/asm/code_807001C.s b/asm/code_807001C.s
index 52b13ab..8dc5eb2 100644
--- a/asm/code_807001C.s
+++ b/asm/code_807001C.s
@@ -29515,7 +29515,7 @@ _0807E816:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_807EA18
+ bl GetWeatherName
ldr r0, _0807E884
ldr r1, [r0]
adds r0, r5, 0
@@ -29752,8 +29752,8 @@ _0807EA0A:
bx r0
thumb_func_end sub_807E8F0
- thumb_func_start sub_807EA18
-sub_807EA18:
+ thumb_func_start GetWeatherName
+GetWeatherName:
push {lr}
lsls r1, 24
ldr r2, _0807EA2C
@@ -29764,8 +29764,8 @@ sub_807EA18:
pop {r0}
bx r0
.align 2, 0
-_0807EA2C: .4byte gUnknown_80F9A54
- thumb_func_end sub_807EA18
+_0807EA2C: .4byte gWeatherNames
+ thumb_func_end GetWeatherName
thumb_func_start sub_807EA30
sub_807EA30:
@@ -32341,8 +32341,8 @@ _0807FE7E:
bx r1
thumb_func_end sub_807FE44
- thumb_func_start sub_807FE84
-sub_807FE84:
+ thumb_func_start GetTrapName
+GetTrapName:
push {lr}
lsls r1, 24
ldr r2, _0807FE98
@@ -32353,8 +32353,8 @@ sub_807FE84:
pop {r0}
bx r0
.align 2, 0
-_0807FE98: .4byte gUnknown_80F91F0
- thumb_func_end sub_807FE84
+_0807FE98: .4byte gTrapNames
+ thumb_func_end GetTrapName
thumb_func_start sub_807FE9C
sub_807FE9C:
@@ -32394,7 +32394,7 @@ _0807FED8:
ldr r0, _0807FF58
mov r2, r8
ldrb r1, [r2]
- bl sub_807FE84
+ bl GetTrapName
ldr r3, [sp, 0x4]
ldr r4, [r3, 0x10]
cmp r4, 0
diff --git a/asm/friend_area_action_menu.s b/asm/friend_area_action_menu.s
index 3c0a469..0117899 100644
--- a/asm/friend_area_action_menu.s
+++ b/asm/friend_area_action_menu.s
@@ -514,7 +514,7 @@ _0802782C:
adds r1, 0x14
bl PeekPokemonItem
movs r0, 0x3
- bl sub_8027184
+ bl SetFriendAreaActionMenuState
b _080278AE
.align 2, 0
_08027860: .4byte gUnknown_203B2BC
@@ -540,7 +540,7 @@ _08027868:
adds r1, 0x14
bl PeekPokemonItem
movs r0, 0x4
- bl sub_8027184
+ bl SetFriendAreaActionMenuState
b _080278AE
.align 2, 0
_0802789C: .4byte gUnknown_203B2BC
@@ -548,7 +548,7 @@ _080278A0: .4byte gRecruitedPokemonRef
_080278A4:
bl sub_8023C60
movs r0, 0x11
- bl sub_8027184
+ bl SetFriendAreaActionMenuState
_080278AE:
pop {r4}
pop {r0}
@@ -675,15 +675,15 @@ _080279B8: .4byte gRecruitedPokemonRef
_080279BC: .4byte gUnknown_203B2BC
_080279C0:
movs r0, 0x8
- bl sub_8027184
+ bl SetFriendAreaActionMenuState
b _08027A36
_080279C8:
movs r0, 0xE
- bl sub_8027184
+ bl SetFriendAreaActionMenuState
b _08027A36
_080279D0:
movs r0, 0xA
- bl sub_8027184
+ bl SetFriendAreaActionMenuState
b _08027A36
_080279D8:
ldr r0, _08027A18
@@ -711,22 +711,22 @@ _080279F0:
bl nullsub_104
_08027A0E:
movs r0, 0x2
- bl sub_8027184
+ bl SetFriendAreaActionMenuState
b _08027A36
.align 2, 0
_08027A18: .4byte 0x0000014d
_08027A1C: .4byte gUnknown_203B2BC
_08027A20:
movs r0, 0x4
- bl sub_8027184
+ bl SetFriendAreaActionMenuState
b _08027A36
_08027A28:
movs r0, 0x5
- bl sub_8027184
+ bl SetFriendAreaActionMenuState
b _08027A36
_08027A30:
movs r0, 0x2
- bl sub_8027184
+ bl SetFriendAreaActionMenuState
_08027A36:
add sp, 0x4
pop {r4}
@@ -744,7 +744,7 @@ sub_8027A40:
bhi _08027A58
bl sub_802453C
movs r0, 0x2
- bl sub_8027184
+ bl SetFriendAreaActionMenuState
_08027A58:
pop {r0}
bx r0
@@ -760,7 +760,7 @@ sub_8027A5C:
bhi _08027A74
bl sub_801BF98
movs r0, 0x2
- bl sub_8027184
+ bl SetFriendAreaActionMenuState
_08027A74:
pop {r0}
bx r0
@@ -787,7 +787,7 @@ _08027A96:
bne _08027AD8
_08027A9A:
movs r0, 0x2
- bl sub_8027184
+ bl SetFriendAreaActionMenuState
b _08027AD8
_08027AA2:
ldr r0, _08027AB8
@@ -809,7 +809,7 @@ _08027ABE:
cmp r0, 0
beq _08027ACA
movs r0, 0x9
- bl sub_8027184
+ bl SetFriendAreaActionMenuState
b _08027AD8
_08027ACA:
bl sub_8027EB8
diff --git a/asm/code_8027C84.s b/asm/friend_area_action_menu_1.s
index c9fdacd..2724a25 100644
--- a/asm/code_8027C84.s
+++ b/asm/friend_area_action_menu_1.s
@@ -36,14 +36,14 @@ _08027CD0:
ldrh r0, [r0, 0x2A]
strh r0, [r1, 0x24]
movs r0, 0x10
- bl sub_8027184
+ bl SetFriendAreaActionMenuState
b _08027CFA
.align 2, 0
_08027CEC: .4byte gUnknown_203B2BC
_08027CF0:
bl sub_801F214
movs r0, 0x2
- bl sub_8027184
+ bl SetFriendAreaActionMenuState
_08027CFA:
pop {r0}
bx r0
@@ -59,7 +59,7 @@ sub_8027D00:
bhi _08027D18
bl sub_801F8D0
movs r0, 0xF
- bl sub_8027184
+ bl SetFriendAreaActionMenuState
_08027D18:
pop {r0}
bx r0
@@ -76,7 +76,7 @@ sub_8027D1C:
ldr r0, _08027D3C
ldr r0, [r0]
ldr r0, [r0, 0x4]
- bl sub_8027184
+ bl SetFriendAreaActionMenuState
_08027D34:
add sp, 0x4
pop {r0}
@@ -322,7 +322,7 @@ _08027ED8:
adds r1, 0x14
bl GivePokemonItem
movs r0, 0x6
- bl sub_8027184
+ bl SetFriendAreaActionMenuState
b _08027F82
.align 2, 0
_08027F08: .4byte 0x0000014d
@@ -373,14 +373,14 @@ _08027F52:
adds r1, 0x14
bl GivePokemonItem
movs r0, 0x7
- bl sub_8027184
+ bl SetFriendAreaActionMenuState
b _08027F82
.align 2, 0
_08027F74: .4byte gTeamInventory_203B460
_08027F78: .4byte gUnknown_203B2BC
_08027F7C:
movs r0, 0x2
- bl sub_8027184
+ bl SetFriendAreaActionMenuState
_08027F82:
pop {r4}
pop {r0}
diff --git a/asm/gulpin_shop.s b/asm/gulpin_shop.s
index 3e8b4b4..6482a8a 100644
--- a/asm/gulpin_shop.s
+++ b/asm/gulpin_shop.s
@@ -389,125 +389,4 @@ _0801ED22:
bx r0
thumb_func_end sub_801ECBC
- thumb_func_start sub_801ED28
-sub_801ED28:
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- bl sub_801EF38
- ldr r4, _0801ED60
- ldr r0, [r4]
- adds r0, 0x78
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _0801ED4E
- ldr r0, [r4]
- adds r0, 0x78
- mov r1, sp
- bl sub_8013114
-_0801ED4E:
- ldr r0, [sp]
- cmp r0, 0x2
- beq _0801ED74
- cmp r0, 0x2
- bgt _0801ED64
- cmp r0, 0x1
- beq _0801ED6C
- b _0801ED9A
- .align 2, 0
-_0801ED60: .4byte gUnknown_203B26C
-_0801ED64:
- cmp r0, 0x3
- beq _0801ED94
- cmp r0, 0x5
- bne _0801ED9A
-_0801ED6C:
- movs r0, 0x1
- bl UpdateGulpinShopState
- b _0801ED9A
-_0801ED74:
- ldr r0, _0801ED90
- bl PlaySound
- ldr r1, [r4]
- ldr r0, [r1, 0x20]
- ldr r1, [r1, 0x10]
- bl sub_80934B0
- ldr r1, [r4]
- strb r0, [r1, 0xE]
- movs r0, 0x4
- bl UpdateGulpinShopState
- b _0801ED9A
- .align 2, 0
-_0801ED90: .4byte 0x00000133
-_0801ED94:
- movs r0, 0x3
- bl UpdateGulpinShopState
-_0801ED9A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_801ED28
-
- thumb_func_start sub_801EDA4
-sub_801EDA4:
- push {lr}
- bl sub_801F890
- cmp r0, 0x1
- bls _0801EDBC
- cmp r0, 0x3
- bhi _0801EDBC
- bl sub_801F8D0
- movs r0, 0x1
- bl UpdateGulpinShopState
-_0801EDBC:
- pop {r0}
- bx r0
- thumb_func_end sub_801EDA4
-
- thumb_func_start sub_801EDC0
-sub_801EDC0:
- push {r4,lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0801EE06
- ldr r0, [sp]
- cmp r0, 0x4
- beq _0801EDE4
- cmp r0, 0x4
- bgt _0801EDDE
- cmp r0, 0x1
- beq _0801EE00
- b _0801EE06
-_0801EDDE:
- cmp r0, 0x5
- beq _0801EE00
- b _0801EE06
-_0801EDE4:
- bl sub_801F214
- ldr r4, _0801EDFC
- ldr r1, [r4]
- ldr r0, [r1, 0x10]
- ldr r1, [r1, 0x20]
- bl sub_8093CF8
- ldr r1, [r4]
- movs r0, 0x5
- str r0, [r1, 0x4]
- b _0801EE06
- .align 2, 0
-_0801EDFC: .4byte gUnknown_203B26C
-_0801EE00:
- movs r0, 0x1
- bl UpdateGulpinShopState
-_0801EE06:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_801EDC0
-
.align 2,0
diff --git a/asm/rescue_password_menu.s b/asm/rescue_password_menu.s
index 4f85be7..88fcd49 100644
--- a/asm/rescue_password_menu.s
+++ b/asm/rescue_password_menu.s
@@ -5,193 +5,6 @@
.text
- thumb_func_start CreateRescuePasswordMenu
-CreateRescuePasswordMenu:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r6, r0, 0
- ldr r5, _080389B8
- ldr r0, [r5]
- cmp r0, 0
- bne _0803892A
- movs r4, 0x85
- lsls r4, 2
- adds r0, r4, 0
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r5]
- movs r1, 0
- adds r2, r4, 0
- bl MemoryFill8
-_0803892A:
- movs r0, 0x1B
- negs r0, r0
- adds r0, r6
- mov r8, r0
- mov r12, r5
- movs r1, 0xA4
- lsls r1, 1
- mov r9, r1
- ldr r4, _080389BC
- mov r10, r4
- movs r3, 0
- movs r2, 0x3
-_08038942:
- mov r5, r12
- ldr r1, [r5]
- adds r1, r3
- add r1, r9
- mov r0, r10
- ldm r0!, {r4,r5,r7}
- stm r1!, {r4,r5,r7}
- ldm r0!, {r4,r5,r7}
- stm r1!, {r4,r5,r7}
- adds r3, 0x18
- subs r2, 0x1
- cmp r2, 0
- bge _08038942
- bl ResetUnusedInputStruct
- ldr r4, _080389B8
- ldr r0, [r4]
- movs r7, 0xA4
- lsls r7, 1
- adds r0, r7
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r2, _080389C0
- ldrb r0, [r2]
- cmp r0, 0
- bne _08038986
- ldr r0, _080389C4
- ldr r1, [r0]
- adds r7, r4, 0
- adds r5, r0, 0
- cmp r1, r6
- beq _080389A0
-_08038986:
- adds r7, r4, 0
- adds r3, r2, 0
- ldr r5, _080389C4
- ldr r1, _080389C8
- movs r2, 0
- adds r0, r1, 0
- adds r0, 0x35
-_08038994:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _08038994
- movs r0, 0
- strb r0, [r3]
-_080389A0:
- ldr r0, [r7]
- str r6, [r0]
- str r6, [r5]
- mov r0, r8
- cmp r0, 0x7
- bhi _08038A36
- lsls r0, 2
- ldr r1, _080389CC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080389B8: .4byte gRescuePasswordMenu
-_080389BC: .4byte gUnknown_80E71E4
-_080389C0: .4byte gUnknown_203B368
-_080389C4: .4byte gUnknown_203B36C
-_080389C8: .4byte gUnknown_202EC50
-_080389CC: .4byte _080389D0
- .align 2, 0
-_080389D0:
- .4byte _080389F0
- .4byte _080389FC
- .4byte _080389F0
- .4byte _080389FC
- .4byte _080389F0
- .4byte _080389FC
- .4byte _08038A0C
- .4byte _08038A2E
-_080389F0:
- bl sub_8035D74
- movs r1, 0
- bl sub_8031D70
- b _08038A36
-_080389FC:
- ldr r1, _08038A08
- movs r0, 0x4
- bl sub_80151C0
- b _08038A36
- .align 2, 0
-_08038A08: .4byte gUnknown_202EC50
-_08038A0C:
- movs r0, 0x1F
- bl sub_8095228
- adds r4, r0, 0
- movs r1, 0
- movs r2, 0x30
- bl MemoryFill8
- movs r1, 0
- movs r0, 0x2
- strb r0, [r4]
- adds r4, 0x22
- strb r1, [r4]
- movs r0, 0x1F
- bl sub_8031D70
- b _08038A36
-_08038A2E:
- ldr r1, _08038A54
- movs r0, 0x4
- bl sub_80151C0
-_08038A36:
- adds r0, r6, 0
- bl sub_8039000
- ldr r1, _08038A58
- ldr r1, [r1]
- str r0, [r1, 0x4]
- bl sub_8039174
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08038A54: .4byte gUnknown_202EC50
-_08038A58: .4byte gRescuePasswordMenu
- thumb_func_end CreateRescuePasswordMenu
-
- thumb_func_start CleanRescuePasswordMenu
-CleanRescuePasswordMenu:
- push {r4,lr}
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r4, _08038A8C
- ldr r0, [r4]
- cmp r0, 0
- beq _08038A86
- bl sub_80155F0
- bl sub_8031E10
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_08038A86:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08038A8C: .4byte gRescuePasswordMenu
- thumb_func_end CleanRescuePasswordMenu
-
thumb_func_start UpdateRescuePasswordMenu
UpdateRescuePasswordMenu:
push {r4-r6,lr}
@@ -535,7 +348,7 @@ _08038D66:
ldr r4, _08038DA0
ldr r0, [r4]
ldr r0, [r0]
- bl sub_8039000
+ bl ConvertMenutoRescuePasswordState
ldr r1, [r4]
str r0, [r1, 0x4]
ldr r0, [r1]
@@ -822,8 +635,8 @@ _08038FF8: .4byte gUnknown_80E7278
_08038FFC: .4byte gUnknown_80E7290
thumb_func_end sub_8038F98
- thumb_func_start sub_8039000
-sub_8039000:
+ thumb_func_start ConvertMenutoRescuePasswordState
+ConvertMenutoRescuePasswordState:
push {lr}
movs r1, 0xB
ldr r0, _0803901C
@@ -877,7 +690,7 @@ _08039062:
adds r0, r1, 0
pop {r1}
bx r1
- thumb_func_end sub_8039000
+ thumb_func_end ConvertMenutoRescuePasswordState
thumb_func_start sub_8039068
sub_8039068:
@@ -1085,53 +898,4 @@ _080391F0: .4byte 0x00003fff
_080391F4: .4byte 0x00000fff
thumb_func_end sub_8039174
- thumb_func_start sub_80391F8
-sub_80391F8:
- push {r4-r6,lr}
- ldr r6, _08039250
- ldr r2, [r6]
- movs r0, 0x82
- lsls r0, 2
- adds r4, r2, r0
- ldrh r1, [r4, 0x2]
- movs r0, 0xFE
- lsls r0, 8
- ands r0, r1
- movs r1, 0x70
- orrs r0, r1
- strh r0, [r4, 0x2]
- movs r3, 0xE0
- lsls r3, 3
- ldrh r1, [r4, 0x6]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r3
- strh r0, [r4, 0x6]
- movs r5, 0x84
- lsls r5, 2
- adds r2, r5
- ldr r0, [r2]
- movs r1, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0803923C
- adds r1, 0xF8
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0
- bl AddSprite
-_0803923C:
- bl xxx_draw_string_80144C4
- ldr r1, [r6]
- adds r1, r5
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08039250: .4byte gRescuePasswordMenu
- thumb_func_end sub_80391F8
-
.align 2,0
diff --git a/asm/wonder_mail.s b/asm/wonder_mail.s
index 2955f9f..45f3360 100644
--- a/asm/wonder_mail.s
+++ b/asm/wonder_mail.s
@@ -5,313 +5,6 @@
.text
- thumb_func_start sub_8028078
-sub_8028078:
- push {lr}
- ldr r0, _08028090
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- cmp r0, 0x3C
- bls _08028086
- b _080282D4
-_08028086:
- lsls r0, 2
- ldr r1, _08028094
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08028090: .4byte gUnknown_203B2C0
-_08028094: .4byte _08028098
- .align 2, 0
-_08028098:
- .4byte _080282C4
- .4byte _080282C4
- .4byte _080282CA
- .4byte _080282D0
- .4byte _08028222
- .4byte _08028234
- .4byte _08028228
- .4byte _0802822E
- .4byte _0802823A
- .4byte _080281FE
- .4byte _08028272
- .4byte _08028278
- .4byte _0802828C
- .4byte _0802827E
- .4byte _0802828C
- .4byte _0802827E
- .4byte _0802828C
- .4byte _08028286
- .4byte _08028294
- .4byte _0802829A
- .4byte _080282B2
- .4byte _080282B8
- .4byte _080282BE
- .4byte _080282A0
- .4byte _080282A6
- .4byte _080282AC
- .4byte _08028240
- .4byte _08028248
- .4byte _0802824E
- .4byte _0802824E
- .4byte _0802825A
- .4byte _0802826C
- .4byte _08028260
- .4byte _08028266
- .4byte _08028254
- .4byte _08028204
- .4byte _0802820A
- .4byte _080282CA
- .4byte _08028210
- .4byte _08028216
- .4byte _0802821C
- .4byte _080281E0
- .4byte _080281F2
- .4byte _080281E6
- .4byte _080281EC
- .4byte _080281DA
- .4byte _080281D4
- .4byte _080281F8
- .4byte _080281CE
- .4byte _080281C2
- .4byte _080281AA
- .4byte _080281B0
- .4byte _080281B6
- .4byte _080281BC
- .4byte _080281C8
- .4byte _080281A4
- .4byte _0802819E
- .4byte _080282CA
- .4byte _08028192
- .4byte _08028198
- .4byte _0802818C
-_0802818C:
- bl sub_8029B34
- b _080282D4
-_08028192:
- bl sub_8029AD8
- b _080282D4
-_08028198:
- bl sub_8029AF4
- b _080282D4
-_0802819E:
- bl sub_8029A88
- b _080282D4
-_080281A4:
- bl sub_8029AB0
- b _080282D4
-_080281AA:
- bl sub_80297B8
- b _080282D4
-_080281B0:
- bl sub_80297D4
- b _080282D4
-_080281B6:
- bl sub_8029884
- b _080282D4
-_080281BC:
- bl sub_8029944
- b _080282D4
-_080281C2:
- bl sub_80299AC
- b _080282D4
-_080281C8:
- bl sub_80299D8
- b _080282D4
-_080281CE:
- bl sub_8029A6C
- b _080282D4
-_080281D4:
- bl sub_8029A18
- b _080282D4
-_080281DA:
- bl sub_80295A8
- b _080282D4
-_080281E0:
- bl sub_8029668
- b _080282D4
-_080281E6:
- bl sub_8029684
- b _080282D4
-_080281EC:
- bl sub_8029740
- b _080282D4
-_080281F2:
- bl sub_80295D8
- b _080282D4
-_080281F8:
- bl sub_802979C
- b _080282D4
-_080281FE:
- bl sub_8029358
- b _080282D4
-_08028204:
- bl sub_8029374
- b _080282D4
-_0802820A:
- bl sub_802939C
- b _080282D4
-_08028210:
- bl sub_80293D8
- b _080282D4
-_08028216:
- bl sub_80293F4
- b _080282D4
-_0802821C:
- bl sub_802955C
- b _080282D4
-_08028222:
- bl sub_80292A4
- b _080282D4
-_08028228:
- bl sub_80292EC
- b _080282D4
-_0802822E:
- bl sub_802933C
- b _080282D4
-_08028234:
- bl sub_802958C
- b _080282D4
-_0802823A:
- bl sub_8029208
- b _080282D4
-_08028240:
- movs r0, 0x1
- bl sub_8028DE8
- b _080282D4
-_08028248:
- bl sub_8028F80
- b _080282D4
-_0802824E:
- bl sub_8028FC0
- b _080282D4
-_08028254:
- bl sub_8028FDC
- b _080282D4
-_0802825A:
- bl sub_80290D4
- b _080282D4
-_08028260:
- bl sub_80290F0
- b _080282D4
-_08028266:
- bl sub_80291AC
- b _080282D4
-_0802826C:
- bl sub_8029044
- b _080282D4
-_08028272:
- bl sub_8028CFC
- b _080282D4
-_08028278:
- bl sub_8028D4C
- b _080282D4
-_0802827E:
- movs r0, 0xA
- bl sub_8028DE8
- b _080282D4
-_08028286:
- bl sub_8028E08
- b _080282D4
-_0802828C:
- movs r0, 0x19
- bl sub_8028DE8
- b _080282D4
-_08028294:
- bl sub_8028E24
- b _080282D4
-_0802829A:
- bl sub_8028E54
- b _080282D4
-_080282A0:
- bl sub_8028E84
- b _080282D4
-_080282A6:
- bl sub_8028EAC
- b _080282D4
-_080282AC:
- bl sub_8028ED4
- b _080282D4
-_080282B2:
- bl sub_8028F04
- b _080282D4
-_080282B8:
- bl sub_8028F30
- b _080282D4
-_080282BE:
- bl sub_8028F58
- b _080282D4
-_080282C4:
- bl sub_8028BF0
- b _080282D4
-_080282CA:
- bl sub_8028CE0
- b _080282D4
-_080282D0:
- movs r0, 0x3
- b _080282D6
-_080282D4:
- movs r0, 0
-_080282D6:
- pop {r1}
- bx r1
- thumb_func_end sub_8028078
-
- thumb_func_start sub_80282DC
-sub_80282DC:
- ldr r1, _080282F4
- ldr r1, [r1]
- movs r3, 0x86
- lsls r3, 2
- adds r2, r1, r3
- ldrb r2, [r2]
- strb r2, [r0]
- ldr r0, _080282F8
- adds r1, r0
- ldr r0, [r1]
- bx lr
- .align 2, 0
-_080282F4: .4byte gUnknown_203B2C0
-_080282F8: .4byte 0x0000053c
- thumb_func_end sub_80282DC
-
- thumb_func_start sub_80282FC
-sub_80282FC:
- push {r4,lr}
- ldr r4, _08028340
- ldr r0, [r4]
- cmp r0, 0
- beq _08028338
- movs r1, 0x84
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- bl CloseFile
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
- bl sub_8031E10
- bl sub_8023C60
- bl sub_803084C
- bl sub_80155F0
- bl sub_80310B4
- bl sub_8030DE4
- bl sub_802453C
-_08028338:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08028340: .4byte gUnknown_203B2C0
- thumb_func_end sub_80282FC
-
- thumb_func_start nullsub_130
-nullsub_130:
- bx lr
- thumb_func_end nullsub_130
-
thumb_func_start sub_8028348
sub_8028348:
push {r4-r6,lr}
diff --git a/asm/wonder_mail_1.s b/asm/wonder_mail_1.s
deleted file mode 100644
index 133b481..0000000
--- a/asm/wonder_mail_1.s
+++ /dev/null
@@ -1,806 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_802ABF8
-sub_802ABF8:
- push {r4-r6,lr}
- sub sp, 0xB8
- ldr r1, _0802AC14
- ldr r0, [r1]
- ldrb r0, [r0]
- adds r6, r1, 0
- cmp r0, 0x2A
- bls _0802AC0A
- b _0802B2AA
-_0802AC0A:
- lsls r0, 2
- ldr r1, _0802AC18
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802AC14: .4byte gUnknown_203B2C4
-_0802AC18: .4byte _0802AC1C
- .align 2, 0
-_0802AC1C:
- .4byte _0802B1DC
- .4byte _0802B1FC
- .4byte _0802B22C
- .4byte _0802B2AA
- .4byte _0802B1D4
- .4byte _0802ACC8
- .4byte _0802B248
- .4byte _0802B194
- .4byte _0802B1A4
- .4byte _0802B168
- .4byte _0802B138
- .4byte _0802B128
- .4byte _0802B0F0
- .4byte _0802B0AC
- .4byte _0802AD08
- .4byte _0802AD18
- .4byte _0802AD20
- .4byte _0802AD46
- .4byte _0802B2AA
- .4byte _0802AD80
- .4byte _0802ADB0
- .4byte _0802B2AA
- .4byte _0802B07C
- .4byte _0802B094
- .4byte _0802B2AA
- .4byte _0802AF50
- .4byte _0802AF1A
- .4byte _0802AF46
- .4byte _0802B2AA
- .4byte _0802B0A4
- .4byte _0802ADF8
- .4byte _0802B2AA
- .4byte _0802AF70
- .4byte _0802AF78
- .4byte _0802AFAC
- .4byte _0802B2AA
- .4byte _0802AF60
- .4byte _0802B2AA
- .4byte _0802AEEC
- .4byte _0802AEF4
- .4byte _0802B2AA
- .4byte _0802B110
- .4byte _0802B120
-_0802ACC8:
- bl sub_808D33C
- adds r1, r0, 0
- adds r1, 0x4C
- add r0, sp, 0x14
- movs r2, 0xA
- bl sub_80922B4
- ldr r5, _0802ACF8
- ldr r0, [r5]
- ldr r4, _0802ACFC
- adds r0, r4
- ldr r1, _0802AD00
- add r2, sp, 0x14
- bl ExpandPlaceholdersBuffer
- ldr r2, [r5]
- adds r4, r2, r4
- movs r0, 0x84
- lsls r0, 3
- adds r2, r0
- ldr r3, _0802AD04
- adds r0, r4, 0
- b _0802B238
- .align 2, 0
-_0802ACF8: .4byte gUnknown_203B2C4
-_0802ACFC: .4byte 0x00000434
-_0802AD00: .4byte gUnknown_80DF250
-_0802AD04: .4byte 0x0000010d
-_0802AD08:
- ldr r0, _0802AD10
- ldr r3, _0802AD14
- b _0802B1A8
- .align 2, 0
-_0802AD10: .4byte gUnknown_80DF304
-_0802AD14: .4byte gUnknown_80DEE60
-_0802AD18:
- ldr r0, _0802AD1C
- b _0802B22E
- .align 2, 0
-_0802AD1C: .4byte gUnknown_80DF330
-_0802AD20:
- bl sub_8030894
- cmp r0, 0
- beq _0802AD2A
- b _0802B2AA
-_0802AD2A:
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- movs r0, 0x5
- movs r1, 0
- movs r2, 0
- movs r3, 0x6
- bl sub_80306A8
- b _0802B2AA
-_0802AD46:
- ldr r0, [r6]
- movs r4, 0xD7
- lsls r4, 2
- adds r0, r4
- bl sub_8006518
- ldr r1, [r6]
- movs r5, 0x87
- lsls r5, 2
- adds r0, r1, r5
- adds r1, r4
- ldr r3, _0802AD78
- ldr r2, _0802AD7C
- str r2, [sp]
- movs r2, 0x1
- str r2, [sp, 0x4]
- movs r2, 0
- str r2, [sp, 0x8]
- str r2, [sp, 0xC]
- movs r2, 0x3
- bl SetMenuItems
- bl sub_803092C
- b _0802ADE0
- .align 2, 0
-_0802AD78: .4byte gUnknown_80DED60
-_0802AD7C: .4byte gUnknown_80DED78
-_0802AD80:
- bl sub_801D008
- cmp r0, 0
- beq _0802AD8A
- b _0802B2AA
-_0802AD8A:
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- add r2, sp, 0xB4
- ldr r0, _0802ADAC
- str r0, [r2]
- movs r0, 0
- movs r1, 0x1
- movs r3, 0x9
- bl sub_801C8C4
- b _0802B2AA
- .align 2, 0
-_0802ADAC: .4byte 0x00020003
-_0802ADB0:
- ldr r0, [r6]
- movs r4, 0xD7
- lsls r4, 2
- adds r0, r4
- bl sub_8006518
- ldr r1, [r6]
- movs r5, 0x87
- lsls r5, 2
- adds r0, r1, r5
- adds r1, r4
- ldr r3, _0802ADF0
- ldr r2, _0802ADF4
- str r2, [sp]
- movs r2, 0x1
- str r2, [sp, 0x4]
- movs r2, 0
- str r2, [sp, 0x8]
- str r2, [sp, 0xC]
- movs r2, 0x3
- bl SetMenuItems
- bl sub_801CCD8
-_0802ADE0:
- ldr r0, [r6]
- adds r0, r5
- movs r1, 0x3
- movs r2, 0x1
- bl sub_8035CF4
- b _0802B2AA
- .align 2, 0
-_0802ADF0: .4byte gUnknown_80DED48
-_0802ADF4: .4byte gUnknown_80DED78
-_0802ADF8:
- ldr r1, [r6]
- movs r0, 0
- str r0, [r1, 0x44]
- bl sub_8011830
- ldr r0, [r6]
- ldr r0, [r0, 0x40]
- bl sub_8037B28
- ldr r1, [r6]
- str r0, [r1, 0x44]
- cmp r0, 0
- bne _0802AEE6
- ldr r0, [r1, 0x40]
- cmp r0, 0x6
- beq _0802AE1E
- cmp r0, 0x7
- beq _0802AE5C
- b _0802AE8C
-_0802AE1E:
- movs r4, 0xDC
- lsls r4, 1
- adds r0, r1, r4
- movs r1, 0
- movs r2, 0x30
- bl MemoryFill8
- ldr r0, [r6]
- movs r5, 0x86
- lsls r5, 2
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8095228
- ldr r1, [r6]
- adds r1, r4
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldr r2, [r6]
- ldr r0, [r2, 0x40]
- adds r4, r2, r4
- movs r1, 0xF4
- lsls r1, 1
- adds r2, r1
- b _0802AE82
-_0802AE5C:
- movs r4, 0xDC
- lsls r4, 1
- adds r0, r1, r4
- movs r1, 0
- movs r2, 0x30
- bl MemoryFill8
- ldr r0, [r6]
- movs r5, 0xF4
- lsls r5, 1
- adds r0, r5
- movs r1, 0
- movs r2, 0x30
- bl MemoryFill8
- ldr r2, [r6]
- ldr r0, [r2, 0x40]
- adds r4, r2, r4
- adds r2, r5
-_0802AE82:
- adds r1, r4, 0
- bl sub_8037D64
- ldr r1, [r6]
- str r0, [r1, 0x44]
-_0802AE8C:
- ldr r4, _0802AED0
- ldr r2, [r4]
- ldr r0, [r2, 0x44]
- cmp r0, 0
- bne _0802AEE6
- ldr r0, [r2, 0x40]
- cmp r0, 0x7
- bhi _0802AEE6
- cmp r0, 0x6
- bcc _0802AEE6
- movs r3, 0xDC
- lsls r3, 1
- adds r1, r2, r3
- movs r5, 0xF4
- lsls r5, 1
- adds r2, r5
- bl sub_80381F4
- ldr r1, [r4]
- str r0, [r1, 0x44]
- bl sub_800D588
- lsls r0, 24
- cmp r0, 0
- beq _0802AED4
- ldr r0, [r4]
- movs r2, 0x86
- lsls r2, 3
- adds r1, r0, r2
- movs r3, 0xFC
- lsls r3, 1
- adds r0, r3
- b _0802AEE2
- .align 2, 0
-_0802AED0: .4byte gUnknown_203B2C4
-_0802AED4:
- ldr r0, [r4]
- movs r5, 0x86
- lsls r5, 3
- adds r1, r0, r5
- movs r2, 0xE4
- lsls r2, 1
- adds r0, r2
-_0802AEE2:
- ldr r0, [r0]
- str r0, [r1]
-_0802AEE6:
- bl xxx_call_start_bg_music
- b _0802B2AA
-_0802AEEC:
- ldr r0, _0802AEF0
- b _0802B22E
- .align 2, 0
-_0802AEF0: .4byte gUnknown_80DF380
-_0802AEF4:
- ldr r0, [r6]
- movs r5, 0xEF
- lsls r5, 2
- adds r0, r5
- bl sub_8006518
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r1, [r6]
- adds r1, 0x8
- movs r0, 0x4
- bl sub_80151C0
- b _0802B2AA
-_0802AF1A:
- ldr r0, [r6]
- movs r1, 0xEF
- lsls r1, 2
- adds r0, r1
- bl sub_8006518
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, [r6]
- movs r2, 0x86
- lsls r2, 2
- adds r0, r2
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8031D70
- b _0802B2AA
-_0802AF46:
- ldr r0, _0802AF4C
- b _0802B22E
- .align 2, 0
-_0802AF4C: .4byte gUnknown_80DF3B4
-_0802AF50:
- ldr r0, _0802AF5C
- ldr r2, [r6]
- movs r5, 0x84
- lsls r5, 3
- adds r2, r5
- b _0802B236
- .align 2, 0
-_0802AF5C: .4byte gUnknown_80DF418
-_0802AF60:
- ldr r0, _0802AF6C
- ldr r2, [r6]
- movs r1, 0x84
- lsls r1, 3
- adds r2, r1
- b _0802B236
- .align 2, 0
-_0802AF6C: .4byte gUnknown_80DF44C
-_0802AF70:
- ldr r0, _0802AF74
- b _0802B22E
- .align 2, 0
-_0802AF74: .4byte gUnknown_80DF46C
-_0802AF78:
- ldr r0, [r6]
- ldr r5, _0802AF90
- adds r0, r5
- ldr r0, [r0]
- cmp r0, 0x4
- bne _0802AF86
- b _0802B2AA
-_0802AF86:
- cmp r0, 0x4
- bgt _0802AF94
- cmp r0, 0x3
- beq _0802AF9A
- b _0802B2AA
- .align 2, 0
-_0802AF90: .4byte 0x00000534
-_0802AF94:
- cmp r0, 0x6
- ble _0802AF9A
- b _0802B2AA
-_0802AF9A:
- ldr r0, _0802AFA8
- ldr r2, [r6]
- movs r1, 0x84
- lsls r1, 3
- adds r2, r1
- b _0802B236
- .align 2, 0
-_0802AFA8: .4byte gUnknown_80DF4F4
-_0802AFAC:
- movs r4, 0x98
- lsls r4, 1
- adds r0, r4, 0
- bl GetMonSpecies
- adds r1, r0, 0
- ldr r5, _0802B00C
- ldr r0, [r5]
- ldr r2, _0802B010
- adds r0, r2
- bl strcpy
- ldr r1, [r5]
- movs r3, 0xAA
- lsls r3, 3
- adds r0, r1, r3
- movs r2, 0
- strh r4, [r0]
- ldr r0, _0802B014
- adds r1, r0
- movs r0, 0x2
- strb r0, [r1]
- ldr r0, [r5]
- adds r3, 0x4
- adds r1, r0, r3
- str r2, [r1]
- movs r1, 0x86
- lsls r1, 3
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x6
- bl sub_809539C
- lsls r0, 24
- lsrs r0, 24
- bl sub_8095228
- adds r2, r0, 0
- adds r0, 0x22
- ldrb r1, [r0]
- cmp r1, 0
- beq _0802B018
- ldr r0, [r5]
- movs r3, 0xAB
- lsls r3, 3
- adds r0, r3
- b _0802B022
- .align 2, 0
-_0802B00C: .4byte gUnknown_203B2C4
-_0802B010: .4byte 0x0000053c
-_0802B014: .4byte 0x00000552
-_0802B018:
- ldr r0, [r5]
- movs r5, 0xAB
- lsls r5, 3
- adds r0, r5
- movs r1, 0
-_0802B022:
- strb r1, [r0]
- ldr r4, _0802B068
- ldr r0, [r4]
- ldr r1, _0802B06C
- adds r0, r1
- movs r5, 0
- movs r1, 0x1
- strb r1, [r0]
- adds r0, r2, 0x4
- movs r1, 0
- bl sub_803C200
- ldr r1, [r4]
- movs r3, 0xAC
- lsls r3, 3
- adds r2, r1, r3
- str r0, [r2]
- ldr r0, _0802B070
- adds r1, r0
- strb r5, [r1]
- ldr r0, [r4]
- ldr r1, _0802B074
- adds r0, r1
- strb r5, [r0]
- ldr r0, [r4]
- ldr r2, _0802B078
- adds r0, r2
- strb r5, [r0]
- ldr r0, [r4]
- subs r3, 0x24
- adds r0, r3
- movs r1, 0
- bl sub_802F204
- b _0802B2AA
- .align 2, 0
-_0802B068: .4byte gUnknown_203B2C4
-_0802B06C: .4byte 0x0000055b
-_0802B070: .4byte 0x00000559
-_0802B074: .4byte 0x0000055a
-_0802B078: .4byte 0x0000055c
-_0802B07C:
- movs r0, 0
- bl nullsub_23
- ldr r0, _0802B090
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80141B4
- b _0802B2AA
- .align 2, 0
-_0802B090: .4byte gUnknown_80DF544
-_0802B094:
- ldr r0, _0802B0A0
- ldr r2, [r6]
- movs r5, 0x84
- lsls r5, 3
- adds r2, r5
- b _0802B236
- .align 2, 0
-_0802B0A0: .4byte gUnknown_80DF594
-_0802B0A4:
- ldr r0, _0802B0A8
- b _0802B1A6
- .align 2, 0
-_0802B0A8: .4byte gUnknown_80DF5E4
-_0802B0AC:
- bl sub_808D33C
- adds r1, r0, 0
- add r6, sp, 0x64
- adds r1, 0x4C
- adds r0, r6, 0
- movs r2, 0xA
- bl sub_80922B4
- ldr r5, _0802B0E0
- ldr r0, [r5]
- ldr r4, _0802B0E4
- adds r0, r4
- ldr r1, _0802B0E8
- adds r2, r6, 0
- bl ExpandPlaceholdersBuffer
- ldr r2, [r5]
- adds r4, r2, r4
- movs r3, 0x84
- lsls r3, 3
- adds r2, r3
- ldr r3, _0802B0EC
- adds r0, r4, 0
- b _0802B238
- .align 2, 0
-_0802B0E0: .4byte gUnknown_203B2C4
-_0802B0E4: .4byte 0x00000434
-_0802B0E8: .4byte gUnknown_80DF63C
-_0802B0EC: .4byte 0x0000010d
-_0802B0F0:
- ldr r0, _0802B108
- ldr r3, _0802B10C
- movs r2, 0
- str r2, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- ldr r1, [r6]
- movs r5, 0x84
- lsls r5, 3
- adds r1, r5
- b _0802B1BA
- .align 2, 0
-_0802B108: .4byte gUnknown_80DF694
-_0802B10C: .4byte gUnknown_80DEEE4
-_0802B110:
- ldr r0, _0802B11C
- ldr r2, [r6]
- movs r1, 0x84
- lsls r1, 3
- adds r2, r1
- b _0802B236
- .align 2, 0
-_0802B11C: .4byte gUnknown_80DF44C
-_0802B120:
- ldr r0, _0802B124
- b _0802B22E
- .align 2, 0
-_0802B124: .4byte gUnknown_80DF6F0
-_0802B128:
- ldr r0, _0802B134
- ldr r2, [r6]
- movs r5, 0x84
- lsls r5, 3
- adds r2, r5
- b _0802B236
- .align 2, 0
-_0802B134: .4byte gUnknown_80DF710
-_0802B138:
- ldr r0, _0802B160
- ldr r3, _0802B164
- movs r2, 0
- str r2, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- ldr r1, [r6]
- movs r2, 0x84
- lsls r2, 3
- adds r1, r2
- str r1, [sp, 0xC]
- movs r1, 0xC
- str r1, [sp, 0x10]
- movs r1, 0
- movs r2, 0
- bl sub_8014248
- b _0802B2AA
- .align 2, 0
-_0802B160: .4byte gUnknown_80DF73C
-_0802B164: .4byte gUnknown_80DEEBC
-_0802B168:
- ldr r0, _0802B18C
- ldr r3, _0802B190
- movs r2, 0
- str r2, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- ldr r1, [r6]
- movs r5, 0x84
- lsls r5, 3
- adds r1, r5
- str r1, [sp, 0xC]
- movs r1, 0xC
- str r1, [sp, 0x10]
- movs r1, 0
- bl sub_8014248
- b _0802B2AA
- .align 2, 0
-_0802B18C: .4byte gUnknown_80DF77C
-_0802B190: .4byte gUnknown_80DEE7C
-_0802B194:
- ldr r0, _0802B1A0
- ldr r2, [r6]
- movs r1, 0x84
- lsls r1, 3
- adds r2, r1
- b _0802B236
- .align 2, 0
-_0802B1A0: .4byte gUnknown_80DF7D4
-_0802B1A4:
- ldr r0, _0802B1CC
-_0802B1A6:
- ldr r3, _0802B1D0
-_0802B1A8:
- movs r2, 0
- str r2, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- ldr r1, [r6]
- movs r2, 0x84
- lsls r2, 3
- adds r1, r2
-_0802B1BA:
- str r1, [sp, 0xC]
- movs r1, 0xC
- str r1, [sp, 0x10]
- movs r1, 0
- movs r2, 0x7
- bl sub_8014248
- b _0802B2AA
- .align 2, 0
-_0802B1CC: .4byte gUnknown_80DF870
-_0802B1D0: .4byte gUnknown_80DEE44
-_0802B1D4:
- ldr r0, _0802B1D8
- b _0802B22E
- .align 2, 0
-_0802B1D8: .4byte gUnknown_80DF8B4
-_0802B1DC:
- ldr r0, _0802B1F4
- ldr r3, _0802B1F8
- movs r2, 0
- str r2, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- ldr r1, [r6]
- movs r5, 0x84
- lsls r5, 3
- adds r1, r5
- b _0802B212
- .align 2, 0
-_0802B1F4: .4byte gUnknown_80DF8EC
-_0802B1F8: .4byte gUnknown_80DEDB8
-_0802B1FC:
- ldr r0, _0802B224
- ldr r3, _0802B228
- movs r2, 0
- str r2, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- ldr r1, [r6]
- movs r2, 0x84
- lsls r2, 3
- adds r1, r2
-_0802B212:
- str r1, [sp, 0xC]
- movs r1, 0xC
- str r1, [sp, 0x10]
- movs r1, 0
- movs r2, 0x1
- bl sub_8014248
- b _0802B2AA
- .align 2, 0
-_0802B224: .4byte gUnknown_80DF928
-_0802B228: .4byte gUnknown_80DEDB8
-_0802B22C:
- ldr r0, _0802B240
-_0802B22E:
- ldr r2, [r6]
- movs r3, 0x84
- lsls r3, 3
- adds r2, r3
-_0802B236:
- ldr r3, _0802B244
-_0802B238:
- movs r1, 0
- bl sub_80141B4
- b _0802B2AA
- .align 2, 0
-_0802B240: .4byte gUnknown_80DF94C
-_0802B244: .4byte 0x0000010d
-_0802B248:
- ldr r4, [r6]
- movs r5, 0xA7
- lsls r5, 3
- adds r0, r4, r5
- ldr r0, [r0]
- cmp r0, 0x1
- beq _0802B25C
- cmp r0, 0x2
- beq _0802B288
- b _0802B2AA
-_0802B25C:
- ldr r0, _0802B280
- ldr r3, _0802B284
- movs r2, 0
- str r2, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- movs r2, 0x84
- lsls r2, 3
- adds r1, r4, r2
- str r1, [sp, 0xC]
- movs r1, 0xC
- str r1, [sp, 0x10]
- movs r1, 0
- movs r2, 0x3
- bl sub_8014248
- b _0802B2AA
- .align 2, 0
-_0802B280: .4byte gUnknown_80DF96C
-_0802B284: .4byte gUnknown_80DEE08
-_0802B288:
- ldr r0, _0802B2B4
- ldr r3, _0802B2B8
- movs r2, 0
- str r2, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- movs r5, 0x84
- lsls r5, 3
- adds r1, r4, r5
- str r1, [sp, 0xC]
- movs r1, 0xC
- str r1, [sp, 0x10]
- movs r1, 0
- movs r2, 0x3
- bl sub_8014248
-_0802B2AA:
- add sp, 0xB8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B2B4: .4byte gUnknown_80DF9A4
-_0802B2B8: .4byte gUnknown_80DEE08
- thumb_func_end sub_802ABF8
-
- .align 2,0
diff --git a/asm/code_802B640.s b/asm/wonder_mail_2.s
index 68c3ef2..f1ec9b6 100644
--- a/asm/code_802B640.s
+++ b/asm/wonder_mail_2.s
@@ -5,290 +5,6 @@
.text
- thumb_func_start sub_802B640
-sub_802B640:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- adds r4, r1, 0
- mov r8, r2
- bl sub_802B9D8
- lsls r0, 24
- cmp r0, 0
- beq _0802B65A
- movs r0, 0
- b _0802B706
-_0802B65A:
- ldr r5, _0802B710
- ldr r0, [r5]
- cmp r0, 0
- bne _0802B66C
- movs r0, 0xD4
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r5]
-_0802B66C:
- ldr r0, [r5]
- str r6, [r0, 0x6C]
- lsls r1, r6, 1
- adds r1, r6
- lsls r1, 3
- adds r1, 0x74
- adds r1, r0, r1
- str r1, [r0, 0x70]
- adds r0, 0x74
- bl sub_8006518
- ldr r1, [r5]
- ldr r2, [r1, 0x6C]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, 0x74
- ldr r0, _0802B714
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- cmp r4, 0
- beq _0802B6B0
- ldr r1, [r5]
- ldr r2, [r1, 0x6C]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, 0x7C
- adds r1, r0
- ldr r0, [r4]
- str r0, [r1]
-_0802B6B0:
- ldr r0, [r5]
- ldr r0, [r0, 0x70]
- mov r1, r8
- bl sub_8012D08
- bl ResetUnusedInputStruct
- ldr r0, [r5]
- adds r0, 0x74
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r4, [r5]
- adds r4, 0x38
- bl sub_802B9A8
- adds r1, r0, 0
- adds r0, r4, 0
- mov r2, r8
- adds r3, r6, 0
- bl sub_8013818
- ldr r2, [r5]
- ldr r0, _0802B718
- ldrh r1, [r0]
- adds r0, r2, 0
- adds r0, 0x50
- strh r1, [r0]
- ldr r0, _0802B71C
- ldrh r0, [r0]
- adds r1, r2, 0
- adds r1, 0x56
- strh r0, [r1]
- adds r0, r2, 0
- adds r0, 0x38
- bl sub_8013984
- bl sub_802B880
- bl sub_802B8D4
- movs r0, 0x1
-_0802B706:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0802B710: .4byte gUnknown_203B2CC
-_0802B714: .4byte gUnknown_80DFBEC
-_0802B718: .4byte gUnknown_203B2D0
-_0802B71C: .4byte gUnknown_203B2D2
- thumb_func_end sub_802B640
-
- thumb_func_start sub_802B720
-sub_802B720:
- push {lr}
- lsls r0, 24
- cmp r0, 0
- bne _0802B73C
- ldr r0, _0802B738
- ldr r0, [r0]
- adds r0, 0x38
- bl sub_8013660
- movs r0, 0
- b _0802B7A2
- .align 2, 0
-_0802B738: .4byte gUnknown_203B2CC
-_0802B73C:
- ldr r0, _0802B754
- ldr r0, [r0]
- adds r0, 0x38
- bl GetKeyPress
- cmp r0, 0x2
- beq _0802B75E
- cmp r0, 0x2
- bgt _0802B758
- cmp r0, 0x1
- beq _0802B768
- b _0802B77C
- .align 2, 0
-_0802B754: .4byte gUnknown_203B2CC
-_0802B758:
- cmp r0, 0x4
- beq _0802B772
- b _0802B77C
-_0802B75E:
- movs r0, 0x1
- bl PlayMenuSoundEffect
- movs r0, 0x2
- b _0802B7A2
-_0802B768:
- movs r0, 0
- bl PlayMenuSoundEffect
- movs r0, 0x3
- b _0802B7A2
-_0802B772:
- movs r0, 0x4
- bl PlayMenuSoundEffect
- movs r0, 0x4
- b _0802B7A2
-_0802B77C:
- ldr r0, _0802B794
- ldr r0, [r0]
- adds r0, 0x38
- movs r1, 0x1
- bl sub_80138B8
- lsls r0, 24
- cmp r0, 0
- bne _0802B798
- movs r0, 0
- b _0802B7A2
- .align 2, 0
-_0802B794: .4byte gUnknown_203B2CC
-_0802B798:
- bl sub_802B880
- bl sub_802B8D4
- movs r0, 0x1
-_0802B7A2:
- pop {r1}
- bx r1
- thumb_func_end sub_802B720
-
- thumb_func_start sub_802B7A8
-sub_802B7A8:
- ldr r0, _0802B7CC
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x56
- movs r3, 0
- ldrsh r1, [r0, r3]
- subs r0, 0x2
- movs r3, 0
- ldrsh r0, [r0, r3]
- muls r0, r1
- adds r1, r2, 0
- adds r1, 0x50
- movs r3, 0
- ldrsh r1, [r1, r3]
- adds r0, r1
- adds r0, r2, r0
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0802B7CC: .4byte gUnknown_203B2CC
- thumb_func_end sub_802B7A8
-
- thumb_func_start sub_802B7D0
-sub_802B7D0:
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ResetUnusedInputStruct
- ldr r5, _0802B818
- ldr r0, [r5]
- adds r0, 0x74
- movs r1, 0
- movs r2, 0
- bl sub_800641C
- bl sub_802B9A8
- adds r1, r0, 0
- ldr r0, [r5]
- adds r2, r0, 0
- adds r2, 0x5A
- strh r1, [r2]
- adds r0, 0x38
- bl sub_8013984
- bl sub_802B880
- bl sub_802B8D4
- cmp r4, 0
- beq _0802B812
- ldr r0, [r5]
- adds r0, 0x38
- bl AddMenuCursorSprite
-_0802B812:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B818: .4byte gUnknown_203B2CC
- thumb_func_end sub_802B7D0
-
- thumb_func_start sub_802B81C
-sub_802B81C:
- push {r4,r5,lr}
- ldr r4, _0802B870
- ldr r2, [r4]
- cmp r2, 0
- beq _0802B86A
- ldr r1, _0802B874
- adds r0, r2, 0
- adds r0, 0x50
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _0802B878
- adds r0, r2, 0
- adds r0, 0x56
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r0, [r2, 0x6C]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r2, r1
- adds r1, 0x74
- ldr r0, _0802B87C
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- adds r0, 0x74
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_0802B86A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B870: .4byte gUnknown_203B2CC
-_0802B874: .4byte gUnknown_203B2D0
-_0802B878: .4byte gUnknown_203B2D2
-_0802B87C: .4byte gUnknown_80DFBD0
- thumb_func_end sub_802B81C
-
thumb_func_start sub_802B880
sub_802B880:
push {r4,lr}
diff --git a/asm/wonder_mail_3.s b/asm/wonder_mail_3.s
index 501d8b0..4fc8c85 100644
--- a/asm/wonder_mail_3.s
+++ b/asm/wonder_mail_3.s
@@ -5350,28 +5350,4 @@ _0802FCCE:
_0802FCEC: .4byte gUnknown_203B314
thumb_func_end sub_802FBF4
- thumb_func_start sub_802FCF0
-sub_802FCF0:
- push {r4,lr}
- movs r4, 0
-_0802FCF4:
- lsls r0, r4, 16
- asrs r0, 16
- bl sub_80A27CC
- lsls r0, 24
- cmp r0, 0
- beq _0802FD06
- movs r0, 0
- b _0802FD0E
-_0802FD06:
- adds r4, 0x1
- cmp r4, 0x2D
- ble _0802FCF4
- movs r0, 0x1
-_0802FD0E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_802FCF0
-
.align 2,0
diff --git a/data/data_80E2068.s b/data/data_80E2068.s
index 0b0aa2c..c2b9b2b 100644
--- a/data/data_80E2068.s
+++ b/data/data_80E2068.s
@@ -853,11 +853,15 @@ gUnknown_80E352C: @ 80E352C
.global gUnknown_80E355C
gUnknown_80E355C: @ 80E355C
- .incbin "baserom.gba", 0xE355C, 0x50
+ .string "Mail can~27t be sent to a GBA Game Pak\n"
+ .string "with the game quicksaved in a dungeon.\0"
+ .align 2,0
.global gUnknown_80E35AC
gUnknown_80E35AC: @ 80E35AC
- .incbin "baserom.gba", 0xE35AC, 0x3C
+ .string "The GBA Game Pak does not have\n"
+ .string "a #CGThank-You Mail#R on it.\0"
+ .align 2,0
.global gUnknown_80E35E8
gUnknown_80E35E8: @ 80E35E8
@@ -866,11 +870,15 @@ gUnknown_80E35E8: @ 80E35E8
.global gUnknown_80E360C
gUnknown_80E360C: @ 80E360C
- .incbin "baserom.gba", 0xE360C, 0x38
+ .string "How would you like to send\n"
+ .string "your #CGThank-You Mail#R?\0"
+ .align 2,0
.global gUnknown_80E3644
gUnknown_80E3644: @ 80E3644
- .incbin "baserom.gba", 0xE3644, 0x38
+ .string "How would you like to receive\n"
+ .string "the #CGThank-You Mail#R?\0"
+ .align 2,0
.global gUnknown_80E367C
gUnknown_80E367C: @ 80E367C
@@ -1279,11 +1287,48 @@ gUnknown_80E5A78: @ 80E5A78
.global gUnknown_80E5A90
gUnknown_80E5A90: @ 80E5A90
- .incbin "baserom.gba", 0xE5A90, 0x6C
+ .4byte Continue_80E5AF0
+ .byte 0x07, 0x00, 0x00, 0x00
+ .4byte DeleteSaveData_80E5ADC
+ .byte 0x08, 0x00, 0x00, 0x00
+ .4byte 0x80E5A10
+ .byte 0x0a, 0x00, 0x00, 0x00
+ .4byte FriendRescue_80E5ACC
+ .byte 0x0b, 0x00, 0x00, 0x00
+ .4byte TradeItems_80E5AC0
+ .byte 0x0c, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0xdd, 0xff, 0x00, 0x00
+
+ TradeItems_80E5AC0:
+ .string "Trade Items\0"
+ .align 2,0
+ FriendRescue_80E5ACC:
+ .string "Friend Rescue\0"
+ .align 2,0
+ DeleteSaveData_80E5ADC:
+ .string "Delete Save Data\0"
+ .align 2,0
+ Continue_80E5AF0:
+ .string "Continue\0"
+ .align 2,0
.global gUnknown_80E5AFC
gUnknown_80E5AFC: @ 80E5AFC
- .incbin "baserom.gba", 0xE5AFC, 0x38
+ .4byte Continue_80E5AF0
+ .byte 0x07, 0x00, 0x00, 0x00
+ .4byte DeleteSaveData_80E5ADC
+ .byte 0x08, 0x00, 0x00, 0x00
+ .4byte 0x80E5A10
+ .byte 0x0a, 0x00, 0x00, 0x00
+ .4byte FriendRescue_80E5ACC
+ .byte 0x0b, 0x00, 0x00, 0x00
+ .4byte TradeItems_80E5AC0
+ .byte 0x0c, 0x00, 0x00, 0x00
+ .4byte 0x80E5A54
+ .byte 0x0d, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0xdd, 0xff, 0x00, 0x00
.global gUnknown_80E5B34
gUnknown_80E5B34: @ 80E5B34
@@ -1296,11 +1341,39 @@ gUnknown_80E5B34: @ 80E5B34
.global gUnknown_80E5B4C
gUnknown_80E5B4C: @ 80E5B4C
- .incbin "baserom.gba", 0xE5B4C, 0x40
+ .4byte AwaitingRescue_80E5B7C
+ .byte 0x06, 0x00, 0x00, 0x00
+ .4byte DeleteSaveData_80E5ADC
+ .byte 0x08, 0x00, 0x00, 0x00
+ .4byte 0x80E5A10
+ .byte 0x0a, 0x00, 0x00, 0x00
+ .4byte FriendRescue_80E5ACC
+ .byte 0x0b, 0x00, 0x00, 0x00
+ .4byte TradeItems_80E5AC0
+ .byte 0x0c, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0xdd, 0xff, 0x00, 0x00
+
+ AwaitingRescue_80E5B7C:
+ .string "Awaiting Rescue\0"
+ .align 2,0
.global gUnknown_80E5B8C
gUnknown_80E5B8C: @ 80E5B8C
- .incbin "baserom.gba", 0xE5B8C, 0x38
+ .4byte AwaitingRescue_80E5B7C
+ .byte 0x06, 0x00, 0x00, 0x00
+ .4byte DeleteSaveData_80E5ADC
+ .byte 0x08, 0x00, 0x00, 0x00
+ .4byte 0x80E5A10
+ .byte 0x0a, 0x00, 0x00, 0x00
+ .4byte FriendRescue_80E5ACC
+ .byte 0x0b, 0x00, 0x00, 0x00
+ .4byte TradeItems_80E5AC0
+ .byte 0x0c, 0x00, 0x00, 0x00
+ .4byte 0x80E5A54
+ .byte 0x0d, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0xdd, 0xff, 0x00, 0x00
.global gUnknown_80E5BC4
gUnknown_80E5BC4: @ 80E5BC4
@@ -1313,7 +1386,22 @@ gUnknown_80E5BC4: @ 80E5BC4
.global gUnknown_80E5BDC
gUnknown_80E5BDC: @ 80E5BDC
- .incbin "baserom.gba", 0xE5BDC, 0x3C
+ .4byte ReviveTeam_80E5C0C
+ .byte 0x07, 0x00, 0x00, 0x00
+ .4byte DeleteSaveData_80E5ADC
+ .byte 0x08, 0x00, 0x00, 0x00
+ .4byte 0x80E5A10
+ .byte 0x0a, 0x00, 0x00, 0x00
+ .4byte FriendRescue_80E5ACC
+ .byte 0x0b, 0x00, 0x00, 0x00
+ .4byte TradeItems_80E5AC0
+ .byte 0x0c, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0xdd, 0xff, 0x00, 0x00
+
+ ReviveTeam_80E5C0C:
+ .string "Revive Team\0"
+ .align 2,0
.global gUnknown_80E5C18
gUnknown_80E5C18: @ 80E5C18
@@ -1494,27 +1582,43 @@ gUnknown_80E61C0: @ 80E61C0
.global gUnknown_80E61E4
gUnknown_80E61E4: @ 80E61E4
- .incbin "baserom.gba", 0xE61E4, 0x30
+ .string "#CG$d0#R #CI$i0(s)#R\n"
+ .string "will be sent.\n"
+ .string "Is that OK?\0"
+ .align 2,0
.global gUnknown_80E6214
gUnknown_80E6214: @ 80E6214
- .incbin "baserom.gba", 0xE6214, 0x54
+ .string "Your friend will send you an item.\n"
+ .string "When you are both ready~2c you\n"
+ .string "may communicate.\0"
+ .align 2,0
.global gUnknown_80E6268
gUnknown_80E6268: @ 80E6268
- .incbin "baserom.gba", 0xE6268, 0x5C
+ .string "Preparing to send an item to your\n"
+ .string "friend. When you are both ready~2c\n"
+ .string "you may communicate.\0"
+ .align 2,0
.global gUnknown_80E62C4
gUnknown_80E62C4: @ 80E62C4
- .incbin "baserom.gba", 0xE62C4, 0x50
+ .string "#+In communication...\n"
+ .string "#+Please wait with the power on.\n"
+ .string "#+To cancel~2c press {B_BUTTON}.\0"
+ .align 2,0
.global gUnknown_80E6314
gUnknown_80E6314: @ 80E6314
- .incbin "baserom.gba", 0xE6314, 0x44
+ .string "You received\n"
+ .string "#CG$d0#R #CI$i0(s)#R.\n"
+ .string "Your adventure will be saved.\0"
+ .align 2,0
.global gUnknown_80E6358
gUnknown_80E6358: @ 80E6358
- .incbin "baserom.gba", 0xE6358, 0x20
+ .string "You sent #CG$d0#R #CI$i0(s)#R.\0"
+ .align 2,0
@ Trade Items Link Errors
.global gTradeItemsCommunicationError
@@ -1524,30 +1628,30 @@ gTradeItemsCommunicationError: @ 80E6378
.global gUnknown_80E639C
gUnknown_80E639C: @ 80E639C
-.string "An incorrect number of GBA systems are\n"
-.string "connected.\n"
-.string "Please redo this process from the start.\0"
-.align 2,0
+ .string "An incorrect number of GBA systems are\n"
+ .string "connected.\n"
+ .string "Please redo this process from the start.\0"
+ .align 2,0
.global gUnknown_80E63F8
gUnknown_80E63F8: @ 80E63F8
-.string "There is no response from your friend.\n"
-.string "Please redo this process from the start.\0"
-.align 2,0
+ .string "There is no response from your friend.\n"
+ .string "Please redo this process from the start.\0"
+ .align 2,0
.global gUnknown_80E6448
gUnknown_80E6448: @ 80E6448
-.string "The sender and receiver appear to be\n"
-.string "in different modes.\n"
-.string "Please redo the process from the start.\0"
-.align 2,0
+ .string "The sender and receiver appear to be\n"
+ .string "in different modes.\n"
+ .string "Please redo the process from the start.\0"
+ .align 2,0
.global gUnknown_80E64AC
gUnknown_80E64AC: @ 80E64AC
-.string "There is no response from your friend.\n"
-.string "Please make sure the sender and receiver\n"
-.string "are ready~2c then redo this from the start.\0"
-.align 2,0
+ .string "There is no response from your friend.\n"
+ .string "Please make sure the sender and receiver\n"
+ .string "are ready~2c then redo this from the start.\0"
+ .align 2,0
.global gTradeItemsHowManyText
gTradeItemsHowManyText: @ 80E6528
@@ -2435,7 +2539,10 @@ gUnknown_80E79E4: @ 80E79E4
.global gUnknown_80E7A48
gUnknown_80E7A48: @ 80E7A48
- .incbin "baserom.gba", 0xE7A48, 0x7C
+ .string "There is no response from your friend.\n"
+ .string "Please make sure the sender and receiver\n"
+ .string "are ready~2c then redo this from the start.\0"
+ .align 2,0
.global gUnknown_80E7AC4
gUnknown_80E7AC4: @ 80E7AC4
@@ -2466,7 +2573,9 @@ gUnknown_80E7B68: @ 80E7B68
.global gUnknown_80E7B88
gUnknown_80E7B88: @ 80E7B88
- .incbin "baserom.gba", 0xE7B88, 0x40
+ .string "The received #CGWonder Mail#R was\n"
+ .string "added to the #CGJob List#R.\0"
+ .align 2,0
.global gUnknown_80E7BC8
gUnknown_80E7BC8: @ 80E7BC8
@@ -2475,11 +2584,17 @@ gUnknown_80E7BC8: @ 80E7BC8
.global gUnknown_80E7BEC
gUnknown_80E7BEC: @ 80E7BEC
- .incbin "baserom.gba", 0xE7BEC, 0x5C
+ .string "Connect a #CGGame Link cable#R.\n"
+ .string "When you and your friend are ready~2c\n"
+ .string "you may communicate. \0"
+ .align 2,0
.global gUnknown_80E7C48
gUnknown_80E7C48: @ 80E7C48
- .incbin "baserom.gba", 0xE7C48, 0x50
+ .string "#+In communication...\n"
+ .string "#+Please wait with the power on.\n"
+ .string "#+To cancel~2c press {B_BUTTON}.\0"
+ .align 2,0
.global gUnknown_80E7C98
gUnknown_80E7C98: @ 80E7C98
diff --git a/data/data_80F4278.s b/data/data_80F4278.s
index a52edf3..d2d3fde 100644
--- a/data/data_80F4278.s
+++ b/data/data_80F4278.s
@@ -2653,8 +2653,8 @@ gUnknown_80F91E0: @ 80F91E0
gUnknown_80F91EC: @ 80F91EC
.incbin "baserom.gba", 0xF91EC, 0x4
- .global gUnknown_80F91F0
-gUnknown_80F91F0: @ 80F91F0
+ .global gTrapNames
+gTrapNames: @ 80F91F0
.incbin "baserom.gba", 0xF91F0, 0x174
.global gUnknown_80F9364
@@ -2809,8 +2809,8 @@ gUnknown_80F9760: @ 80F9760
gUnknown_80F9764: @ 80F9764
.incbin "baserom.gba", 0xF9764, 0x2F0
- .global gUnknown_80F9A54
-gUnknown_80F9A54: @ 80F9A54
+ .global gWeatherNames
+gWeatherNames: @ 80F9A54
.incbin "baserom.gba", 0xF9A54, 0x78
.global gUnknown_80F9ACC
diff --git a/data/personality_test.s b/data/personality_test.s
index b6cd987..dd0119a 100644
--- a/data/personality_test.s
+++ b/data/personality_test.s
@@ -2,113 +2,164 @@
@ Start of Personality Questions - 80F0054
@ Question 1, Category 1 (Hardy)
+
+ HardyQuest1Points:
.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0xcc, 0x00, 0x0f, 0x08
+
+ HardyQuest1Answers:
+ .4byte HardyQuest1_StudyHard
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xb8, 0x00, 0x0f, 0x08
+ .4byte HardyQuest1_LastSecond
.byte 0x01, 0x00, 0x00, 0x00
- .byte 0xa4, 0x00, 0x0f, 0x08
+ .4byte HardyQuest1_Ignore
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
+
+ HardyQuest1_Ignore:
.string "Ignore it and play.\0"
+ HardyQuest1_LastSecond:
.string "At the last second.\0"
+ HardyQuest1_StudyHard:
.string "Study hard.\0"
+
.global HardyQuest1
HardyQuest1:
- .byte 0xe4, 0x00, 0x0f, 0x08
- .byte 0x84, 0x00, 0x0f, 0x08
- .byte 0x54, 0x00, 0x0f, 0x08
+ .4byte HardyQuest1Question
+ .4byte HardyQuest1Answers
+ .4byte HardyQuest1Points
+
+ HardyQuest1Question:
.string "A test is coming up.\n"
.string "How do you study for it?\0"
.align 2,0
@ Question 2, Category 1 (Hardy)
+ HardyQuest2Points:
.byte 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
- .byte 0x54, 0x01, 0x0f, 0x08
+
+ HardyQuest2Answers:
+ .4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0x4c, 0x01, 0x0f, 0x08
+ .4byte HardyQuest2_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
+
+ HardyQuest2_No:
.string "No. \0"
.align 2,0
+ HardyQuest2_Yes:
.string "Yes.\0"
.align 2,0
+
.global HardyQuest2
HardyQuest2:
- .byte 0x68, 0x01, 0x0f, 0x08
- .byte 0x34, 0x01, 0x0f, 0x08
- .byte 0x14, 0x01, 0x0f, 0x08
+ .4byte HardyQuest2Question
+ .4byte HardyQuest2Answers
+ .4byte HardyQuest2Points
+
+ HardyQuest2Question:
.string "Can you focus on something you like?\0"
.align 2,0
@ Question 3, Category 1 (Hardy)
+ HardyQuest3Points:
.byte 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
- .byte 0x54, 0x01, 0x0f, 0x08
+
+ HardyQuest3Answers:
+ .4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xc8, 0x01, 0x0f, 0x08
+ .4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
+
+ HardyQuest3_No:
.string "No.\0"
+
.global HardyQuest3
HardyQuest3:
- .byte 0xd8, 0x01, 0x0f, 0x08
- .byte 0xb0, 0x01, 0x0f, 0x08
- .byte 0x90, 0x01, 0x0f, 0x08
+ .4byte HardyQuest3Question
+ .4byte HardyQuest3Answers
+ .4byte HardyQuest3Points
+
+ HardyQuest3Question:
.string "When the going gets tough~2c do you get\n"
.string "going?\0"
.align 2,0
@ Question 4, Category 1 (Hardy)
+ HardyQuest4Points:
.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
- .byte 0x6c, 0x02, 0x0f, 0x08
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
+
+ HardyQuest4Answers:
+ .4byte HardyQuest4_Full
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0x64, 0x02, 0x0f, 0x08
+ .4byte HardyQuest4_Half
.byte 0x01, 0x00, 0x00, 0x00
- .byte 0x58, 0x02, 0x0f, 0x08
+ .4byte HardyQuest4_Little
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
+
+ HardyQuest4_Little:
.string "A little.\0"
.align 2,0
+
+ HardyQuest4_Half:
.string "Half.\0"
.align 2,0
+
+ HardyQuest4_Full:
.string "Full.\0"
.align 2,0
+
.global HardyQuest4
HardyQuest4:
- .byte 0x80, 0x02, 0x0f, 0x08
- .byte 0x38, 0x02, 0x0f, 0x08
- .byte 0x08, 0x02, 0x0f, 0x08
+ .4byte HardyQuest4Question
+ .4byte HardyQuest4Answers
+ .4byte HardyQuest4Points
+
+ HardyQuest4Question:
.string "There is a bucket. If you put\n"
.string "water in it~2c how high will you fill it?\0"
.align 2,0
@ Question 1, Category 2 (Docile)
+ DocileQuest1Points:
.byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x0c, 0x03, 0x0f, 0x08
+
+ DocileQuest1Answers:
+ .4byte DocileQuest1_Big
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x03, 0x0f, 0x08
+ .4byte DocileQuest1_Small
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
+
+ DocileQuest1_Small:
.string "Small box.\0"
.align 2,0
+
+ DocileQuest1_Big:
.string "Big box.\0"
.align 2,0
+
.global DocileQuest1
DocileQuest1:
- .byte 0x24, 0x03, 0x0f, 0x08
- .byte 0xe8, 0x02, 0x0f, 0x08
- .byte 0xc8, 0x02, 0x0f, 0x08
+ .4byte DocileQuest1Question
+ .4byte DocileQuest1Answers
+ .4byte DocileQuest1Points
+
+ DocileQuest1Question:
.string "You are offered a choice of two gifts.\n"
.string "Which one will you take?\0"
.align 2,0
@@ -121,7 +172,7 @@
.byte 0x9c, 0x03, 0x0f, 0x08
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.string "Take a sniff first.\0"
.align 2,0
.string "Open a window right away.\0"
@@ -146,7 +197,7 @@
.byte 0x60, 0x04, 0x0f, 0x08
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.string "Say thanks~2c but be cool.\0"
.align 2,0
.string "Say thanks with a joke.\0"
@@ -174,7 +225,7 @@
.byte 0x60, 0x05, 0x0f, 0x08
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.string "Is anyone watching...?\0"
.align 2,0
.string "Yay! Yay!\0"
@@ -192,12 +243,12 @@
@ Question 1, Category 3 (Brave)
.byte 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x54, 0x01, 0x0f, 0x08
+ .4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xc8, 0x01, 0x0f, 0x08
+ .4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global BraveQuest1
BraveQuest1:
.byte 0x1c, 0x06, 0x0f, 0x08
@@ -221,7 +272,7 @@
.byte 0x28, 0x07, 0x0f, 0x08
.byte 0x02, 0x00, 0x00, 0x0
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.string "Ignore it.\0"
.align 2,0
.string "Run.\0"
@@ -244,7 +295,7 @@
.byte 0xb8, 0x07, 0x0f, 0x08
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.string "Refuse.\0"
.align 2,0
.string "Rule with the aliens.\0"
@@ -268,7 +319,7 @@
.byte 0xf4, 0x08, 0x0f, 0x08
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.string "Scream in unison.\0"
.align 2,0
.string "Yank open the door.\0"
@@ -295,7 +346,7 @@
.byte 0xcc, 0x09, 0x0f, 0x08
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.byte 0x44, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f
.byte 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x65, 0x61, 0x72, 0x2e, 0x00, 0x43, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x2e, 0x00, 0x00, 0x00, 0x00
.byte 0x48, 0x65, 0x6c, 0x70, 0x7e, 0x32, 0x63, 0x20, 0x65, 0x76, 0x65, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x73, 0x63, 0x61, 0x72, 0x65, 0x64, 0x2e, 0x00, 0x48, 0x65, 0x6c, 0x70, 0x20, 0x77, 0x69, 0x74
@@ -313,12 +364,12 @@
.byte 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
- .byte 0x54, 0x01, 0x0f, 0x08
+ .4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xc8, 0x01, 0x0f, 0x08
+ .4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global JollyQuest1
JollyQuest1:
.byte 0xc8, 0x0a, 0x0f, 0x08
@@ -328,12 +379,12 @@
.byte 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x54, 0x01, 0x0f, 0x08
+ .4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xc8, 0x01, 0x0f, 0x08
+ .4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global JollyQuest2
JollyQuest2:
.byte 0x2c, 0x0b, 0x0f, 0x08
@@ -354,7 +405,7 @@
.byte 0xb0, 0x0b, 0x0f, 0x08
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.byte 0x41, 0x6e, 0x79, 0x77, 0x68, 0x65, 0x72, 0x65
.byte 0x2e, 0x00, 0x00, 0x00, 0x53, 0x70, 0x61, 0x73, 0x2e, 0x00, 0x00, 0x00, 0x54, 0x68, 0x65, 0x20, 0x62, 0x65, 0x61, 0x63, 0x68, 0x21, 0x00, 0x00
.global JollyQuest3
@@ -375,7 +426,7 @@
.byte 0x64, 0x0c, 0x0f, 0x08
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.byte 0x52, 0x69, 0x67, 0x68, 0x74, 0x2e, 0x2e, 0x2e, 0x20, 0x57, 0x65, 0x6c, 0x6c, 0x7e, 0x32, 0x63, 0x20, 0x49, 0x20, 0x67
.byte 0x6f, 0x74, 0x74, 0x61, 0x20, 0x67, 0x6f, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x55, 0x6d, 0x2e, 0x2e, 0x2e, 0x20, 0x43, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x73, 0x61, 0x79, 0x20
.byte 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, 0x3f, 0x00, 0x48, 0x61, 0x68, 0x61, 0x21, 0x20, 0x59, 0x65, 0x73, 0x2e, 0x20, 0x56, 0x65, 0x72, 0x79, 0x20, 0x66, 0x75, 0x6e, 0x6e
@@ -397,12 +448,12 @@
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x54, 0x01, 0x0f, 0x08
+ .4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xc8, 0x01, 0x0f, 0x08
+ .4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global ImpishQuest1
ImpishQuest1:
.byte 0xa0, 0x0d, 0x0f, 0x08
@@ -413,12 +464,12 @@
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x54, 0x01, 0x0f, 0x08
+ .4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xc8, 0x01, 0x0f, 0x08
+ .4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global ImpishQuest2
ImpishQuest2:
.byte 0x08, 0x0e, 0x0f, 0x08
@@ -429,12 +480,12 @@
.byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
- .byte 0x54, 0x01, 0x0f, 0x08
+ .4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xc8, 0x01, 0x0f, 0x08
+ .4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global ImpishQuest3
ImpishQuest3:
@@ -457,7 +508,7 @@
.byte 0xe4, 0x0e, 0x0f, 0x08
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.byte 0x48, 0x65, 0x63, 0x6b, 0x6c, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x66, 0x72, 0x6f
.byte 0x6d, 0x20, 0x62, 0x65, 0x68, 0x69, 0x6e, 0x64, 0x2e, 0x00, 0x00, 0x00, 0x43, 0x61, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x66, 0x72
@@ -484,7 +535,7 @@
.byte 0xc8, 0x0f, 0x0f, 0x08
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.byte 0x53, 0x70, 0x61, 0x72, 0x65, 0x20, 0x6d, 0x65, 0x2e, 0x00, 0x00, 0x00, 0x4c, 0x6f, 0x76, 0x65
.byte 0x20, 0x74, 0x68, 0x65, 0x6d, 0x21, 0x00, 0x00
@@ -504,12 +555,12 @@
.global NaiveQuest2Answers
NaiveQuest2Answers:
- .byte 0x54, 0x01, 0x0f, 0x08
+ .4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xc8, 0x01, 0x0f, 0x08
+ .4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global NaiveQuest2
NaiveQuest2:
@@ -529,12 +580,12 @@
.global NaiveQuest3Answers
NaiveQuest3Answers:
- .byte 0x54, 0x01, 0x0f, 0x08
+ .4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xc8, 0x01, 0x0f, 0x08
+ .4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global NaiveQuest3
NaiveQuest3:
@@ -554,12 +605,12 @@
.global NaiveQuest4Answers
NaiveQuest4Answers:
- .byte 0x54, 0x01, 0x0f, 0x08
+ .4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xc8, 0x01, 0x0f, 0x08
+ .4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global NaiveQuest4
NaiveQuest4:
@@ -588,7 +639,7 @@
.4byte TimidQuest1_Shake
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global TimidQuest1_Shake
TimidQuest1_Shake:
@@ -638,7 +689,7 @@
.4byte TimidQuest2_Little
.byte 0x04, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global TimidQuest2_Little
TimidQuest2_Little:
@@ -693,7 +744,7 @@
.byte 0xa8, 0x13, 0x0f, 0x08
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.string "Clean it.\0"
.align 2,0
@@ -733,7 +784,7 @@
.4byte TimidQuest4_Someone
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global TimidQuest4_Someone
TimidQuest4_Someone:
@@ -776,7 +827,7 @@
.4byte HastyQuest1_Someone
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global HastyQuest1_Someone
HastyQuest1_Someone:
@@ -821,7 +872,7 @@
.4byte HastyQuest2_Give
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global HastyQuest2_Give
HastyQuest2_Give:
@@ -865,7 +916,7 @@
.4byte HastyQuest3_Empty
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global HastyQuest3_Empty
HastyQuest3_Empty:
@@ -909,7 +960,7 @@
.4byte HastyQuest4_Bail
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global HastyQuest4_Bail
HastyQuest4_Bail:
@@ -954,7 +1005,7 @@
.4byte SassyQuest1_Whatever
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global SassyQuest1_Whatever
SassyQuest1_Whatever:
@@ -990,12 +1041,12 @@
.global SassyQuest2Answers
SassyQuest2Answers:
- .byte 0x54, 0x01, 0x0f, 0x08
+ .4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xc8, 0x01, 0x0f, 0x08
+ .4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global SassyQuest2
SassyQuest2:
@@ -1015,12 +1066,12 @@
.global SassyQuest3Answers
SassyQuest3Answers:
- .byte 0x54, 0x01, 0x0f, 0x08
+ .4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xc8, 0x01, 0x0f, 0x08
+ .4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global SassyQuest3
SassyQuest3:
@@ -1041,12 +1092,12 @@
.global SassyQuest4Answers
SassyQuest4Answers:
- .byte 0x54, 0x01, 0x0f, 0x08
+ .4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xc8, 0x01, 0x0f, 0x08
+ .4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global SassyQuest4
SassyQuest4:
@@ -1067,12 +1118,12 @@
.global CalmQuest1Answers
CalmQuest1Answers:
- .byte 0x54, 0x01, 0x0f, 0x08
+ .4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xc8, 0x01, 0x0f, 0x08
+ .4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global CalmQuest1
CalmQuest1:
@@ -1093,12 +1144,12 @@
.global CalmQuest2Answers
CalmQuest2Answers:
- .byte 0x54, 0x01, 0x0f, 0x08
+ .4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xc8, 0x01, 0x0f, 0x08
+ .4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global CalmQuest2
CalmQuest2:
@@ -1119,12 +1170,12 @@
.global CalmQuest3Answers
CalmQuest3Answers:
- .byte 0x54, 0x01, 0x0f, 0x08
+ .4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xc8, 0x01, 0x0f, 0x08
+ .4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global CalmQuest3
CalmQuest3:
@@ -1144,12 +1195,12 @@
.global CalmQuest4Answers
CalmQuest4Answers:
- .byte 0x54, 0x01, 0x0f, 0x08
+ .4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xc8, 0x01, 0x0f, 0x08
+ .4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global CalmQuest4
CalmQuest4:
@@ -1169,12 +1220,12 @@
.global RelaxedQuest1Answers
RelaxedQuest1Answers:
- .byte 0x54, 0x01, 0x0f, 0x08
+ .4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xc8, 0x01, 0x0f, 0x08
+ .4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global RelaxedQuest1
RelaxedQuest1:
@@ -1194,12 +1245,12 @@
.global RelaxedQuest2Answers
RelaxedQuest2Answers:
- .byte 0x54, 0x01, 0x0f, 0x08
+ .4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xc8, 0x01, 0x0f, 0x08
+ .4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global RelaxedQuest2
RelaxedQuest2:
@@ -1228,7 +1279,7 @@
.4byte RelaxedQuest3_Home
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global RelaxedQuest3_Home
RelaxedQuest3_Home:
@@ -1265,12 +1316,12 @@
.global RelaxedQuest4Answers
RelaxedQuest4Answers:
- .byte 0x54, 0x01, 0x0f, 0x08
+ .4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xc8, 0x01, 0x0f, 0x08
+ .4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global RelaxedQuest4
RelaxedQuest4:
@@ -1290,12 +1341,12 @@
.global LonelyQuest1Answers
LonelyQuest1Answers:
- .byte 0x54, 0x01, 0x0f, 0x08
+ .4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xc8, 0x01, 0x0f, 0x08
+ .4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global LonelyQuest1
LonelyQuest1:
@@ -1315,12 +1366,12 @@
.global LonelyQuest2Answers
LonelyQuest2Answers:
- .byte 0x54, 0x01, 0x0f, 0x08
+ .4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xc8, 0x01, 0x0f, 0x08
+ .4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global LonelyQuest2
LonelyQuest2:
@@ -1346,7 +1397,7 @@
.4byte LonelyQuest3_Off
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global LonelyQuest3_Off
LonelyQuest3_Off:
@@ -1387,7 +1438,7 @@
.4byte LonelyQuest4_Huddle
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global LonelyQuest4_Huddle
LonelyQuest4_Huddle:
@@ -1425,12 +1476,12 @@
.global QuirkyQuest1Answers
QuirkyQuest1Answers:
- .byte 0x54, 0x01, 0x0f, 0x08
+ .4byte HardyQuest2_Yes
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xc8, 0x01, 0x0f, 0x08
+ .4byte HardyQuest3_No
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global QuirkyQuest1
QuirkyQuest1:
@@ -1460,7 +1511,7 @@
.4byte QuirkyQuest2_Trouble
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global QuirkyQuest2_Trouble
QuirkyQuest2_Trouble:
@@ -1507,7 +1558,7 @@
.4byte QuirkyQuest3_Afar
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global QuirkyQuest3_Afar
QuirkyQuest3_Afar:
@@ -1558,7 +1609,7 @@
.4byte QuirkyQuest4_EitherSide
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global QuirkyQuest4_EitherSide
QuirkyQuest4_EitherSide:
@@ -1601,7 +1652,7 @@
.4byte MiscQuest1_Others
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global MiscQuest1_Others
MiscQuest1_Others:
@@ -1637,7 +1688,7 @@
.4byte MiscQuest2_DontCare
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global MiscQuest2_DontCare
MiscQuest2_DontCare:
@@ -1669,7 +1720,7 @@
.4byte MiscQuest3NotHappy @ Not happy pointer
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .byte 0xff, 0xff, 0xff, 0xff
+ .4byte -1
.global MiscQuest3NotHappy
MiscQuest3NotHappy:
@@ -1783,7 +1834,7 @@ gGenderMenu: @ 80F275C
.4byte GirlText @ Pointer to girl text
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00 @ end of table
- .byte 0xFF, 0xFF, 0xFF, 0xFF
+ .4byte -1
.global GirlText
GirlText:
diff --git a/include/constants/personality_test.h b/include/constants/personality_test.h
index c711b3c..bd6f159 100644
--- a/include/constants/personality_test.h
+++ b/include/constants/personality_test.h
@@ -1,8 +1,24 @@
#ifndef GUARD_CONSTANTS_PERSONALITY_TEST_H
#define GUARD_CONSTANTS_PERSONALITY_TEST_H
+enum NaturePersonalities {
+ HARDY,
+ DOCILE,
+ BRAVE,
+ JOLLY,
+ IMPISH,
+ NAIVE,
+ TIMID,
+ HASTY,
+ SASSY,
+ CALM,
+ RELAXED,
+ LONELY,
+ QUIRKY,
+ NUM_PERSONALITIES
+};
+
#define NUM_PARTNERS 10
-#define NUM_PERSONALITIES 13
#define NUM_QUIZ_QUESTIONS 55
#define MAX_ASKED_QUESTIONS 8
diff --git a/include/felicity_bank.h b/include/felicity_bank.h
index 9c2ff13..078ebd5 100644
--- a/include/felicity_bank.h
+++ b/include/felicity_bank.h
@@ -13,8 +13,7 @@ struct unkStruct_203B204
u32 unk8;
u32 chosenAmount;
u32 unk10;
- struct MenuItem unk14[5];
- u8 fill3C[0x54 - 0x3C];
+ struct MenuItem unk14[8];
u16 unk54[8];
u32 unk64;
u8 fill68[0x78 - 0x68];
diff --git a/include/friend_area_action_menu.h b/include/friend_area_action_menu.h
index 371811f..e1d07ec 100644
--- a/include/friend_area_action_menu.h
+++ b/include/friend_area_action_menu.h
@@ -17,8 +17,7 @@ struct unkStruct_203B2BC
u16 unkA;
u32 unkC;
struct HeldItem unk10;
- u8 unk14;
- u8 fill15[3];
+ struct ItemSlot unk14;
struct unkSubStruct_203B2BC *unk18;
u32 unk1C;
u32 unk20;
diff --git a/include/gUnknown_203B418.h b/include/gUnknown_203B418.h
index 3b35a90..5323a6e 100644
--- a/include/gUnknown_203B418.h
+++ b/include/gUnknown_203B418.h
@@ -14,7 +14,9 @@ struct unkStruct_203B418
u8 unk7;
u8 fill8[0x11 - 8];
u8 unk11;
- u8 fill12[0xE23C - 0x12];
+ u8 fill12[0x16D - 0x12];
+ u8 unk16D;
+ u8 fill16E[0xE23C - 0x16E];
s16 unkE23C;
s16 unkE23E;
u8 fillE240[0xE265 - 0xE240];
diff --git a/include/gulpin_shop.h b/include/gulpin_shop.h
new file mode 100644
index 0000000..ffa65a1
--- /dev/null
+++ b/include/gulpin_shop.h
@@ -0,0 +1,41 @@
+#ifndef GUARD_GULPIN_SHOP_H
+#define GUARD_GULPIN_SHOP_H
+
+struct unkStruct_Gulpin
+{
+ u8 fill0[0x22];
+ u16 unk22;
+};
+
+struct unkStruct_203B26C
+{
+// size: 0x18C
+ u32 unk0;
+ s32 state;
+ u32 unk8;
+ s16 unkC;
+ u8 unkE;
+ struct unkStruct_Gulpin * unk10;
+ u32 unk14;
+ u32 unk18;
+ u16 unk1C;
+ u16 unk1E;
+ u32 unk20;
+ u32 unk24;
+ struct MenuItem unk28[8];
+ u16 unk68[8];
+ u32 unk78;
+ u8 fill7C[0x118 - 0x7C];
+ /* 0x118 */ struct OpenedFile *faceFile;
+ /* 0x11C */ u8 *faceData;
+ /* 0x120 */ u16 unk120;
+ u16 unk122;
+ u8 unk124;
+ u8 unk125;
+ u8 unk126;
+ u8 unk127;
+ struct OpenedFile **unk128;
+ struct UnkTextStruct2 unk12C[4];
+};
+
+#endif
diff --git a/include/kecleon_items.h b/include/kecleon_items.h
index 1dba655..7cea99a 100644
--- a/include/kecleon_items.h
+++ b/include/kecleon_items.h
@@ -25,8 +25,7 @@ struct unkStruct_203B210
u32 unk28;
u32 unk2C;
u32 unk30;
- struct MenuItem unk34[3];
- u8 fill4C[0x74 - 0x4C];
+ struct MenuItem unk34[8];
u16 unk74[8];
u32 unk84;
u8 fill88[0xD4 - 0x88];
diff --git a/include/main_menu.h b/include/main_menu.h
index 8a0b22d..3d72acb 100644
--- a/include/main_menu.h
+++ b/include/main_menu.h
@@ -18,6 +18,7 @@ enum MainMenuScreens
MENU_DEBUG = 16,
MENU_COMMUNICATION_1 = 19,
MENU_COMMUNICATION_2,
+ // NOTE: 0x1B - 0x22 used by Rescue Password Menu
MENU_DISPLAY_RESCUE_PASSWORD = 33,
MENU_RESCUE_PASSWORD_ENTRY,
MENU_DELETE_SAVE = 46,
diff --git a/include/rescue_password_menu.h b/include/rescue_password_menu.h
new file mode 100644
index 0000000..8781b1f
--- /dev/null
+++ b/include/rescue_password_menu.h
@@ -0,0 +1,26 @@
+#ifndef GUARD_RESCUE_PASSWORD_MENU_H
+#define GUARD_RESCUE_PASSWORD_MENU_H
+
+struct unkSprite
+{
+ u16 unk208;
+ u16 unk20A;
+ u16 unk20C;
+ u16 unk20E;
+};
+
+struct RescuePasswordMenu
+{
+ // size: 0x214
+ u32 currMenu;
+ u32 state;
+ u8 fill8[0x148 - 8];
+ struct UnkTextStruct2 unk148[4];
+ u8 fill1A8[0x208 - 0x1A8];
+
+ struct unkSprite unk208;
+
+ u32 unk210;
+};
+
+#endif
diff --git a/include/text.h b/include/text.h
index eda4f9a..eaf2ffc 100644
--- a/include/text.h
+++ b/include/text.h
@@ -10,8 +10,17 @@ struct UnkTextStruct1 {
u8 unk46;
};
+struct UnkTextStruct2_sub
+{
+ u8 unk0;
+ u8 unk1;
+ u8 unk2;
+ u8 unk3;
+};
+
struct UnkTextStruct2 {
- u8 fill00[0x0c];
+ u8 fill00[0x08];
+ struct UnkTextStruct2_sub unk08;
s16 unk0c;
s16 unkE;
s16 unk10;
diff --git a/include/trade_items_menu.h b/include/trade_items_menu.h
index 8b3b0a9..9ff1438 100644
--- a/include/trade_items_menu.h
+++ b/include/trade_items_menu.h
@@ -6,8 +6,10 @@
struct TradeSubStruct
{
- u8 itemIndex; // item id?
- u8 fill3[0x3];
+ union ItemIdx {
+ u8 itemIndex; // item id?
+ u32 itemIndex_u32;
+ } itemIdx;
u32 numItems; // number of items?
};
diff --git a/include/wonder_mail.h b/include/wonder_mail.h
index 7c36833..9593e3b 100644
--- a/include/wonder_mail.h
+++ b/include/wonder_mail.h
@@ -70,7 +70,9 @@ struct WonderMailStruct_203B2C4
u8 unk3E;
u32 unk40;
u32 linkError; // another link status
- u8 filler48[0x218 - 0x48];
+ u8 filler48[0x1B8 - 0x48];
+ struct unkStruct_8095228 unk1B8;
+ struct unkStruct_8095228 unk1E8;
s8 unk218;
u32 unk21C;
u8 filler220[0x30C - 0x220];
@@ -87,10 +89,23 @@ struct WonderMailStruct_203B2C4
u8 unk42D;
u8 unk42E;
u32 unk430;
- u8 padding3[0x534 - 0x434];
+ u8 formattedString[0x100];
s32 unk534;
u32 unk538;
- u8 fill53C[0x564 - 0x53C];
+ u8 unk53C[0xA];
+ u32 unk548;
+ u32 unk54C;
+ u16 unk550;
+ u8 unk552;
+ u8 unk553;
+ u32 unk554;
+ u8 unk558;
+ u8 unk559;
+ u8 unk55A;
+ u8 unk55B;
+ u8 unk55C;
+ u8 fill55C[0x560 - 0x55D];
+ u32 unk560;
};
void sub_8028B04(u32 r0);
diff --git a/ld_script.txt b/ld_script.txt
index 762f1ae..6bd55fa 100755
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -113,19 +113,20 @@ SECTIONS {
asm/code_801DCC4.o(.text);
src/gulpin_shop.o(.text);
asm/gulpin_shop.o(.text);
+ src/gulpin_shop_1.o(.text);
asm/friend_list_menu.o(.text);
src/friend_area_action_menu.o(.text);
asm/friend_area_action_menu.o(.text);
src/friend_area_action_menu_1.o(.text);
- asm/code_8027C84.o(.text);
+ asm/friend_area_action_menu_1.o(.text);
src/wonder_mail_pre.o(.text);
asm/wonder_mail.o(.text);
src/wonder_mail.o(.text);
- asm/wonder_mail_1.o(.text);
src/wonder_mail_2.o(.text);
- asm/code_802B640.o(.text);
+ asm/wonder_mail_2.o(.text);
src/wonder_mail_3.o(.text);
asm/wonder_mail_3.o(.text);
+ src/wonder_mail_3_1.o(.text);
src/makuhita_dojo.o(.text);
asm/makuhita_dojo.o(.text);
asm/wonder_mail_4.o(.text);
@@ -149,7 +150,9 @@ SECTIONS {
src/unk_menu_203B360_1.o(.text);
src/unk_menu_203B364.o(.text);
asm/unk_menu_203B364.o(.text);
+ src/rescue_password_menu.o(.text);
asm/rescue_password_menu.o(.text);
+ src/rescue_password_menu_1.o(.text);
src/load_screen.o(.text);
src/wonder_mail_main_menu.o(.text);
asm/wonder_mail_main_menu.o(.text);
diff --git a/src/code_801AFA4.c b/src/code_801AFA4.c
index c9d71dd..b7b9234 100644
--- a/src/code_801AFA4.c
+++ b/src/code_801AFA4.c
@@ -3,6 +3,7 @@
#include "text.h"
#include "item.h"
#include "team_inventory.h"
+#include "menu.h"
extern struct TeamInventory *gTeamInventory_203B460;
@@ -30,7 +31,7 @@ extern void sub_801B178(void);
extern void sub_8094060(u32 *, u32 *);
extern void PlaySound(u32);
extern void sub_80141B4(u32 *, u32, u32 ,u32);
-extern void sub_8014248(u32 *, u32, u32, u32 *, u32, u32, u32, u32, u32);
+extern void sub_8014248(u32 *, u32, u32, struct MenuItem *, u32, u32, u32, u32, u32);
struct subStruct_203B22C
{
@@ -51,13 +52,13 @@ struct unkStruct_203B22C
u16 unk5A;
struct subStruct_203B22C *unk5C;
u32 unk60;
- u32 unk64;
+ /* 0x64 */ struct MenuItem menuItems[8];
};
extern struct unkStruct_203B22C *gUnknown_203B22C;
u32 sub_801AFA4(u32 r0)
{
- gUnknown_203B22C = MemoryAlloc(0xA4, 8);
+ gUnknown_203B22C = MemoryAlloc(sizeof(struct unkStruct_203B22C), 8);
gUnknown_203B22C->unk4 = r0;
gUnknown_203B22C->unk8 = gTeamInventory_203B460->teamItems[r0].itemIndex;
gUnknown_203B22C->unkA = GetItemMove(gUnknown_203B22C->unk8);
@@ -122,7 +123,7 @@ void sub_801B080(void)
sub_801B178();
// #+Who will learn the move
// #+#C5$m7#R?
- sub_8014248(&gUnknown_80DB9BC, 0, gUnknown_203B22C->unk60, &gUnknown_203B22C->unk64, 0, 4, 0, 0, 0x20);
+ sub_8014248(&gUnknown_80DB9BC, 0, gUnknown_203B22C->unk60, gUnknown_203B22C->menuItems, 0, 4, 0, 0, 0x20);
break;
case 1:
DisplayGulpinDialogueSprite(2, gUnknown_203B22C->unk58, &gUnknown_203B22C->unkC);
diff --git a/src/code_801DCC4.c b/src/code_801DCC4.c
index 0fde1a2..a17b3b9 100644
--- a/src/code_801DCC4.c
+++ b/src/code_801DCC4.c
@@ -13,8 +13,7 @@ struct unkStruct_203B25C
u32 unk18;
const char *unk1C;
u8 fill20[0x6C - 0x20];
- struct MenuItem unk6C[3];
- u8 fill84[0xAC - 0x84];
+ struct MenuItem menuItems[8];
u16 unkAC[8];
struct UnkTextStruct2 unkBC[4];
};
@@ -137,7 +136,7 @@ void sub_801DD84(void)
// TODO probably could be cleaned up to actually match
iVar3 = 0;
if (gUnknown_203B25C->unkAC[iVar3] == 0) {
- gUnknown_203B25C->unk18 = gUnknown_203B25C->unk6C[iVar3].menuAction;
+ gUnknown_203B25C->unk18 = gUnknown_203B25C->menuItems[iVar3].menuAction;
}
else {
do {
@@ -145,7 +144,7 @@ void sub_801DD84(void)
if(iVar3 > 7)
break;
if(gUnknown_203B25C->unkAC[iVar3] == 0){
- gUnknown_203B25C->unk18 = gUnknown_203B25C->unk6C[iVar3].menuAction;
+ gUnknown_203B25C->unk18 = gUnknown_203B25C->menuItems[iVar3].menuAction;
break;
}
} while (iVar3 < 8);
@@ -155,7 +154,7 @@ void sub_801DD84(void)
gUnknown_203B25C->unkBC[iVar3] = gUnknown_80DBFCC;
}
gUnknown_203B25C->unkBC[0] = gUnknown_80DBFB0;
- sub_8012CAC(&gUnknown_203B25C->unkBC[0], gUnknown_203B25C->unk6C);
+ sub_8012CAC(&gUnknown_203B25C->unkBC[0], gUnknown_203B25C->menuItems);
gUnknown_203B25C->unkBC[0].unk0c = 0xA;
break;
case 1:
@@ -165,7 +164,7 @@ void sub_801DD84(void)
gUnknown_203B25C->unkBC[iVar3] = gUnknown_80DBFB0;
}
gUnknown_203B25C->unkBC[0] = gUnknown_80DBFCC;
- sub_8012CAC(&gUnknown_203B25C->unkBC[0], gUnknown_203B25C->unk6C);
+ sub_8012CAC(&gUnknown_203B25C->unkBC[0], gUnknown_203B25C->menuItems);
gUnknown_203B25C->unkBC[0].unk0c = 0xA;
break;
default:
@@ -353,7 +352,7 @@ void sub_801DED0(void)
case 0:
case 1:
gUnknown_203B25C->unk1C = gOthers_MenuOption;
- sub_8012D60(&gUnknown_203B25C->unk1C,gUnknown_203B25C->unk6C,0,gUnknown_203B25C->unkAC,gUnknown_203B25C->unk18,0);
+ sub_8012D60(&gUnknown_203B25C->unk1C,gUnknown_203B25C->menuItems,0,gUnknown_203B25C->unkAC,gUnknown_203B25C->unk18,0);
break;
case 3:
sub_801E3F0(0);
@@ -372,7 +371,7 @@ void sub_801DED0(void)
case 7:
CreateChangeSettingsConfirmMenu();
// Change settings?
- sub_8014248(gUnknown_80DBFEC,0,4,gUnknown_203B25C->unk6C,0,4,0,0,0x20);
+ sub_8014248(gUnknown_80DBFEC,0,4,gUnknown_203B25C->menuItems,0,4,0,0,0x20);
break;
}
}
@@ -388,13 +387,13 @@ void CreateOthersMenu(void)
// This is dumb that I have to squeeze this in like this
preload = gUnknown_203B25C;
blankText = NULL;
- preload->unk6C[0].text = gOthers_GameOptions;
- preload->unk6C[0].menuAction = MENU_OPTION_GAMEOPTIONS;
+ preload->menuItems[0].text = gOthers_GameOptions;
+ preload->menuItems[0].menuAction = MENU_OPTION_GAMEOPTIONS;
defaultAction = MENU_OPTION_DEFAULT;
- preload->unk6C[1].text = gOthers_Hints;
- preload->unk6C[1].menuAction = MENU_OPTION_HINTS;
- preload->unk6C[2].text = blankText;
- preload->unk6C[2].menuAction = defaultAction;
+ preload->menuItems[1].text = gOthers_Hints;
+ preload->menuItems[1].menuAction = MENU_OPTION_HINTS;
+ preload->menuItems[2].text = blankText;
+ preload->menuItems[2].menuAction = defaultAction;
}
void CreateChangeSettingsConfirmMenu(void)
@@ -408,13 +407,13 @@ void CreateChangeSettingsConfirmMenu(void)
// This is dumb that I have to squeeze this in like this
preload = gUnknown_203B25C;
blankText = NULL;
- preload->unk6C[0].text = *gUnknown_80D4920; // Yes
- preload->unk6C[0].menuAction = MENU_OPTION_YES;
+ preload->menuItems[0].text = *gUnknown_80D4920; // Yes
+ preload->menuItems[0].menuAction = MENU_OPTION_YES;
defaultAction = MENU_OPTION_DEFAULT;
- preload->unk6C[1].text = *gUnknown_80D4928; // No
- preload->unk6C[1].menuAction = MENU_OPTION_NO;
- preload->unk6C[2].text = blankText;
- preload->unk6C[2].menuAction = defaultAction;
+ preload->menuItems[1].text = *gUnknown_80D4928; // No
+ preload->menuItems[1].menuAction = MENU_OPTION_NO;
+ preload->menuItems[2].text = blankText;
+ preload->menuItems[2].menuAction = defaultAction;
}
void HandleOthersMenu(void)
diff --git a/src/code_8041AD0.c b/src/code_8041AD0.c
index 738b881..b411a26 100644
--- a/src/code_8041AD0.c
+++ b/src/code_8041AD0.c
@@ -1,5 +1,6 @@
#include "global.h"
#include "code_8041D5C.h"
+#include "gUnknown_203B418.h"
struct unkStruct_80420E8
{
@@ -8,7 +9,7 @@ struct unkStruct_80420E8
u32 unk8;
};
-extern u8 *gUnknown_203B418;
+extern struct unkStruct_203B418 *gUnknown_203B418;
extern void sub_803ED30(u8, struct unkDungeon_8041D5C *r0, u8, u8);
@@ -593,7 +594,7 @@ void sub_80420E8(struct unkDungeon_8041D5C *r0, struct unkStruct_80420E8 *r1)
u32 temp;
u32 arg;
temp = r1->unk8;
- if(gUnknown_203B418[0x16d] != 0)
+ if(gUnknown_203B418->unk16D != 0)
temp = sub_806F62C(r1->unk8);
switch(temp)
{
diff --git a/src/code_80958E8.c b/src/code_80958E8.c
index 72cc735..f32a41b 100644
--- a/src/code_80958E8.c
+++ b/src/code_80958E8.c
@@ -3,6 +3,7 @@
#include "item.h"
#include "friend_area.h"
#include "constants/friend_area.h"
+#include "sub_8095228.h"
#include "wonder_mail.h"
#include "constants/wonder_mail.h"
diff --git a/src/code_80A26CC.c b/src/code_80A26CC.c
index 110c278..bc5f60e 100644
--- a/src/code_80A26CC.c
+++ b/src/code_80A26CC.c
@@ -69,24 +69,13 @@ u32 sub_80A2688(u8 r0, u32 r1)
// u8 cast is needed for only this compare
if ((u8)uVar1 < 0x17)
- {
return uVar1;
- }
+ else if(r0 == 0x2F)
+ return 0x17;
+ else if (r0 == 0x30)
+ return 0x18;
else
- {
- if(r0 == 0x2F)
- {
- return 0x17;
- }
- else if (r0 == 0x30)
- {
- return 0x18;
- }
- else
- {
- return -1;
- }
- }
+ return -1;
}
s16 sub_80A26B8(s16 r0)
@@ -151,7 +140,7 @@ u8 sub_80A2740(s16 r0)
return temp->unkC;
}
-u32 sub_80A2750(s16 r0)
+s16 sub_80A2750(s16 r0)
{
struct unkStruct_80A2608 *temp;
s32 temp_32;
@@ -184,7 +173,7 @@ u32 sub_80A2750(s16 r0)
return 2;
}
-u32 sub_80A27CC(s16 r0)
+u8 sub_80A27CC(s16 r0)
{
s32 temp;
s32 temp2;
@@ -208,15 +197,13 @@ u32 sub_80A27CC(s16 r0)
return 1;
}
-u32 sub_80A2824(u8 r0)
+u8 sub_80A2824(u8 r0)
{
s32 counter;
struct unkStruct_80A2608 *temp;
if(sub_80023E4(5) != 0)
- {
return 0;
- }
if(sub_80023E4(1) != 0)
{
for(counter = 0; counter <= 0x2D; counter++)
@@ -227,13 +214,9 @@ u32 sub_80A2824(u8 r0)
if(temp->unkC == r0)
{
if(sub_8097384(counter) != 0)
- {
return 1;
- }
if(sub_80973F4(counter) != 0)
- {
return 1;
- }
}
}
}
@@ -244,15 +227,9 @@ u32 sub_80A2824(u8 r0)
{
temp = sub_80A2620(counter);
if(temp->unk11 != 0)
- {
if(temp->unkC == r0)
- {
if(sub_8097384(counter) != 0)
- {
return 1;
- }
- }
- }
}
}
return 0;
@@ -267,13 +244,9 @@ u32 sub_80A28B4(s16 r0)
if(temp->unk0 != -1)
{
if(sub_8097384(r0) == 0 && sub_80973F4(r0) == 0)
- {
return 0;
- }
else
- {
return 1;
- }
}
return 0;
}
@@ -283,7 +256,7 @@ u32 sub_80A28F0(u8 r0)
s32 counter;
struct unkStruct_80A2608 *temp;
- for(counter = 0; counter <= 0x2D; counter++)
+ for(counter = 0; counter < 0x2E; counter++)
{
temp = sub_80A2620(counter);
if(temp->unk11 != 0)
@@ -291,13 +264,9 @@ u32 sub_80A28F0(u8 r0)
if(temp->unkC == r0)
{
if(sub_8097384(counter) != 0)
- {
return 1;
- }
if(sub_80973F4(counter) != 0)
- {
return 1;
- }
}
}
}
diff --git a/src/debug_menu_2.c b/src/debug_menu_2.c
index dbcb60e..0704581 100644
--- a/src/debug_menu_2.c
+++ b/src/debug_menu_2.c
@@ -24,8 +24,7 @@ struct unkStruct_203B3F8
u32 unk7C;
u32 unk80;
u8 fill84[0x90 - 0x84];
- struct MenuItem unk90[3];
- u8 fillA8[0xD0 - 0xA8];
+ struct MenuItem unk90[8];
u16 unkD0[8];
struct UnkTextStruct2 unkE0[4];
};
diff --git a/src/debug_menu_mid.c b/src/debug_menu_mid.c
index 5244c4b..a07b6c5 100644
--- a/src/debug_menu_mid.c
+++ b/src/debug_menu_mid.c
@@ -13,8 +13,7 @@ struct unkStruct_203B3F0
u8 itemIndex;
u8 fill5[0x8 - 5];
u32 unk8;
- struct MenuItem menus[3];
- u8 fill24[0x4C - 0x24];
+ struct MenuItem menuItems[8];
u32 unk4C;
u8 fill50[0x9C - 0x50];
u32 unk9C;
@@ -39,8 +38,7 @@ struct unkStruct_203B3F4
u8 unk4;
u8 fill5[0x8 - 5];
u32 unk8;
- struct MenuItem menus[3];
- u8 fill24[0x4C - 0x24];
+ struct MenuItem menuItems[8];
u32 unk4C;
u8 fill50[0x9C - 0x50];
struct UnkTextStruct2 unk9C[4];
@@ -193,7 +191,7 @@ void sub_803A5A0(void)
case 2:
sub_801CCD8();
sub_803A6F0();
- sub_8012D60(&gUnknown_203B3F0->unk4C, gUnknown_203B3F0->menus, 0, 0, gUnknown_203B3F0->unk8, 2);
+ sub_8012D60(&gUnknown_203B3F0->unk4C, gUnknown_203B3F0->menuItems, 0, 0, gUnknown_203B3F0->unk8, 2);
break;
case 3:
gUnknown_203B3F0->unkAC = 3;
@@ -232,20 +230,20 @@ void sub_803A6F0(void)
s32 temp1;
struct unkStruct_203B3F0 *preload;
- gUnknown_203B3F0->menus[0].text = &gDebug_NumberText;
- gUnknown_203B3F0->menus[0].menuAction = 2;
+ gUnknown_203B3F0->menuItems[0].text = &gDebug_NumberText;
+ gUnknown_203B3F0->menuItems[0].menuAction = 2;
gUnknown_203B3F0->unk8 = 2;
if (!IsNotMoneyOrUsedTMItem(gUnknown_203B3F0->itemIndex)) {
- gUnknown_203B3F0->menus[0].menuAction = -1;
+ gUnknown_203B3F0->menuItems[0].menuAction = -1;
gUnknown_203B3F0->unk8 = 3;
}
preload = gUnknown_203B3F0;
// this var gets loaded in between the sets... very dumb
temp1 = 1;
- preload->menus[1].text = *gUnknown_80D4970;
- preload->menus[1].menuAction = 3;
- preload->menus[2].text = NULL;
- preload->menus[2].menuAction = temp1;
+ preload->menuItems[1].text = *gUnknown_80D4970;
+ preload->menuItems[1].menuAction = 3;
+ preload->menuItems[2].text = NULL;
+ preload->menuItems[2].menuAction = temp1;
}
void sub_803A740(void)
@@ -403,7 +401,7 @@ void sub_803A9AC(void)
case 2:
sub_8021494();
sub_803AA34();
- sub_8012D60(&gUnknown_203B3F4->unk4C,gUnknown_203B3F4->menus,0,0,gUnknown_203B3F4->unk8,2);
+ sub_8012D60(&gUnknown_203B3F4->unk4C,gUnknown_203B3F4->menuItems,0,0,gUnknown_203B3F4->unk8,2);
break;
case 3:
sub_8021774(gUnknown_203B3F4->unk4,1,0);
diff --git a/src/friend_area_action_menu.c b/src/friend_area_action_menu.c
index 20beb31..3ffed40 100644
--- a/src/friend_area_action_menu.c
+++ b/src/friend_area_action_menu.c
@@ -20,7 +20,7 @@ extern const char gUnknown_80DD8D0[];
extern void sub_80141B4(const char *r0, u32, u32 *r1, u32);
extern void sub_8014248(const char *r0, u32, u32, struct MenuItem *r4, u32, u32, u32, u32 *r5, u32);
extern void sub_8012D60(u32 *, struct MenuItem *, u32, u32 *, u32, u32);
-extern void sub_8027D40(u32, u8 *);
+extern void sub_8027D40(u32, struct ItemSlot *);
extern void sub_8023868(u32, u32, u32, u32);
extern void sub_8023B7C(u32);
extern void sub_8023DA4();
@@ -38,7 +38,7 @@ extern void sub_809401C(u32 *, u32 *);
extern void sub_801EE10(u32, s16, u32 *, u32, u32, u32);
extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *);
-extern void sub_8027184(u32);
+extern void SetFriendAreaActionMenuState(u32);
extern void ResetSprites(u8 );
extern void sub_802719C();
extern void sub_8027274();
@@ -65,7 +65,7 @@ u32 sub_8027074(void)
gUnknown_203B2BC->unk70 = 0;
gUnknown_203B2BC->unk74 = 0;
gUnknown_203B2BC->unk78 = 0;
- sub_8027184(0);
+ SetFriendAreaActionMenuState(0);
return 1;
}
@@ -73,7 +73,7 @@ u32 sub_80270A4(void)
{
switch(gUnknown_203B2BC->state) {
case 0:
- sub_8027184(1);
+ SetFriendAreaActionMenuState(1);
break;
case 1:
case 2:
@@ -129,7 +129,7 @@ void sub_8027168(void)
}
}
-void sub_8027184(u32 newState)
+void SetFriendAreaActionMenuState(u32 newState)
{
gUnknown_203B2BC->state = newState;
sub_802719C();
diff --git a/src/friend_area_action_menu_1.c b/src/friend_area_action_menu_1.c
index f35bcfa..a848fff 100644
--- a/src/friend_area_action_menu_1.c
+++ b/src/friend_area_action_menu_1.c
@@ -14,14 +14,14 @@ void sub_801B450();
u32 sub_801EF38(u8 r0);
void sub_801F214();
-extern void sub_8027184(u32);
+extern void SetFriendAreaActionMenuState(u32);
extern u8 sub_8012FD8(u32 *r0);
extern void sub_8013114(u32 *, s32 *);
extern void PlaySound(u32);
extern void ShiftItemsDownFrom(u32);
extern void FillInventoryGaps();
extern void nullsub_104();
-extern void sub_8091274(u8 *);
+extern void sub_8091274(struct ItemSlot *);
extern void sub_801A928();
extern void sub_8099690(u32);
extern void GivePokemonItem(s16, struct HeldItem *);
@@ -41,7 +41,7 @@ void sub_8027AE4(void)
{
case 1:
case 3:
- sub_8027184(2);
+ SetFriendAreaActionMenuState(2);
break;
case 2:
sub_8027EB8();
@@ -59,18 +59,18 @@ void sub_8027B28(void)
gUnknown_203B2BC->unkC = sub_801A8AC();
gUnknown_203B2BC->unk10.itemIndex = gTeamInventory_203B460->teamItems[gUnknown_203B2BC->unkC].itemIndex;
gUnknown_203B2BC->unk10.numItems = gTeamInventory_203B460->teamItems[gUnknown_203B2BC->unkC].numItems;
- sub_8027184(0xc);
+ SetFriendAreaActionMenuState(0xc);
break;
case 4:
gUnknown_203B2BC->unkC = sub_801A8AC();
gUnknown_203B2BC->unk10.itemIndex = gTeamInventory_203B460->teamItems[gUnknown_203B2BC->unkC].itemIndex;
gUnknown_203B2BC->unk10.numItems = gTeamInventory_203B460->teamItems[gUnknown_203B2BC->unkC].numItems;
sub_8099690(0);
- sub_8027184(0xd);
+ SetFriendAreaActionMenuState(0xd);
break;
case 2:
sub_801A928();
- sub_8027184(2);
+ SetFriendAreaActionMenuState(2);
break;
case 0:
case 1:
@@ -93,20 +93,20 @@ void sub_8027BD8(void)
PlaySound(0x14d);
ShiftItemsDownFrom(gUnknown_203B2BC->unkC);
FillInventoryGaps();
- if (gUnknown_203B2BC->unk14 != 0) {
+ if (gUnknown_203B2BC->unk14.unk0 != 0) {
sub_8091274(&gUnknown_203B2BC->unk14);
}
GivePokemonItem(gUnknown_203B2BC->unk8,&gUnknown_203B2BC->unk10);
sub_801A928();
nullsub_104();
- sub_8027184(2);
+ SetFriendAreaActionMenuState(2);
break;
case 4:
sub_8099690(0);
- sub_8027184(0xd);
+ SetFriendAreaActionMenuState(0xd);
break;
case 1:
- sub_8027184(0xb);
+ SetFriendAreaActionMenuState(0xb);
break;
}
}
@@ -119,5 +119,5 @@ void sub_8027C84()
if(temp > 3)
return;
sub_801B450();
- sub_8027184(0xB);
+ SetFriendAreaActionMenuState(0xB);
}
diff --git a/src/friend_rescue_1.c b/src/friend_rescue_1.c
index 8c9612c..499ba92 100644
--- a/src/friend_rescue_1.c
+++ b/src/friend_rescue_1.c
@@ -28,7 +28,7 @@ extern u8 sub_80953D4(u32);
extern u8 sub_801CF14(u32);
extern u8 gUnknown_80E48A8[];
-extern u32 gUnknown_80E2440;
+extern struct MenuItem gUnknown_80E2440[];
extern u8 gUnknown_80E49C4[];
extern u8 gUnknown_80E4704[];
extern u8 gUnknown_80E48E8[];
@@ -36,7 +36,7 @@ extern u8 gUnknown_80E4928[];
extern u8 gUnknown_80E4964[];
extern u8 gUnknown_80E499C[];
extern u8 gUnknown_80E460C[];
-extern u32 gUnknown_80E2290[];
+extern struct MenuItem gUnknown_80E2290[];
extern u8 gUnknown_80E31FC[];
@@ -44,7 +44,7 @@ extern u32 sub_80154F0();
extern void sub_80155F0();
struct unkStruct_8095228 *sub_8095228(u8);
extern void sub_80141B4(u8 *r0, u32, u32 *r1, u32);
-extern void sub_8014248(const char *r0, u32, u32, u32 *r4, u32, u32, u32, u32 *r5, u32);
+extern void sub_8014248(const char *r0, u32, u32, struct MenuItem *r4, u32, u32, u32, u32 *r5, u32);
extern u8 sub_8012FD8(u32 *);
extern void sub_8013114(u32 *, s32 *);
@@ -69,7 +69,6 @@ extern u8 sub_80307EC(void);
extern u32 sub_8031DCC(void);
extern void sub_8031E10(void);
extern void sub_8031E00(void);
-extern void PrintFriendRescueError(u32);
extern u8 sub_8024108(u32);
extern void sub_802452C(void);
extern u32 sub_80244E4(void);
@@ -1343,7 +1342,7 @@ void sub_8034D74(void)
switch(sub_8039068(0x20, gUnknown_203B33C->passwordBuffer, &temp.unk0))
{
case 17:
- sub_8014248(gUnknown_80E48A8, 0, 6, &gUnknown_80E2440, 0, 4, 0, 0, 0x101);
+ sub_8014248(gUnknown_80E48A8, 0, 6, gUnknown_80E2440, 0, 4, 0, 0, 0x101);
SetFriendRescueMenuState(0x74);
break;
case 20:
diff --git a/src/gulpin_shop.c b/src/gulpin_shop.c
index 0600bef..69c6a52 100644
--- a/src/gulpin_shop.c
+++ b/src/gulpin_shop.c
@@ -4,38 +4,9 @@
#include "memory.h"
#include "text.h"
#include "input.h"
+#include "menu.h"
+#include "gulpin_shop.h"
-struct unkStruct_Gulpin
-{
- u8 fill0[0x22];
- u16 unk22;
-};
-
-struct unkStruct_203B26C
-{
-// size: 0x18C
- u32 unk0;
- u32 unk4;
- u32 unk8;
- s16 unkC;
- u8 unkE;
- struct unkStruct_Gulpin * unk10;
- u8 fill14[0x1C - 0x14];
- u16 unk1C;
- u8 fill20[0x28 - 0x20];
- u32 unk28;
- u8 fill2C[0x118 - 0x2C];
- /* 0x118 */ struct OpenedFile *faceFile;
- /* 0x11C */ u8 *faceData;
- /* 0x120 */ u16 unk120;
- u16 unk122;
- u8 unk124;
- u8 unk125;
- u8 unk126;
- u8 unk127;
- struct OpenedFile **unk128;
- struct UnkTextStruct2 unk12C[4];
-};
extern struct unkStruct_203B26C *gUnknown_203B26C;
extern const struct UnkTextStruct2 gUnknown_80DC11C;
extern const struct UnkTextStruct2 gUnknown_80DC134;
@@ -47,7 +18,7 @@ extern void sub_801EDA4();
extern void sub_801EDC0();
extern void sub_801E980();
extern void sub_801EA28();
-extern void sub_8012CAC(struct UnkTextStruct2 *, u32 *);
+extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *);
extern void sub_801EBC4();
u32 DisplayGulpinDialogueSprite(s32 param_1,s16 param_2,struct unkStruct_Gulpin *param_3)
@@ -85,7 +56,7 @@ u32 DisplayGulpinDialogueSprite(s32 param_1,s16 param_2,struct unkStruct_Gulpin
u32 sub_801E8C0(void)
{
- switch(gUnknown_203B26C->unk4)
+ switch(gUnknown_203B26C->state)
{
case 0:
case 1:
@@ -99,7 +70,7 @@ u32 sub_801E8C0(void)
break;
case 4:
sub_801EDC0();
- if(gUnknown_203B26C->unk4 == 5)
+ if(gUnknown_203B26C->state == 5)
return 3;
break;
case 5:
@@ -127,7 +98,7 @@ void sub_801E93C(void)
void UpdateGulpinShopState(u32 newState)
{
- gUnknown_203B26C->unk4 = newState;
+ gUnknown_203B26C->state = newState;
sub_801E980();
sub_801EA28();
}
@@ -137,13 +108,13 @@ void sub_801E980(void)
s32 iVar2;
sub_8006518(gUnknown_203B26C->unk12C);
- switch(gUnknown_203B26C->unk4)
+ switch(gUnknown_203B26C->state)
{
case 2:
sub_801EBC4();
gUnknown_203B26C->unk12C[1] = gUnknown_80DC11C;
gUnknown_203B26C->unk12C[2] = gUnknown_80DC134;
- sub_8012CAC(&gUnknown_203B26C->unk12C[2], &gUnknown_203B26C->unk28);
+ sub_8012CAC(&gUnknown_203B26C->unk12C[2], gUnknown_203B26C->unk28);
break;
default:
for(iVar2 = 0; iVar2 < 4; iVar2++)
diff --git a/src/gulpin_shop_1.c b/src/gulpin_shop_1.c
new file mode 100644
index 0000000..2eadcfe
--- /dev/null
+++ b/src/gulpin_shop_1.c
@@ -0,0 +1,79 @@
+#include "global.h"
+#include "file_system.h"
+#include "pokemon.h"
+#include "memory.h"
+#include "text.h"
+#include "input.h"
+#include "menu.h"
+#include "gulpin_shop.h"
+
+extern struct unkStruct_203B26C *gUnknown_203B26C;
+extern void UpdateGulpinShopState(u32);
+extern void sub_8093CF8(struct unkStruct_Gulpin *, u32);
+extern void sub_801F214(void);
+extern s32 sub_80144A4(s32 *);
+extern u32 sub_801F890(void);
+extern void sub_801F8D0(void);
+extern u8 sub_8012FD8(u32 *);
+extern void sub_8013114(u32 *, u32 *);
+extern u8 sub_80934B0(u32, struct unkStruct_Gulpin *);
+extern void PlaySound(u32);
+extern void sub_801EF38(u32);
+
+void sub_801ED28(void)
+{
+ s32 menuAction;
+
+ menuAction = 0;
+ sub_801EF38(0);
+ if(sub_8012FD8(&gUnknown_203B26C->unk78) == 0)
+ sub_8013114(&gUnknown_203B26C->unk78,&menuAction);
+ switch(menuAction)
+ {
+ case 1:
+ case 5:
+ UpdateGulpinShopState(1);
+ break;
+ case 2:
+ PlaySound(0x133);
+ gUnknown_203B26C->unkE = sub_80934B0(gUnknown_203B26C->unk20, gUnknown_203B26C->unk10);
+ UpdateGulpinShopState(4);
+ break;
+ case 3:
+ UpdateGulpinShopState(3);
+ }
+}
+
+void sub_801EDA4(void)
+{
+ switch(sub_801F890())
+ {
+ case 2:
+ case 3:
+ sub_801F8D0();
+ UpdateGulpinShopState(1);
+ break;
+ case 0:
+ case 1:
+ break;
+ }
+}
+
+void sub_801EDC0(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0){
+ switch(temp)
+ {
+ case 4:
+ sub_801F214();
+ sub_8093CF8(gUnknown_203B26C->unk10, gUnknown_203B26C->unk20);
+ gUnknown_203B26C->state = 5;
+ break;
+ case 1:
+ case 5:
+ UpdateGulpinShopState(1);
+ break;
+ }
+ }
+}
diff --git a/src/kangaskhan_storage_2.c b/src/kangaskhan_storage_2.c
index ea1b804..a1f0c7e 100644
--- a/src/kangaskhan_storage_2.c
+++ b/src/kangaskhan_storage_2.c
@@ -19,8 +19,7 @@ struct unkStruct_203B20C
u32 unk14;
u32 unk18;
u32 unk1C;
- u32 unk20;
- u8 fill24[0x60 - 0x24];
+ struct MenuItem unk20[8];
u16 unk60[8];
u32 unk70;
u8 fill74[0xC0 - 0x74];
@@ -74,7 +73,7 @@ extern u32 sub_801A6E8(u32);
extern u32 sub_801AEA8(void);
extern u32 sub_801A8AC(void);
extern void sub_801A928(void);
-extern void sub_8012CAC(struct UnkTextStruct2 *, u32 *);
+extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *);
extern void sub_80182E4(void);
extern void sub_8008C54(u32);
extern void sub_80073B8(u32);
@@ -93,7 +92,7 @@ extern void sub_8013AA0(u32 *);
extern void sub_801B3C0(struct ItemSlot *);
extern void sub_801A5D8(u32, u32, u32, u32);
extern void sub_801C8C4(u32, u32, u32, u32);
-extern void sub_8012D60(u32 *, u32 *, u32, u16 *, u32, u32);
+extern void sub_8012D60(u32 *, struct MenuItem *, u32, u16 *, u32, u32);
extern void sub_801CB5C(u32);
extern void sub_801A8D0(u32);
@@ -376,7 +375,7 @@ void sub_8017F28(void)
gUnknown_203B20C->unkF0[0] = gUnknown_80DB7B8;
sub_80182E4();
gUnknown_203B20C->unkF0[2] = gUnknown_80DB7D0;
- sub_8012CAC(&gUnknown_203B20C->unkF0[2], &gUnknown_203B20C->unk20);
+ sub_8012CAC(&gUnknown_203B20C->unkF0[2], gUnknown_203B20C->unk20);
break;
case 4:
case 5:
@@ -417,7 +416,7 @@ void sub_8018100(void)
switch(gUnknown_203B20C->state)
{
case 1:
- sub_8012D60(&gUnknown_203B20C->unk70, &gUnknown_203B20C->unk20, 0, gUnknown_203B20C->unk60, gUnknown_203B20C->unk14, 2);
+ sub_8012D60(&gUnknown_203B20C->unk70, gUnknown_203B20C->unk20, 0, gUnknown_203B20C->unk60, gUnknown_203B20C->unk14, 2);
break;
case 4:
sub_801A5D8(3, 3, 0, 0xA);
@@ -428,7 +427,7 @@ void sub_8018100(void)
case 6:
sub_801A9E0();
sub_801841C();
- sub_8012D60(&gUnknown_203B20C->unk70, &gUnknown_203B20C->unk20, 0, gUnknown_203B20C->unk60, gUnknown_203B20C->unk18, 2);
+ sub_8012D60(&gUnknown_203B20C->unk70, gUnknown_203B20C->unk20, 0, gUnknown_203B20C->unk60, gUnknown_203B20C->unk18, 2);
break;
case 7:
sub_801B3C0(&gUnknown_203B20C->unk8);
@@ -460,7 +459,7 @@ void sub_8018100(void)
sub_801CCD8();
sub_801AD34(0);
sub_80184D4();
- sub_8012D60(&gUnknown_203B20C->unk70, &gUnknown_203B20C->unk20, 0, gUnknown_203B20C->unk60, gUnknown_203B20C->unk1C, 2);
+ sub_8012D60(&gUnknown_203B20C->unk70, gUnknown_203B20C->unk20, 0, gUnknown_203B20C->unk60, gUnknown_203B20C->unk1C, 2);
break;
case 14:
sub_801B3C0(&gUnknown_203B20C->unk8);
diff --git a/src/personality_test.c b/src/personality_test.c
index 76fc099..2034b7b 100644
--- a/src/personality_test.c
+++ b/src/personality_test.c
@@ -9,6 +9,7 @@
#include "memory.h"
#include "gUnknown_203B46C.h"
#include "text.h"
+#include "menu.h"
extern void sub_801317C(u32 *);
extern void sub_8001024(u32 *);
@@ -17,7 +18,7 @@ extern void sub_8094D28(s32);
extern void sub_8001044(u32 *);
extern void sub_80141B4(const char *text, u32 r1, u32 r2, u16 r3);
-extern void sub_8014248(const char *text, u32, u32, u32 *r0, u32, u32, u32, u32, u32);
+extern void sub_8014248(const char *text, u32, u32, struct MenuItem *r0, u32, u32, u32, u32, u32);
extern u32 sub_80144A4(s32 *);
@@ -54,7 +55,7 @@ extern struct UnkSaveStruct1 *gUnknown_203B46C;
extern const char gStarterReveal[];
extern const char gGenderText[];
-extern u32 gGenderMenu;
+extern struct MenuItem gGenderMenu[];
extern const char gPartnerSelectionHeaderText;
extern u8 gNatureQuestionTable[NUM_QUIZ_QUESTIONS];
@@ -96,19 +97,19 @@ const char * const gEndIntroTextPtr = gEndIntroText;
const char * const gPersonalityTypeDescriptionTable[NUM_PERSONALITIES] =
{
- gHardyDescription,
- gDocileDescription,
- gBraveDescription,
- gJollyDescription,
- gImpishDescription,
- gNaiveDescription,
- gTimidDescription,
- gHastyDescription,
- gSassyDescription,
- gCalmDescription,
- gRelaxedDescription,
- gLonelyDescription,
- gQuirkyDescription
+ [HARDY] = gHardyDescription,
+ [DOCILE] = gDocileDescription,
+ [BRAVE] = gBraveDescription,
+ [JOLLY] = gJollyDescription,
+ [IMPISH] = gImpishDescription,
+ [NAIVE] = gNaiveDescription,
+ [TIMID] = gTimidDescription,
+ [HASTY] = gHastyDescription,
+ [SASSY] = gSassyDescription,
+ [CALM] = gCalmDescription,
+ [RELAXED] = gRelaxedDescription,
+ [LONELY] = gLonelyDescription,
+ [QUIRKY] = gQuirkyDescription
};
#include "data/nature_description.h"
@@ -289,7 +290,7 @@ void GenerateNewQuestionOrGender(void)
gUnknown_203B400->QuestionCounter++;
if (gUnknown_203B400->QuestionCounter > MAX_ASKED_QUESTIONS) {
// We've asked enough questions
- sub_8014248(gGenderText, 0, 0, &gGenderMenu, 0, 3, 0, 0, 257);
+ sub_8014248(gGenderText, 0, 0, gGenderMenu, 0, 3, 0, 0, 257);
gUnknown_203B400->TestState = 3;
}
else
@@ -335,7 +336,8 @@ void UpdateNatureTotals()
{
pointArray = gPersonalityQuestionPointerTable[gUnknown_203B400->currQuestionIndex]->effects;
// Skip until we get to the one for our answer
- pointArray += 16 * answerIndex;
+ // Each Answer has 16 bytes. 13 are currently used with 3 remaining
+ pointArray += (NUM_PERSONALITIES + 3) * answerIndex;
for (natureIndex = 0; natureIndex < NUM_PERSONALITIES; natureIndex++)
{
gUnknown_203B400->NatureTotals[natureIndex] += pointArray[natureIndex];
@@ -555,7 +557,7 @@ void PromptNewQuestion(void)
{
sub_8014248(gPersonalityQuestionPointerTable[gUnknown_203B400->currQuestionIndex]->question,
0, 0,
- (void *)gPersonalityQuestionPointerTable[gUnknown_203B400->currQuestionIndex]->answers,
+ (struct MenuItem *)gPersonalityQuestionPointerTable[gUnknown_203B400->currQuestionIndex]->answers,
0, 3, 0, 0, 0x101);
}
diff --git a/src/rescue_password_menu.c b/src/rescue_password_menu.c
new file mode 100644
index 0000000..ac2f296
--- /dev/null
+++ b/src/rescue_password_menu.c
@@ -0,0 +1,93 @@
+#include "global.h"
+#include "memory.h"
+#include "input.h"
+#include "item.h"
+#include "sub_8095228.h"
+#include "text.h"
+#include "main_menu.h"
+#include "rescue_password_menu.h"
+
+extern u8 gUnknown_202EC50[];
+extern u32 gUnknown_202EC4C;
+
+EWRAM_DATA u8 gUnknown_203B368;
+EWRAM_DATA u32 gUnknown_203B36C;
+EWRAM_DATA struct RescuePasswordMenu *gRescuePasswordMenu;
+
+extern struct UnkTextStruct2 gUnknown_80E71E4;
+extern s32 sub_8035D74(void);
+extern void sub_80151C0(u32, u8 *);
+extern void sub_8031D70(u32, u32);
+extern u32 ConvertMenutoRescuePasswordState(u32);
+extern void sub_8039174(void);
+extern void sub_80155F0(void);
+extern void sub_8031E10(void);
+
+void CreateRescuePasswordMenu(u32 currMenu)
+{
+ struct unkStruct_8095228 *temp;
+ s32 counter;
+
+ if(gRescuePasswordMenu == NULL)
+ {
+ gRescuePasswordMenu = MemoryAlloc(sizeof(struct RescuePasswordMenu), 8);
+ MemoryFill8((u8 *)gRescuePasswordMenu, 0, sizeof(struct RescuePasswordMenu));
+ }
+
+ for(counter = 0; counter < 4; counter++)
+ gRescuePasswordMenu->unk148[counter] = gUnknown_80E71E4;
+
+ ResetUnusedInputStruct();
+ sub_800641C(gRescuePasswordMenu->unk148, 1, 1);
+
+ if ((gUnknown_203B368 != 0) || (gUnknown_203B36C != currMenu)) {
+ for(counter = 0; counter < 0x36; counter++)
+ {
+ gUnknown_202EC50[counter] = 0;
+ }
+ gUnknown_203B368 = 0;
+ }
+
+ gRescuePasswordMenu->currMenu = currMenu;
+ gUnknown_203B36C = currMenu;
+
+ switch(currMenu)
+ {
+ case 0x1B:
+ case 0x1D:
+ case 0x1F:
+ sub_8031D70(sub_8035D74(), 0);
+ break;
+ case 0x1C:
+ case 0x1E:
+ case 0x20:
+ sub_80151C0(4, gUnknown_202EC50);
+ break;
+ case MENU_DISPLAY_RESCUE_PASSWORD:
+ temp = sub_8095228(0x1F);
+ MemoryFill8((u8 *)temp, 0, sizeof(struct unkStruct_8095228));
+ temp->unk0 = 2;
+ temp->unk20.itemIndex = ITEM_ID_NOTHING;
+ sub_8031D70(0x1F, 0);
+ break;
+ case MENU_RESCUE_PASSWORD_ENTRY:
+ sub_80151C0(4, gUnknown_202EC50);
+ break;
+ }
+
+ gRescuePasswordMenu->state = ConvertMenutoRescuePasswordState(currMenu);
+ sub_8039174();
+}
+
+void CleanRescuePasswordMenu(void)
+{
+
+ ResetUnusedInputStruct();
+ sub_800641C(0,1,1);
+ if (gRescuePasswordMenu != NULL) {
+ sub_80155F0();
+ sub_8031E10();
+ MemoryFree(gRescuePasswordMenu);
+ gRescuePasswordMenu = NULL;
+ }
+}
diff --git a/src/rescue_password_menu_1.c b/src/rescue_password_menu_1.c
new file mode 100644
index 0000000..1058589
--- /dev/null
+++ b/src/rescue_password_menu_1.c
@@ -0,0 +1,33 @@
+#include "global.h"
+#include "memory.h"
+#include "input.h"
+#include "item.h"
+#include "sub_8095228.h"
+#include "text.h"
+#include "rescue_password_menu.h"
+
+extern struct RescuePasswordMenu *gRescuePasswordMenu;
+extern void AddSprite(struct unkSprite *, u32, u32, u32);
+extern void xxx_draw_string_80144C4(void);
+
+void sub_80391F8(void)
+{
+ struct unkSprite *iVar2;
+ u32 temp;
+ u32 temp2;
+
+ iVar2 = &gRescuePasswordMenu->unk208;
+
+ temp = (iVar2->unk20A & 0xfe00);
+ iVar2->unk20A = temp | 0x70;
+
+ temp2 = 0x700;
+ temp = (iVar2->unk20E & 0xf);
+ iVar2->unk20E = temp | temp2;
+
+ if ((gRescuePasswordMenu->unk210 & 8) != 0) {
+ AddSprite(iVar2,0x100,0,0);
+ }
+ xxx_draw_string_80144C4();
+ gRescuePasswordMenu->unk210 += 1;
+}
diff --git a/src/trade_items_menu.c b/src/trade_items_menu.c
index 44e2b77..e1c2241 100644
--- a/src/trade_items_menu.c
+++ b/src/trade_items_menu.c
@@ -329,7 +329,7 @@ void sub_8036788(void)
case 3:
// Confirm # of item
gTradeItemsMenu->itemToSend.numItems = gTradeItemsMenu->numItemsToSend;
- gTradeItemsMenu->sentItem.itemIndex = gTradeItemsMenu->itemToSend.itemIndex;
+ gTradeItemsMenu->sentItem.itemIdx.itemIndex = gTradeItemsMenu->itemToSend.itemIndex;
gTradeItemsMenu->sentItem.numItems = gTradeItemsMenu->numItemsToSend;
sub_801CBB8();
SetTradeItemMenu(TRADE_ITEMS_SEND_ITEM_CONFIRM);
@@ -392,7 +392,7 @@ void sub_80368D4(void)
break;
case 7:
case 0:
- if ((gTradeItemsMenu->sentItem.itemIndex != 0) && (gTradeItemsMenu->sentItem.numItems != 0))
+ if ((gTradeItemsMenu->sentItem.itemIdx.itemIndex != 0) && (gTradeItemsMenu->sentItem.numItems != 0))
{
TradeItem_AddItem();
SetTradeItemMenu(0x11);
@@ -430,7 +430,7 @@ void sub_8036950(void)
}
}
else {
- if (((gTradeItemsMenu->itemMode == TRADE_ITEMS_SEND_ITEM_MODE) && (gTradeItemsMenu->sentItem.itemIndex != 0))
+ if (((gTradeItemsMenu->itemMode == TRADE_ITEMS_SEND_ITEM_MODE) && (gTradeItemsMenu->sentItem.itemIdx.itemIndex != 0))
&& (gTradeItemsMenu->sentItem.numItems != 0)) {
// Link Failure
TradeItem_AddItem(); // Add back the item
@@ -449,9 +449,9 @@ void TradeItem_AddItem(void)
{
// Use temp var to get correct statements
u16 load;
- load = gTeamInventory_203B460->teamStorage[gTradeItemsMenu->sentItem.itemIndex];
+ load = gTeamInventory_203B460->teamStorage[gTradeItemsMenu->sentItem.itemIdx.itemIndex];
load += gTradeItemsMenu->sentItem.numItems;
- gTeamInventory_203B460->teamStorage[gTradeItemsMenu->sentItem.itemIndex] = load;
+ gTeamInventory_203B460->teamStorage[gTradeItemsMenu->sentItem.itemIdx.itemIndex] = load;
}
void sub_80369FC(void)
@@ -554,9 +554,7 @@ void nullsub_52(void)
void sub_8036B28(void)
{
int iVar3;
- u32 uVar4;
s32 local_10;
- u32 load_1;
u32 load_2;
struct TradeSubStruct *temp;
struct TradeSubStruct *temp2;
@@ -612,13 +610,13 @@ void sub_8036B28(void)
// Regs mess up here
// Needs a mov r2, 0
// and mov r3, 0
+
temp = &gTradeItemsMenu->unk244;
- temp->itemIndex = 0;
+ temp->itemIdx.itemIndex_u32 = 0;
temp->numItems = 0;
- temp += 1; // move to unk24C
-
- temp->itemIndex = 0;
+ temp = &gTradeItemsMenu->unk24C;
+ temp->itemIdx.itemIndex_u32 = 0;
temp->numItems = 0;
// Regs are fixed back up after
@@ -632,7 +630,7 @@ void sub_8036B28(void)
temp = &gTradeItemsMenu->unk244;
temp2 = &gTradeItemsMenu->sentItem;
load_2 = temp2->numItems;
- temp->itemIndex = temp2->itemIndex;
+ temp->itemIdx.itemIndex_u32 = temp2->itemIdx.itemIndex_u32;
temp->numItems = load_2;
case TRADE_ITEMS_RECEIVE_ITEM_MODE:
gTradeItemsMenu->linkStatus = sub_8037D64(gTradeItemsMenu->itemMode,&gTradeItemsMenu->unk244,&gTradeItemsMenu->unk24C);
@@ -650,12 +648,12 @@ void sub_8036B28(void)
if (gTradeItemsMenu->unk24C.numItems == 0) {
gUnknown_202DE30 = gTradeItemsMenu->unk244.numItems;
// Cast is needed
- sub_8090DC4(&gUnknown_202DE58,(u8)gTradeItemsMenu->unk244.itemIndex,0);
+ sub_8090DC4(&gUnknown_202DE58,(u8)gTradeItemsMenu->unk244.itemIdx.itemIndex,0);
}
else {
gUnknown_202DE30 = gTradeItemsMenu->unk24C.numItems;
// Cast is needed
- sub_8090DC4(&gUnknown_202DE58,(u8)gTradeItemsMenu->unk24C.itemIndex,0);
+ sub_8090DC4(&gUnknown_202DE58,(u8)gTradeItemsMenu->unk24C.itemIdx.itemIndex,0);
}
sub_80141B4(&gUnknown_80E6314,0,0,0x101);
break;
diff --git a/src/wonder_mail.c b/src/wonder_mail.c
index 45dfb1f..04e9f73 100644
--- a/src/wonder_mail.c
+++ b/src/wonder_mail.c
@@ -3,10 +3,10 @@
#include "pokemon.h"
#include "file_system.h"
#include "item.h"
+#include "sub_8095228.h"
#include "wonder_mail.h"
#include "memory.h"
#include "text.h"
-#include "sub_8095228.h"
#include "team_inventory.h"
extern struct WonderMailStruct_203B2C0 *gUnknown_203B2C0;
@@ -25,7 +25,7 @@ extern u32 sub_8095350();
extern u8 sub_801CF14(u32);
extern u32 sub_802F298();
-extern u8 sub_80A2824(u32);
+extern u8 sub_80A2824(u8);
#include "data/wonder_mail_1.h"
@@ -35,7 +35,7 @@ const struct ItemSlot gUnknown_80DED44 =
};
-extern u32 gUnknown_80DDA48;
+extern struct MenuItem gUnknown_80DDA48[];
extern const char gUnknown_80DEF04[];
extern const char gUnknown_80DEF28[];
extern const char gUnknown_80DEF80[];
@@ -45,7 +45,7 @@ extern const char gUnknown_80DF0A0[];
extern const char gUnknown_80DF0E0[];
extern const char gUnknown_80DF138[];
extern const char gUnknown_80DF194[];
-extern u32 gUnknown_80DEE44;
+extern struct MenuItem gUnknown_80DEE44[];
extern const char gUnknown_80DF1C0[];
extern const char gUnknown_80DF208[];
extern const char gUnknown_80DF0A0[];
@@ -74,7 +74,7 @@ extern void sub_803092C(void);
extern u32 sub_80154F0();
extern u32 sub_8039068(u32, u8 *r1, u8 *r0);
-extern void sub_8014248(const char *r0, u32, u32, u32 *r4, u32, u32, u32, u32 *r5, u32);
+extern void sub_8014248(const char *r0, u32, u32, struct MenuItem *r4, u32, u32, u32, u32 *r5, u32);
extern void sub_8095274(u32);
extern void sub_80155F0();
extern void sub_80951BC(u8 *r0);
@@ -868,7 +868,7 @@ void sub_80293F4(void)
switch(sub_8039068(0x1C, (gUnknown_203B2C0->passwordBuffer), &temp.unk0))
{
case 17:
- sub_8014248(gWonderMailPasswordIncorrectText, 0, 8, &gUnknown_80DDA48, 0, 4, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0xC);
+ sub_8014248(gWonderMailPasswordIncorrectText, 0, 8, gUnknown_80DDA48, 0, 4, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0xC);
sub_8028B04(40);
break;
case 18:
@@ -1533,7 +1533,7 @@ void PrintWonderMailLinkError(u32 param_1)
sub_80141B4(gUnknown_80DEF04, 0, (u32 *)&gUnknown_203B2C4->faceFile, 0x10d);
break;
case 15:
- sub_80141B4(gUnknown_80DF138,0,(u32 *)&gUnknown_203B2C4->faceFile, 0x10d);
+ sub_80141B4(gUnknown_80DF138, 0, (u32 *)&gUnknown_203B2C4->faceFile, 0x10d);
break;
case 0:
default:
@@ -1873,17 +1873,17 @@ void sub_802A50C(void)
{
case 0x11:
// Wrong password
- sub_8014248(gUnknown_80DF1C0,0,7,&gUnknown_80DEE44,0,4,0,(u32 *)&gUnknown_203B2C4->faceFile,0xc);
+ sub_8014248(gUnknown_80DF1C0, 0, 7, gUnknown_80DEE44, 0, 4, 0, (u32 *)&gUnknown_203B2C4->faceFile, 0xc);
sub_802B2BC(0x28);
break;
case 0x14:
// Incorrect password
- sub_80141B4(gUnknown_80DF208,0,(u32 *)&gUnknown_203B2C4->faceFile,0x10d);
+ sub_80141B4(gUnknown_80DF208, 0, (u32 *)&gUnknown_203B2C4->faceFile, 0x10d);
sub_802B2BC(0x1f);
break;
case 0xB:
// Not eligible to receive
- sub_80141B4(gUnknown_80DF0A0,0,(u32 *)&gUnknown_203B2C4->faceFile,0x10d);
+ sub_80141B4(gUnknown_80DF0A0, 0, (u32 *)&gUnknown_203B2C4->faceFile, 0x10d);
sub_802B2BC(0x1f);
break;
case 0x18:
diff --git a/src/wonder_mail_2.c b/src/wonder_mail_2.c
index 25e5df0..f5bcd12 100644
--- a/src/wonder_mail_2.c
+++ b/src/wonder_mail_2.c
@@ -4,9 +4,10 @@
#include "pokemon.h"
#include "memory.h"
#include "text.h"
+#include "menu.h"
#include "save.h"
-#include "wonder_mail.h"
#include "sub_8095228.h"
+#include "wonder_mail.h"
extern struct WonderMailStruct_203B2C4 *gUnknown_203B2C4;
@@ -42,8 +43,119 @@ struct unkStruct_203B2C8
u32 fill13C;
};
+struct unkStruct_203B2CC
+{
+ // size: 0xD4;
+ u8 unk0[0x38];
+
+ u32 unk38;
+ u8 fill3C[0x50 - 0x3C];
+
+ s16 unk50;
+ s16 unk52;
+ s16 unk54;
+ s16 unk56;
+
+ u16 unk58;
+ u16 unk5A;
+
+ u8 fill5C[0x6C - 0x5C];
+
+ u32 unk6C;
+
+ struct UnkTextStruct2 *unk70;
+ struct UnkTextStruct2 unk74[4];
+};
+
+extern struct unkStruct_203B2CC *gUnknown_203B2CC;
+extern u32 sub_802B9A8(void);
+extern void sub_802B880(void);
+extern void sub_802B8D4(void);
+extern void sub_8013818(void *, u32, u32, u32);
+extern void sub_8012D08(struct UnkTextStruct2 *, s32);
+extern void sub_8013984(u32 *);
+extern u8 sub_802B9D8(void);
+extern u16 gUnknown_203B2D0;
+extern u16 gUnknown_203B2D2;
+
+extern u8 sub_80138B8(void *, u32);
+extern void PlayMenuSoundEffect(u32);
+extern s32 GetKeyPress(u32 *);
+extern void sub_8013660(u32 *);
+extern void AddMenuCursorSprite(u32 *);
+
+extern struct UnkTextStruct2 gUnknown_80DFBEC;
+
+extern struct UnkTextStruct2 gUnknown_80DFBD0;
+
extern struct unkStruct_203B2C8 *gUnknown_203B2C8;
+extern struct MenuItem gUnknown_80DED78[];
+extern struct MenuItem gUnknown_80DEDB8[];
+extern u8 gUnknown_80DF6F0[];
+extern u8 gUnknown_80DF44C[];
+extern u8 gUnknown_80DF380[];
+extern u8 gUnknown_80DF544[];
+extern u8 gUnknown_80DF96C[];
+extern u8 gUnknown_80DF9A4[];
+extern u8 gUnknown_80DF4F4[];
+extern u8 gUnknown_80DF46C[];
+extern u8 gUnknown_80DF94C[];
+extern u8 gUnknown_80DF928[];
+extern u8 gUnknown_80DF8EC[];
+extern u8 gUnknown_80DF7D4[];
+extern u8 gUnknown_80DF8B4[];
+extern u8 gUnknown_80DF3B4[];
+extern u8 gUnknown_80DF63C[];
+extern u8 gUnknown_80DF250[];
+extern u8 gUnknown_80DF594[];
+extern u8 gUnknown_80DF870[];
+extern u8 gUnknown_80DF77C[];
+extern u8 gUnknown_80DF5E4[];
+extern u8 gUnknown_80DF710[];
+extern u8 gUnknown_80DF694[];
+extern u8 gUnknown_80DF73C[];
+extern u8 gUnknown_80DF330[];
+extern u8 gUnknown_80DF418[];
+extern u8 gUnknown_80DF304[];
+extern struct UnkTextStruct2 gUnknown_80DED60;
+extern struct UnkTextStruct2 gUnknown_80DED48;
+extern struct MenuItem gUnknown_80DEE44[];
+extern struct MenuItem gUnknown_80DEE08[];
+extern struct MenuItem gUnknown_80DEE7C[];
+extern struct MenuItem gUnknown_80DEEBC[];
+extern struct MenuItem gUnknown_80DEEE4[];
+extern struct MenuItem gUnknown_80DEE60[];
+
+extern void sub_8031D70(u8, u32);
+extern u8 sub_809539C(u32, u32);
+extern u8 sub_800D588(void);
+extern u32 sub_803C200(u8 *, u32);
+
+extern struct PokemonStruct *sub_808D33C(void);
+
+extern void sub_802F204(u8 *, u32);
+extern void sub_80151C0(u32, u8 *);
+extern void xxx_call_start_bg_music(void);
+extern void sub_803092C(void);
+extern void sub_801CCD8(void);
+extern void sub_8011830(void);
+extern void nullsub_23(u32);
+extern void sub_80922B4(u8 *, u8 *, u32);
+extern s32 sub_8037B28(u32);
+extern u32 sub_8030894(void);
+extern u32 sub_801D008(void);
+extern void sub_80306A8(u32, u32, u32, u32);
+extern void sub_8035CF4(u32 *, u32, u32);
+extern s32 sub_8037D64(u32, void *, void *);
+extern s32 sub_80381F4(u32, void *, void *);
+extern void sub_801C8C4(u32, u32, s32 * , u32);
+
+
+void ExpandPlaceholdersBuffer(u8 *buffer, const char *text, ...);
+extern void SetMenuItems(void *menu, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *entries, u32, u32, u32);
+extern void sub_8014248(const char *r0, u32, u32, const struct MenuItem *r4, u32, u32, u32, struct OpenedFile **r5, u32);
+
extern void sub_80920D8(u8 *buffer);
extern void sub_8097790();
extern char gUnknown_202E5D8[0x50];
@@ -64,7 +176,7 @@ void ExpandPlaceholdersBuffer(u8 *buffer, const char *text, ...);
extern void sub_802F204(u8 *, u32);
extern void sub_803C37C(u8 *, u32, u8 *);
extern u32 sub_803C200(u8 *, u32);
-extern void sub_80141B4(const char *r0, u32, u32 *r1, u32);
+extern void sub_80141B4(const char *r0, u32, struct OpenedFile **r1, u32);
extern const char gUnknown_80DFAA8[];
extern const char gUnknown_80DFB14[];
extern const char gUnknown_80DF9F0[];
@@ -74,6 +186,223 @@ extern u8 sub_80023E4(u32);
extern void nullsub_131(void);
extern void sub_802ABF8(void);
+void sub_802ABF8(void)
+{
+ char cVar1;
+ char *monName;
+ u8 auStack180 [80];
+ u8 auStack100 [80];
+ u8 uVar2;
+ struct PokemonStruct *pokeStruct;
+ struct PokemonStruct *pokeStruct2;
+ s32 iVar6;
+ struct unkStruct_8095228 *puVar4;
+
+
+
+ switch(gUnknown_203B2C4->state) {
+ case 5:
+ pokeStruct = sub_808D33C();
+ sub_80922B4(auStack180,pokeStruct->name, POKEMON_NAME_LENGTH);
+ ExpandPlaceholdersBuffer(gUnknown_203B2C4->formattedString,gUnknown_80DF250,auStack180);
+ sub_80141B4(gUnknown_203B2C4->formattedString,0,&gUnknown_203B2C4->faceFile,0x10d);
+ break;
+ case 0xe:
+ sub_8014248(gUnknown_80DF304,0,7,gUnknown_80DEE60,0,4,0,&gUnknown_203B2C4->faceFile,0xc);
+ break;
+ case 0xf:
+ sub_80141B4(gUnknown_80DF330,0,&gUnknown_203B2C4->faceFile,0x10d);
+ break;
+ case 0x10:
+ if (sub_8030894() != 0)
+ break;
+ ResetUnusedInputStruct();
+ sub_800641C(0,1,1);
+ sub_80306A8(5,0,0,6);
+ break;
+ case 0x11:
+ sub_8006518(gUnknown_203B2C4->unk35C);
+ SetMenuItems(&gUnknown_203B2C4->unk21C,gUnknown_203B2C4->unk35C,3,&gUnknown_80DED60,gUnknown_80DED78,1,0,0);
+ sub_803092C();
+ sub_8035CF4(&gUnknown_203B2C4->unk21C,3,1);
+ break;
+ case 0x13:
+ if (sub_801D008() != 0)
+ break;
+ ResetUnusedInputStruct();
+ sub_800641C(0,1,1);
+ // TODO: Probably a macro - Pika
+ {
+ struct {u16 a; u16 b;} local_x = {3, 2};
+ sub_801C8C4(0, 1, (s32 *)&local_x, 9);
+ }
+ break;
+ case 0x14:
+ sub_8006518(gUnknown_203B2C4->unk35C);
+ SetMenuItems(&gUnknown_203B2C4->unk21C,gUnknown_203B2C4->unk35C,3,&gUnknown_80DED48,gUnknown_80DED78,1,0,0);
+ sub_801CCD8();
+ sub_8035CF4(&gUnknown_203B2C4->unk21C,3,1);
+ break;
+ case 0x1e:
+ gUnknown_203B2C4->linkError = 0;
+ sub_8011830();
+ iVar6 = sub_8037B28(gUnknown_203B2C4->unk40);
+ gUnknown_203B2C4->linkError = iVar6;
+ if (iVar6 != 0) goto _0802AEE6;
+ switch(gUnknown_203B2C4->unk40)
+ {
+ case 6:
+ MemoryFill8((u8 *)&gUnknown_203B2C4->unk1B8,0, sizeof(struct unkStruct_8095228));
+ gUnknown_203B2C4->unk1B8 = *sub_8095228(gUnknown_203B2C4->unk218);
+ gUnknown_203B2C4->linkError = sub_8037D64(gUnknown_203B2C4->unk40,&gUnknown_203B2C4->unk1B8,&gUnknown_203B2C4->unk1E8);
+ break;
+ case 7:
+ MemoryFill8((u8 *)&gUnknown_203B2C4->unk1B8,0, sizeof(struct unkStruct_8095228));
+ MemoryFill8((u8 *)&gUnknown_203B2C4->unk1E8,0, sizeof(struct unkStruct_8095228));
+ gUnknown_203B2C4->linkError = sub_8037D64(gUnknown_203B2C4->unk40,&gUnknown_203B2C4->unk1B8,&gUnknown_203B2C4->unk1E8);
+ break;
+ }
+ if (gUnknown_203B2C4->linkError == 0){
+ switch(gUnknown_203B2C4->unk40){
+ case 6:
+ case 7:
+ gUnknown_203B2C4->linkError = sub_80381F4(gUnknown_203B2C4->unk40,&gUnknown_203B2C4->unk1B8,&gUnknown_203B2C4->unk1E8);
+ if ( sub_800D588() != '\0') {
+ gUnknown_203B2C4->unk430 = gUnknown_203B2C4->unk1E8.unk10;
+ }
+ else {
+ gUnknown_203B2C4->unk430 = gUnknown_203B2C4->unk1B8.unk10;
+ }
+ break;
+ }
+ }
+ _0802AEE6:
+ xxx_call_start_bg_music();
+ break;
+ case 0x26:
+ sub_80141B4(gUnknown_80DF380,0,&gUnknown_203B2C4->faceFile,0x10d);
+ break;
+ case 0x27:
+ sub_8006518(gUnknown_203B2C4->unk3BC);
+ ResetUnusedInputStruct();
+ sub_800641C(0,1,1);
+ sub_80151C0(4,gUnknown_203B2C4->passwordBuffer);
+ break;
+ case 0x1a:
+ sub_8006518(gUnknown_203B2C4->unk3BC);
+ ResetUnusedInputStruct();
+ sub_800641C(0,1,1);
+ sub_8031D70(gUnknown_203B2C4->unk218,0);
+ break;
+ case 0x1b:
+ sub_80141B4(gUnknown_80DF3B4,0,&gUnknown_203B2C4->faceFile,0x10d);
+ break;
+ case 0x19:
+ sub_80141B4(gUnknown_80DF418,0,&gUnknown_203B2C4->faceFile,0x10d);
+ break;
+ case 0x24:
+ sub_80141B4(gUnknown_80DF44C,0,&gUnknown_203B2C4->faceFile,0x10d);
+ break;
+ case 0x20:
+ sub_80141B4(gUnknown_80DF46C,0,&gUnknown_203B2C4->faceFile,0x10d);
+ break;
+ case 0x21:
+ switch(gUnknown_203B2C4->unk534)
+ {
+ case 3:
+ case 5:
+ case 6:
+ sub_80141B4(gUnknown_80DF4F4,0,&gUnknown_203B2C4->faceFile,0x10d);
+ break;
+ case 4:
+ break;
+ }
+ break;
+ case 0x22:
+ monName = GetMonSpecies(SPECIES_PELIPPER);
+ strcpy(gUnknown_203B2C4->unk53C,monName);
+ gUnknown_203B2C4->unk550 = 0x130;
+ gUnknown_203B2C4->unk552 = 2;
+ gUnknown_203B2C4->unk554 = 0;
+ uVar2 = sub_809539C(6,gUnknown_203B2C4->unk430);
+ puVar4 = sub_8095228(uVar2);
+ cVar1 = puVar4->unk20.itemIndex;
+ if (cVar1 != '\0')
+ gUnknown_203B2C4->unk558 = cVar1;
+ else
+ gUnknown_203B2C4->unk558 = 0;
+ gUnknown_203B2C4->unk55B = 1;
+ gUnknown_203B2C4->unk560 = sub_803C200(&puVar4->unk4, 0);
+ gUnknown_203B2C4->unk559 = 0;
+ gUnknown_203B2C4->unk55A = 0;
+ gUnknown_203B2C4->unk55C = 0;
+ sub_802F204(gUnknown_203B2C4->unk53C,0);
+ break;
+ case 0x16:
+ nullsub_23(0);
+ sub_80141B4(gUnknown_80DF544,0,0,0);
+ break;
+ case 0x17:
+ sub_80141B4(gUnknown_80DF594,0,&gUnknown_203B2C4->faceFile,0x10d);
+ break;
+ case 0x1d:
+ sub_8014248(gUnknown_80DF5E4,0,7,gUnknown_80DEE44,0,4,0,&gUnknown_203B2C4->faceFile,0xc);
+ break;
+ case 0xd:
+ pokeStruct2 = sub_808D33C();
+ sub_80922B4(auStack100, pokeStruct2->name, POKEMON_NAME_LENGTH);
+ ExpandPlaceholdersBuffer(gUnknown_203B2C4->formattedString,gUnknown_80DF63C,auStack100);
+ sub_80141B4(gUnknown_203B2C4->formattedString,0,&gUnknown_203B2C4->faceFile,0x10d);
+ break;
+ case 0xc:
+ sub_8014248(gUnknown_80DF694,0,7,gUnknown_80DEEE4,0,4,0,&gUnknown_203B2C4->faceFile,0xc);
+ break;
+ case 0x29:
+ sub_80141B4(gUnknown_80DF44C,0,&gUnknown_203B2C4->faceFile,0x10d);
+ break;
+ case 0x2a:
+ sub_80141B4(gUnknown_80DF6F0,0,&gUnknown_203B2C4->faceFile,0x10d);
+ break;
+ case 0xb:
+ sub_80141B4(gUnknown_80DF710,0,&gUnknown_203B2C4->faceFile,0x10d);
+ break;
+ case 10:
+ sub_8014248(gUnknown_80DF73C,0,0,gUnknown_80DEEBC,0,4,0,&gUnknown_203B2C4->faceFile,0xc);
+ break;
+ case 9:
+ sub_8014248(gUnknown_80DF77C,0,0,gUnknown_80DEE7C,0,4,0,&gUnknown_203B2C4->faceFile,0xc);
+ break;
+ case 7:
+ sub_80141B4(gUnknown_80DF7D4,0,&gUnknown_203B2C4->faceFile,0x10d);
+ break;
+ case 8:
+ sub_8014248(gUnknown_80DF870,0,7,gUnknown_80DEE44,0,4,0,&gUnknown_203B2C4->faceFile,0xc);
+ break;
+ case 4:
+ sub_80141B4(gUnknown_80DF8B4,0,&gUnknown_203B2C4->faceFile,0x10d);
+ break;
+ case 0:
+ sub_8014248(gUnknown_80DF8EC,0,1,gUnknown_80DEDB8,0,4,0,&gUnknown_203B2C4->faceFile,0xc);
+ break;
+ case 1:
+ sub_8014248(gUnknown_80DF928,0,1,gUnknown_80DEDB8,0,4,0,&gUnknown_203B2C4->faceFile,0xc);
+ break;
+ case 2:
+ sub_80141B4(gUnknown_80DF94C,0,&gUnknown_203B2C4->faceFile,0x10d);
+ break;
+ case 6:
+ switch(gUnknown_203B2C4->unk538){
+ case 1:
+ sub_8014248(gUnknown_80DF96C,0,3,gUnknown_80DEE08,0,4,0,&gUnknown_203B2C4->faceFile,0xc);
+ break;
+ case 2:
+ sub_8014248(gUnknown_80DF9A4,0,3,gUnknown_80DEE08,0,4,0,&gUnknown_203B2C4->faceFile,0xc);
+ break;
+ }
+ break;
+ }
+}
+
void sub_802B2BC(u32 newState)
{
gUnknown_203B2C4->state = newState;
@@ -166,7 +495,7 @@ void sub_802B3E0(void)
// Print and expand placeholders?
ExpandPlaceholdersBuffer(gUnknown_203B2C8->teamName,gUnknown_80DF9F8,teamNameBuffer);
// Display to screen with Pelliper face
- sub_80141B4(gUnknown_203B2C8->teamName, 0, (u32 *)&gUnknown_203B2C8->faceFile, 0x10d);
+ sub_80141B4(gUnknown_203B2C8->teamName, 0, &gUnknown_203B2C8->faceFile, 0x10d);
break;
case 1:
monName = GetMonSpecies(SPECIES_PELIPPER);
@@ -187,12 +516,12 @@ void sub_802B3E0(void)
case 2:
// I hope you will keep on rescuing your friends
// I must save your adventure
- sub_80141B4(gUnknown_80DFAA8, 0, (u32 *)&gUnknown_203B2C8->faceFile, 0x10d);
+ sub_80141B4(gUnknown_80DFAA8, 0, &gUnknown_203B2C8->faceFile, 0x10d);
break;
case 4:
// Oh yes, that's right. Please don't forget to send an A-OK Mail
// to the friend you just rescued
- sub_80141B4(gUnknown_80DFB14, 0, (u32 *)&gUnknown_203B2C8->faceFile, 0x10d);
+ sub_80141B4(gUnknown_80DFB14, 0, &gUnknown_203B2C8->faceFile, 0x10d);
case 3:
case 5:
break;
@@ -266,3 +595,120 @@ void sub_802B624(void)
sub_802B548(5);
}
}
+
+u32 sub_802B640(u32 r0, struct UnkTextStruct2_sub *r1, u32 r2)
+{
+
+ if(sub_802B9D8())
+ {
+ return 0;
+ }
+ else
+ {
+ if(gUnknown_203B2CC == NULL)
+ {
+ gUnknown_203B2CC = MemoryAlloc(0xD4, 8);
+ }
+ gUnknown_203B2CC->unk6C = r0;
+ gUnknown_203B2CC->unk70 = &gUnknown_203B2CC->unk74[r0];
+
+ sub_8006518(gUnknown_203B2CC->unk74);
+
+ gUnknown_203B2CC->unk74[gUnknown_203B2CC->unk6C] = gUnknown_80DFBEC;
+
+ if(r1 != NULL)
+ {
+ gUnknown_203B2CC->unk74[gUnknown_203B2CC->unk6C].unk08 = *r1;
+ }
+
+ sub_8012D08(gUnknown_203B2CC->unk70, r2);
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B2CC->unk74, 1, 1);
+
+ sub_8013818(&gUnknown_203B2CC->unk38, sub_802B9A8(), r2, r0);
+
+ gUnknown_203B2CC->unk50 = gUnknown_203B2D0;
+ gUnknown_203B2CC->unk56 = gUnknown_203B2D2;
+
+ sub_8013984(&gUnknown_203B2CC->unk38);
+ sub_802B880();
+ sub_802B8D4();
+
+ return 1;
+ }
+}
+
+u32 sub_802B720(u8 r0)
+{
+ if(r0 == 0)
+ {
+ sub_8013660(&gUnknown_203B2CC->unk38);
+ return 0;
+ }
+ else
+ {
+ switch(GetKeyPress(&gUnknown_203B2CC->unk38))
+ {
+ case 2:
+ PlayMenuSoundEffect(1);
+ return 2;
+ case 1:
+ PlayMenuSoundEffect(0);
+ return 3;
+ case 4:
+ PlayMenuSoundEffect(4);
+ return 4;
+ }
+ if(sub_80138B8(&gUnknown_203B2CC->unk38, 1) != 0)
+ {
+ sub_802B880();
+ sub_802B8D4();
+ return 1;
+ }
+ else
+ return 0;
+ }
+}
+
+u8 sub_802B7A8(void)
+{
+ return gUnknown_203B2CC->unk0[(gUnknown_203B2CC->unk56 * gUnknown_203B2CC->unk54) + gUnknown_203B2CC->unk50];
+}
+
+void sub_802B7D0(u32 r0)
+{
+ u8 temp;
+
+ temp = r0;
+
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B2CC->unk74, 0, 0);
+
+ gUnknown_203B2CC->unk5A = sub_802B9A8();
+ sub_8013984(&gUnknown_203B2CC->unk38);
+ sub_802B880();
+ sub_802B8D4();
+
+ if(temp != 0)
+ {
+ AddMenuCursorSprite(&gUnknown_203B2CC->unk38);
+ }
+}
+
+void sub_802B81C(void)
+{
+ if(gUnknown_203B2CC != NULL)
+ {
+ gUnknown_203B2D0 = gUnknown_203B2CC->unk50;
+
+ gUnknown_203B2D2 = gUnknown_203B2CC->unk56;
+
+ gUnknown_203B2CC->unk74[gUnknown_203B2CC->unk6C] = gUnknown_80DFBD0;
+
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B2CC->unk74, 1, 1);
+
+ MemoryFree(gUnknown_203B2CC);
+ gUnknown_203B2CC = NULL;
+ }
+}
diff --git a/src/wonder_mail_3.c b/src/wonder_mail_3.c
index 88fa520..e318d26 100644
--- a/src/wonder_mail_3.c
+++ b/src/wonder_mail_3.c
@@ -2,6 +2,7 @@
#include "memory.h"
#include "text.h"
#include "input.h"
+#include "menu.h"
struct unkStruct_203B2F8
{
@@ -18,10 +19,8 @@ struct unkStruct_203B2F8
u32 unk70;
u32 unk74;
u8 fill78[0x118 - 0x78];
- u32 unk118;
- u8 fill11C[0x158 - 0x11C];
- u32 unk158;
- u8 fill15C[0x198 - 0x15C];
+ struct MenuItem unk118[8];
+ struct MenuItem unk158[8];
u16 unk198[8];
struct UnkTextStruct2 unk1A8[4];
u32 unk1E4;
@@ -30,7 +29,7 @@ extern struct unkStruct_203B2F8 *gUnknown_203B2F8;
extern struct UnkTextStruct2 gUnknown_80DFE04;
extern struct UnkTextStruct2 gUnknown_80DFE1C;
extern struct UnkTextStruct2 gUnknown_80DFDD4;
-extern void sub_8012CAC(struct UnkTextStruct2 *, u32 *);
+extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *);
extern void sub_802D63C(void);
extern void sub_802D5A4(void);
@@ -129,13 +128,13 @@ void sub_802D1B8(void)
case 0xD:
sub_802D5A4();
gUnknown_203B2F8->unk1A8[2] = gUnknown_80DFE04;
- sub_8012CAC(&gUnknown_203B2F8->unk1A8[2], &gUnknown_203B2F8->unk118);
+ sub_8012CAC(&gUnknown_203B2F8->unk1A8[2], gUnknown_203B2F8->unk118);
gUnknown_203B2F8->unk1A8[2].unk0c = 6;
break;
case 0xE:
sub_802D63C();
gUnknown_203B2F8->unk1A8[3] = gUnknown_80DFE1C;
- sub_8012CAC(&gUnknown_203B2F8->unk1A8[3], &gUnknown_203B2F8->unk158);
+ sub_8012CAC(&gUnknown_203B2F8->unk1A8[3], gUnknown_203B2F8->unk158);
gUnknown_203B2F8->unk1A8[3].unk0c = 6;
break;
default:
diff --git a/src/wonder_mail_3_1.c b/src/wonder_mail_3_1.c
new file mode 100644
index 0000000..c11df89
--- /dev/null
+++ b/src/wonder_mail_3_1.c
@@ -0,0 +1,15 @@
+#include "global.h"
+
+u8 sub_80A27CC(s16);
+
+u8 sub_802FCF0(void)
+{
+ s32 iVar3;
+
+ for(iVar3 = 0; iVar3 < 0x2E; iVar3++){
+ if (sub_80A27CC(iVar3) != '\0') {
+ return 0;
+ }
+ }
+ return 1;
+}
diff --git a/src/wonder_mail_main_menu.c b/src/wonder_mail_main_menu.c
index d2e1fca..2c8e6bb 100644
--- a/src/wonder_mail_main_menu.c
+++ b/src/wonder_mail_main_menu.c
@@ -3,6 +3,7 @@
#include "memory.h"
#include "text.h"
#include "input.h"
+#include "sub_8095228.h"
#include "wonder_mail.h"
#define WONDER_MAIL_MAIN_SCREEN 4
diff --git a/src/wonder_mail_pre.c b/src/wonder_mail_pre.c
index 9e2e5cc..34cbaea 100644
--- a/src/wonder_mail_pre.c
+++ b/src/wonder_mail_pre.c
@@ -2,6 +2,7 @@
#include "file_system.h"
#include "input.h"
#include "pokemon.h"
+#include "sub_8095228.h"
#include "wonder_mail.h"
#include "memory.h"
@@ -10,57 +11,64 @@ extern struct WonderMailStruct_203B2C0 *gUnknown_203B2C0;
extern char gUnknown_202E5D8[0x50];
extern char gAvailablePokemonNames[0x50];
-extern void sub_8029B34();
-extern void sub_8029AD8();
-extern void sub_8029AF4();
-extern void sub_8029A88();
-extern void sub_8029AB0();
-extern void sub_80297B8();
-extern void sub_80297D4();
-extern void sub_8029884();
-extern void sub_8029944();
-extern void sub_80299AC();
-extern void sub_80299D8();
-extern void sub_8029A6C();
-extern void sub_8028CE0();
-extern void sub_8028BF0();
-extern void sub_8029A18();
-extern void sub_80295A8();
-extern void sub_8029668();
-extern void sub_8029684();
-extern void sub_8029740();
-extern void sub_80295D8();
-extern void sub_802979C();
-extern void sub_8029358();
-extern void sub_8029374();
-extern void sub_802939C();
-extern void sub_8028F58();
-extern void sub_8028F30();
-extern void sub_8028F04();
-extern void sub_8028ED4();
-extern void sub_80293D8();
-extern void sub_80293F4();
+extern void sub_8029B34(void);
+extern void sub_8029AD8(void);
+extern void sub_8029AF4(void);
+extern void sub_8029A88(void);
+extern void sub_8029AB0(void);
+extern void sub_80297B8(void);
+extern void sub_80297D4(void);
+extern void sub_8029884(void);
+extern void sub_8029944(void);
+extern void sub_80299AC(void);
+extern void sub_80299D8(void);
+extern void sub_8029A6C(void);
+extern void sub_8028CE0(void);
+extern void sub_8028BF0(void);
+extern void sub_8029A18(void);
+extern void sub_80295A8(void);
+extern void sub_8029668(void);
+extern void sub_8029684(void);
+extern void sub_8029740(void);
+extern void sub_80295D8(void);
+extern void sub_802979C(void);
+extern void sub_8029358(void);
+extern void sub_8029374(void);
+extern void sub_802939C(void);
+extern void sub_8028F58(void);
+extern void sub_8028F30(void);
+extern void sub_8028F04(void);
+extern void sub_8028ED4(void);
+extern void sub_80293D8(void);
+extern void sub_80293F4(void);
extern void sub_8028DE8(u32);
-extern void sub_8028EAC();
-extern void sub_802955C();
-extern void sub_80292A4();
-extern void sub_80292EC();
-extern void sub_802933C();
-extern void sub_802958C();
-extern void sub_8029208();
-extern void sub_8028E84();
-extern void sub_8028F80();
-extern void sub_8028FC0();
-extern void sub_8028FDC();
-extern void sub_8028E54();
-extern void sub_8028E24();
-extern void sub_8028E08();
-extern void sub_80290D4();
-extern void sub_80290F0();
-extern void sub_80291AC();
-extern void sub_8029044();
-extern void sub_8028CFC();
-extern void sub_8028D4C();
+extern void sub_8028EAC(void);
+extern void sub_802955C(void);
+extern void sub_80292A4(void);
+extern void sub_80292EC(void);
+extern void sub_802933C(void);
+extern void sub_802958C(void);
+extern void sub_8029208(void);
+extern void sub_8028E84(void);
+extern void sub_8028F80(void);
+extern void sub_8028FC0(void);
+extern void sub_8028FDC(void);
+extern void sub_8028E54(void);
+extern void sub_8028E24(void);
+extern void sub_8028E08(void);
+extern void sub_80290D4(void);
+extern void sub_80290F0(void);
+extern void sub_80291AC(void);
+extern void sub_8029044(void);
+extern void sub_8028CFC(void);
+extern void sub_8028D4C(void);
+extern void sub_8031E10(void);
+extern void sub_8023C60(void);
+extern void sub_803084C(void);
+extern void sub_80155F0(void);
+extern void sub_80310B4(void);
+extern void sub_8030DE4(void);
+extern void sub_802453C(void);
u32 sub_8027F88(void)
{
@@ -93,3 +101,205 @@ u32 sub_8027F88(void)
sub_8028B04(0); // Set initial state to 0?
return 1;
}
+
+u32 sub_8028078(void)
+{
+
+ switch(gUnknown_203B2C0->state) {
+ case 0x3c:
+ sub_8029B34();
+ break;
+ case 0x3a:
+ sub_8029AD8();
+ break;
+ case 0x3b:
+ sub_8029AF4();
+ break;
+ case 0x38:
+ sub_8029A88();
+ break;
+ case 0x37:
+ sub_8029AB0();
+ break;
+ case 0x32:
+ sub_80297B8();
+ break;
+ case 0x33:
+ sub_80297D4();
+ break;
+ case 0x34:
+ sub_8029884();
+ break;
+ case 0x35:
+ sub_8029944();
+ break;
+ case 0x31:
+ sub_80299AC();
+ break;
+ case 0x36:
+ sub_80299D8();
+ break;
+ case 0x30:
+ sub_8029A6C();
+ break;
+ case 0x2e:
+ sub_8029A18();
+ break;
+ case 0x2d:
+ sub_80295A8();
+ break;
+ case 0x29:
+ sub_8029668();
+ break;
+ case 0x2b:
+ sub_8029684();
+ break;
+ case 0x2c:
+ sub_8029740();
+ break;
+ case 0x2a:
+ sub_80295D8();
+ break;
+ case 0x2f:
+ sub_802979C();
+ break;
+ case 9:
+ sub_8029358();
+ break;
+ case 0x23:
+ sub_8029374();
+ break;
+ case 0x24:
+ sub_802939C();
+ break;
+ case 0x26:
+ sub_80293D8();
+ break;
+ case 0x27:
+ sub_80293F4();
+ break;
+ case 0x28:
+ sub_802955C();
+ break;
+ case 4:
+ sub_80292A4();
+ break;
+ case 6:
+ sub_80292EC();
+ break;
+ case 7:
+ sub_802933C();
+ break;
+ case 5:
+ sub_802958C();
+ break;
+ case 8:
+ sub_8029208();
+ break;
+ case 0x1a:
+ sub_8028DE8(1);
+ break;
+ case 0x1b:
+ sub_8028F80();
+ break;
+ case 0x1c:
+ case 0x1d:
+ sub_8028FC0();
+ break;
+ case 0x22:
+ sub_8028FDC();
+ break;
+ case 0x1e:
+ sub_80290D4();
+ break;
+ case 0x20:
+ sub_80290F0();
+ break;
+ case 0x21:
+ sub_80291AC();
+ break;
+ case 0x1f:
+ sub_8029044();
+ break;
+ case 10:
+ sub_8028CFC();
+ break;
+ case 0xb:
+ sub_8028D4C();
+ break;
+ case 0xd:
+ case 0xf:
+ sub_8028DE8(10);
+ break;
+ case 0x11:
+ sub_8028E08();
+ break;
+ case 0xc:
+ case 0xe:
+ case 0x10:
+ sub_8028DE8(0x19);
+ break;
+ case 0x12:
+ sub_8028E24();
+ break;
+ case 0x13:
+ sub_8028E54();
+ break;
+ case 0x17:
+ sub_8028E84();
+ break;
+ case 0x18:
+ sub_8028EAC();
+ break;
+ case 0x19:
+ sub_8028ED4();
+ break;
+ case 0x14:
+ sub_8028F04();
+ break;
+ case 0x15:
+ sub_8028F30();
+ break;
+ case 0x16:
+ sub_8028F58();
+ break;
+ case 0:
+ case 1:
+ sub_8028BF0();
+ break;
+ case 2:
+ case 0x25:
+ case 0x39:
+ sub_8028CE0();
+ break;
+ case 3:
+ return 3;
+ }
+ return 0;
+}
+
+s32 sub_80282DC(u8 *r0)
+{
+ *r0 = gUnknown_203B2C0->unk218;
+ return gUnknown_203B2C0->unk53C;
+}
+
+void sub_80282FC(void)
+{
+ if (gUnknown_203B2C0 != NULL) {
+ CloseFile(gUnknown_203B2C0->faceFile);
+ MemoryFree(gUnknown_203B2C0);
+ gUnknown_203B2C0 = NULL;
+ sub_8031E10();
+ sub_8023C60();
+ sub_803084C();
+ sub_80155F0();
+ sub_80310B4();
+ sub_8030DE4();
+ sub_802453C();
+ }
+}
+
+void nullsub_130(void)
+{
+}