summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorProjectRevoTPP <projectrevotpp@hotmail.com>2017-06-09 02:43:39 -0400
committerProjectRevoTPP <projectrevotpp@hotmail.com>2017-06-09 02:43:39 -0400
commitf5b7921fa3b4356c2d79a117858fc543fd2cf15f (patch)
tree2bf04c634e5dad251eced85ce9000630ce273307
parentd8ce874f29cb6d21f3348f62ebe05ce004ac3c38 (diff)
cleanup player_pc.c
-rw-r--r--asm/battle_4.s2
-rw-r--r--asm/battle_5.s10
-rw-r--r--asm/battle_anim_81258BC.s2
-rw-r--r--asm/battle_anim_8137220.s6
-rw-r--r--asm/berry_blender.s8
-rw-r--r--asm/choose_party.s8
-rw-r--r--asm/contest.s2
-rw-r--r--asm/daycare.s4
-rw-r--r--asm/decoration.s18
-rw-r--r--asm/easy_chat.s4
-rw-r--r--asm/evolution_scene.s4
-rw-r--r--asm/field_specials.s4
-rw-r--r--asm/item_menu.s2
-rw-r--r--asm/mauville_old_man.s2
-rw-r--r--asm/mon_markings.s4
-rw-r--r--asm/party_menu.s6
-rw-r--r--asm/player_pc.s10
-rw-r--r--asm/pokeblock.s4
-rw-r--r--asm/pokemon_menu.s16
-rw-r--r--asm/pokemon_storage_system.s6
-rw-r--r--asm/secret_base.s8
-rw-r--r--asm/shop.s2
-rw-r--r--asm/trade.s6
-rw-r--r--asm/trader.s6
-rw-r--r--data/player_pc.s10
-rw-r--r--include/menu.h2
-rw-r--r--include/menu_cursor.h2
-rw-r--r--shared_syms.txt2
-rw-r--r--src/battle_party_menu.c2
-rw-r--r--src/decoration.c2
-rw-r--r--src/main_menu.c8
-rw-r--r--src/menu.c18
-rw-r--r--src/menu_cursor.c4
-rw-r--r--src/player_pc.c523
-rw-r--r--src/script_menu.c4
-rw-r--r--src/script_pokemon_util_80C4BF0.c12
-rw-r--r--src/shop.c2
-rw-r--r--src/start_menu.c2
-rw-r--r--src/strings.c2
-rw-r--r--src/wallclock.c2
-rw-r--r--sym_bss.txt2
-rw-r--r--sym_ewram.txt2
42 files changed, 390 insertions, 355 deletions
diff --git a/asm/battle_4.s b/asm/battle_4.s
index aed5058b4..bbdeb1c6e 100644
--- a/asm/battle_4.s
+++ b/asm/battle_4.s
@@ -15716,7 +15716,7 @@ sub_8023AD8: @ 8023AD8
movs r2, 0x1D
movs r3, 0xD
bl sub_802BBD4
- bl sub_814A7FC
+ bl DestroyMenuCursor
add sp, 0x4
pop {r0}
bx r0
diff --git a/asm/battle_5.s b/asm/battle_5.s
index 01541c120..7c3f005ff 100644
--- a/asm/battle_5.s
+++ b/asm/battle_5.s
@@ -190,7 +190,7 @@ sub_802C098: @ 802C098
beq _0802C13E
movs r0, 0x5
bl PlaySE
- bl sub_814A7FC
+ bl DestroyMenuCursor
ldr r1, _0802C108 @ =gUnknown_02024E60
ldrb r0, [r4]
adds r0, r1
@@ -398,7 +398,7 @@ _0802C278:
movs r2, 0
bl dp01_build_cmdbuf_x21_a_bb
bl dp01_tbl1_exec_completed
- bl sub_814A7FC
+ bl DestroyMenuCursor
b _0802C2AC
.align 2, 0
_0802C294: .4byte gBattleTypeFlags
@@ -484,7 +484,7 @@ _0802C32E:
ands r0, r1
cmp r0, 0
beq _0802C3A8
- bl sub_814A7FC
+ bl DestroyMenuCursor
movs r0, 0x5
bl PlaySE
ldr r2, _0802C394 @ =gSprites
@@ -1028,7 +1028,7 @@ _0802C7B2:
cmp r0, 0
bne _0802C7DC
_0802C7B8:
- bl sub_814A7FC
+ bl DestroyMenuCursor
ldr r1, _0802C7D0 @ =gUnknown_02024E64
ldr r0, _0802C7D8 @ =gUnknown_02024A60
ldrb r0, [r0]
@@ -1112,7 +1112,7 @@ _0802C864:
ands r0, r1
cmp r0, 0
beq _0802C8A4
- bl sub_814A7FC
+ bl DestroyMenuCursor
movs r0, 0x5
bl PlaySE
ldr r0, _0802C898 @ =gUnknown_030042A4
diff --git a/asm/battle_anim_81258BC.s b/asm/battle_anim_81258BC.s
index 86abad6f3..be9b806d9 100644
--- a/asm/battle_anim_81258BC.s
+++ b/asm/battle_anim_81258BC.s
@@ -802,7 +802,7 @@ bx_battle_menu_t6_2: @ 812B4D4
beq _0812B546
movs r0, 0x5
bl PlaySE
- bl sub_814A7FC
+ bl DestroyMenuCursor
ldr r1, _0812B50C @ =gUnknown_02024E60
ldr r0, _0812B510 @ =gUnknown_02024A60
ldrb r0, [r0]
diff --git a/asm/battle_anim_8137220.s b/asm/battle_anim_8137220.s
index 134e18e6f..13773361a 100644
--- a/asm/battle_anim_8137220.s
+++ b/asm/battle_anim_8137220.s
@@ -234,7 +234,7 @@ _081373E8:
bne _08137410
movs r0, 0x5
bl PlaySE
- bl sub_814A7FC
+ bl DestroyMenuCursor
movs r0, 0x1
movs r1, 0x1
movs r2, 0
@@ -3871,7 +3871,7 @@ sub_8139208: @ 8139208
ldrh r0, [r4]
cmp r0, 0x2
bne _0813922A
- bl sub_814A7FC
+ bl DestroyMenuCursor
_0813922A:
ldrh r0, [r4]
bl sub_8120AA8
@@ -4061,7 +4061,7 @@ _081393B2:
lsls r0, 24
cmp r0, 0
bne _081393DE
- bl sub_814A7FC
+ bl DestroyMenuCursor
movs r0, 0x5
bl PlaySE
movs r2, 0x80
diff --git a/asm/berry_blender.s b/asm/berry_blender.s
index 666882c04..b6ee5f9f3 100644
--- a/asm/berry_blender.s
+++ b/asm/berry_blender.s
@@ -5484,7 +5484,7 @@ _08050ED8:
adds r0, 0x6F
movs r1, 0x3
strb r1, [r0]
- bl sub_814A7FC
+ bl DestroyMenuCursor
movs r0, 0x17
movs r1, 0x8
movs r2, 0x1C
@@ -5513,7 +5513,7 @@ _08050F18:
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
- bl sub_814A7FC
+ bl DestroyMenuCursor
movs r0, 0x17
movs r1, 0x8
movs r2, 0x1C
@@ -5794,7 +5794,7 @@ _0805116E:
adds r0, 0x6F
movs r1, 0x3
strb r1, [r0]
- bl sub_814A7FC
+ bl DestroyMenuCursor
movs r0, 0x17
movs r1, 0x8
movs r2, 0x1C
@@ -5810,7 +5810,7 @@ _08051190:
ldrb r1, [r0]
adds r1, 0x1
strb r1, [r0]
- bl sub_814A7FC
+ bl DestroyMenuCursor
movs r0, 0x17
movs r1, 0x8
movs r2, 0x1C
diff --git a/asm/choose_party.s b/asm/choose_party.s
index 25122e4ef..09f00ac77 100644
--- a/asm/choose_party.s
+++ b/asm/choose_party.s
@@ -1131,7 +1131,7 @@ _081226DC:
movs r2, 0x1D
movs r3, 0x13
bl MenuZeroFillWindowRect
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
bl sub_806D5A4
ldr r0, _0812271C @ =gOtherText_NoMoreThreePoke
movs r1, 0x1
@@ -1178,7 +1178,7 @@ _0812274A:
movs r2, 0x1D
movs r3, 0x13
bl MenuZeroFillWindowRect
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
adds r0, r4, 0
bl sub_8122838
_08122760:
@@ -1276,7 +1276,7 @@ sub_81227FC: @ 81227FC
movs r2, 0x1D
movs r3, 0x13
bl MenuZeroFillWindowRect
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0
movs r1, 0
bl sub_806D538
@@ -2395,7 +2395,7 @@ sub_81230F4: @ 81230F4
movs r2, 0x1D
movs r3, 0x13
bl MenuZeroFillWindowRect
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0xF
movs r1, 0
bl sub_806D538
diff --git a/asm/contest.s b/asm/contest.s
index 214935952..1f92f6fad 100644
--- a/asm/contest.s
+++ b/asm/contest.s
@@ -1577,7 +1577,7 @@ _080ABEC6:
ands r5, r0
cmp r5, 0
beq _080ABF08
- bl sub_814A7FC
+ bl DestroyMenuCursor
movs r0, 0x5
bl PlaySE
ldr r0, _080ABF00 @ =gTasks
diff --git a/asm/daycare.s b/asm/daycare.s
index 47a84e8e0..98e8a9ea4 100644
--- a/asm/daycare.s
+++ b/asm/daycare.s
@@ -2719,7 +2719,7 @@ _0804279C:
ands r0, r1
cmp r0, 0
beq _080427E8
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0x5
bl PlaySE
ldr r3, _080427DC @ =gLastFieldPokeMenuOpened
@@ -2751,7 +2751,7 @@ _080427E8:
ands r0, r1
cmp r0, 0
beq _08042816
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
ldr r0, _0804281C @ =gLastFieldPokeMenuOpened
ldr r1, _08042820 @ =gScriptResult
strh r4, [r1]
diff --git a/asm/decoration.s b/asm/decoration.s
index 221c749c5..423e19809 100644
--- a/asm/decoration.s
+++ b/asm/decoration.s
@@ -255,7 +255,7 @@ gpu_pal_decompress_alloc_tag_and_upload: @ 80FE3C4
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0
movs r1, 0
movs r2, 0xA
@@ -497,7 +497,7 @@ sub_80FE5AC: @ 80FE5AC
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0
movs r1, 0
movs r2, 0x1D
@@ -627,7 +627,7 @@ _080FE6D0: .4byte gUnknown_020388F7
_080FE6D4: .4byte gTasks
_080FE6D8: .4byte sub_80FE868
_080FE6DC:
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0
movs r1, 0
movs r2, 0xE
@@ -693,7 +693,7 @@ sub_80FE758: @ 80FE758
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0
movs r1, 0
movs r2, 0xE
@@ -965,7 +965,7 @@ _080FE9EE:
ands r0, r1
cmp r0, 0
beq _080FEA7C
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0x5
bl PlaySE
ldr r2, _080FEA44 @ =gUnknown_020388F5
@@ -1025,7 +1025,7 @@ _080FEA7C:
ands r0, r1
cmp r0, 0
beq _080FEAAC
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0x5
bl PlaySE
ldr r1, _080FEAB4 @ =gUnknown_083EC634
@@ -1684,7 +1684,7 @@ sub_80FEF74: @ 80FEF74
bl DestroyVerticalScrollIndicator
movs r0, 0x1
bl DestroyVerticalScrollIndicator
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0
movs r1, 0
movs r2, 0xE
@@ -1780,7 +1780,7 @@ sub_80FF034: @ 80FF034
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0
movs r1, 0
movs r2, 0xE
@@ -5743,7 +5743,7 @@ _08100E9E:
strh r0, [r4, 0x4]
strh r0, [r4, 0xC]
strh r0, [r4, 0xA]
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
b _08100EE6
.align 2, 0
_08100EC0: .4byte gPaletteFade
diff --git a/asm/easy_chat.s b/asm/easy_chat.s
index d1106ab0d..df366f3b7 100644
--- a/asm/easy_chat.s
+++ b/asm/easy_chat.s
@@ -1595,7 +1595,7 @@ _080E6D58:
.align 2, 0
_080E6D60: .4byte 0x02001000
_080E6D64:
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
bl sub_80E81FC
ldr r0, _080E6D78 @ =sub_80E6AC4
bl sub_80E682C
@@ -1781,7 +1781,7 @@ _080E6ED0: .4byte 0x00009c7c
_080E6ED4: .4byte 0x0000ffff
_080E6ED8: .4byte sub_80E752C
_080E6EDC:
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
bl sub_80E81FC
ldr r4, _080E6EFC @ =0x02001000
ldrb r0, [r4, 0x8]
diff --git a/asm/evolution_scene.s b/asm/evolution_scene.s
index 002cf6527..159d96298 100644
--- a/asm/evolution_scene.s
+++ b/asm/evolution_scene.s
@@ -3517,7 +3517,7 @@ _08113768:
movs r2, 0x8
movs r3, 0x1D
bl ZeroFillWindowRect
- bl sub_814A7FC
+ bl DestroyMenuCursor
ldr r0, _081137D8 @ =gUnknown_08400F8C
movs r1, 0x92
lsls r1, 3
@@ -3591,7 +3591,7 @@ _08113818:
movs r2, 0x8
movs r3, 0x1D
bl ZeroFillWindowRect
- bl sub_814A7FC
+ bl DestroyMenuCursor
ldr r0, _08113874 @ =gUnknown_08400F8C
movs r1, 0x92
lsls r1, 3
diff --git a/asm/field_specials.s b/asm/field_specials.s
index 63677b6a0..136489b80 100644
--- a/asm/field_specials.s
+++ b/asm/field_specials.s
@@ -3086,7 +3086,7 @@ _0810F17A:
ands r0, r1
cmp r0, 0
beq _0810F1AE
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
ldr r0, _0810F1F0 @ =gScriptResult
ldr r1, _0810F1E8 @ =gUnknown_0203925B
ldrb r1, [r1]
@@ -3107,7 +3107,7 @@ _0810F1AE:
ands r0, r1
cmp r0, 0
beq _0810F1DE
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
ldr r1, _0810F1F0 @ =gScriptResult
movs r0, 0x7F
strh r0, [r1]
diff --git a/asm/item_menu.s b/asm/item_menu.s
index 7463663d8..bb6e59f54 100644
--- a/asm/item_menu.s
+++ b/asm/item_menu.s
@@ -8369,7 +8369,7 @@ sub_80A73F0: @ 80A73F0
thumb_func_start sub_80A73FC
sub_80A73FC: @ 80A73FC
push {lr}
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
bl sub_814AD44
pop {r0}
bx r0
diff --git a/asm/mauville_old_man.s b/asm/mauville_old_man.s
index 90d97e9a4..726de6fc1 100644
--- a/asm/mauville_old_man.s
+++ b/asm/mauville_old_man.s
@@ -1410,7 +1410,7 @@ _080F8840:
ldr r0, _080F8870 @ =gUnknown_03000748
strb r4, [r0]
_080F8848:
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0
movs r1, 0
movs r2, 0x19
diff --git a/asm/mon_markings.s b/asm/mon_markings.s
index 28bc116a9..caab4e299 100644
--- a/asm/mon_markings.s
+++ b/asm/mon_markings.s
@@ -246,7 +246,7 @@ _080F7434:
lsrs r3, r0, 16
cmp r3, 0x3
bls _080F7434
- bl sub_814A7FC
+ bl DestroyMenuCursor
lsls r0, r5, 16
asrs r0, 16
lsls r1, r6, 16
@@ -322,7 +322,7 @@ _080F74C8:
lsrs r4, r0, 16
cmp r4, 0x3
bls _080F74C8
- bl sub_814A7FC
+ bl DestroyMenuCursor
ldr r0, [r5]
ldr r0, [r0, 0x24]
cmp r0, 0
diff --git a/asm/party_menu.s b/asm/party_menu.s
index 534d4aaa4..b9c9de694 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -7423,7 +7423,7 @@ sub_806E7D0: @ 806E7D0
lsls r3, 24
lsrs r3, 24
bl MenuZeroFillWindowRect
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
add sp, 0x4
pop {r4-r6}
pop {r0}
@@ -10660,7 +10660,7 @@ ItemUseMoveMenu_HandleMoveSelection: @ 80704B0
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0x13
movs r1, 0xA
movs r2, 0x1D
@@ -10690,7 +10690,7 @@ ItemUseMoveMenu_HandleCancel: @ 80704F0
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0x13
movs r1, 0xA
movs r2, 0x1D
diff --git a/asm/player_pc.s b/asm/player_pc.s
index 0d3189b61..76dc7b8e1 100644
--- a/asm/player_pc.s
+++ b/asm/player_pc.s
@@ -341,7 +341,7 @@ _0813B212:
ands r0, r1
cmp r0, 0
beq _0813B25C
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0x5
bl PlaySE
ldr r0, _0813B23C @ =0x0201fe00
@@ -374,7 +374,7 @@ _0813B25C:
ands r0, r1
cmp r0, 0
beq _0813B274
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0x5
bl PlaySE
adds r0, r4, 0
@@ -717,7 +717,7 @@ Mailbox_MoveToBag: @ 813B510
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
ldr r0, _0813B540 @ =gStringVar1
ldr r1, _0813B544 @ =gOtherText_MoveToBag
bl StringCopy
@@ -920,7 +920,7 @@ sub_813B6A4: @ 813B6A4
lsrs r6, r0, 24
ldr r5, _0813B6F4 @ =0x0201fe00
ldrb r4, [r5, 0x3]
- bl sub_813AF3C
+ bl GetMailboxMailCount
strb r0, [r5, 0x3]
bl sub_813AF78
ldrb r0, [r5, 0x3]
@@ -988,7 +988,7 @@ Mailbox_Cancel: @ 813B734
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0
movs r1, 0
movs r2, 0xC
diff --git a/asm/pokeblock.s b/asm/pokeblock.s
index 44ac16b7e..669811f53 100644
--- a/asm/pokeblock.s
+++ b/asm/pokeblock.s
@@ -1830,7 +1830,7 @@ sub_810C540: @ 810C540
lsrs r5, 24
ldr r0, _0810C5A0 @ =gWindowConfig_81E6E50
bl BasicInitMenuWindow
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0x7
movs r1, 0x4
movs r2, 0xD
@@ -2078,7 +2078,7 @@ sub_810C748: @ 810C748
bl sub_80F98DC
movs r0, 0x1
bl sub_80F98DC
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0x7
movs r1, 0x4
movs r2, 0xD
diff --git a/asm/pokemon_menu.s b/asm/pokemon_menu.s
index 57bcd4904..110ccb6e4 100644
--- a/asm/pokemon_menu.s
+++ b/asm/pokemon_menu.s
@@ -718,7 +718,7 @@ PokemonMenu_Switch: @ 808A02C
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
ldr r0, _0808A054 @ =0x02001000
ldr r1, _0808A058 @ =sub_806CD5C
str r1, [r0, 0xC]
@@ -849,7 +849,7 @@ PokemonMenu_Item: @ 808A140
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
ldr r1, _0808A174 @ =gUnknown_0202FFA8
movs r0, 0
strb r0, [r1]
@@ -1497,7 +1497,7 @@ PokemonMenu_TakeItem: @ 808A688
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0x13
movs r1, 0
movs r2, 0x1D
@@ -1520,7 +1520,7 @@ PokemonMenu_TakeMail: @ 808A6B8
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0x13
movs r1, 0
movs r2, 0x1D
@@ -1543,7 +1543,7 @@ PokemonMenu_Mail: @ 808A6E8
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
ldr r1, _0808A728 @ =gUnknown_0202FFA8
movs r0, 0
strb r0, [r1]
@@ -1812,7 +1812,7 @@ PokemonMenu_Cancel: @ 808A918
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0x5
bl PlaySE
adds r0, r4, 0
@@ -1828,7 +1828,7 @@ PokemonMenu_CancelSubmenu: @ 808A938
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0x5
bl PlaySE
movs r0, 0x13
@@ -1867,7 +1867,7 @@ PokemonMenu_FieldMove: @ 808A984
lsls r6, r0, 3
ldr r7, _0808A9D0 @ =gTasks + 0x8
adds r4, r6, r7
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
ldr r1, _0808A9D4 @ =gUnknown_0202FFAA
ldr r0, _0808A9D8 @ =gUnknown_0202FFA8
ldrb r0, [r0]
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index 176a42124..b3ef00ecf 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -931,7 +931,7 @@ _08095FA2:
_08095FC0: .4byte gMain
_08095FC4: .4byte gUnknown_083B600C
_08095FC8:
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0
movs r1, 0
movs r2, 0xD
@@ -5915,7 +5915,7 @@ sub_8098A38: @ 8098A38
thumb_func_start sub_8098A5C
sub_8098A5C: @ 8098A5C
push {lr}
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0xA
movs r1, 0x10
movs r2, 0x1D
@@ -14831,7 +14831,7 @@ _0809CF8E:
negs r0, r0
cmp r5, r0
beq _0809CFB2
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
ldr r0, _0809CFD0 @ =gUnknown_083B6DB4
ldr r1, [r0]
ldr r2, _0809CFD4 @ =0x000011ba
diff --git a/asm/secret_base.s b/asm/secret_base.s
index 81225ba4b..6c78bae77 100644
--- a/asm/secret_base.s
+++ b/asm/secret_base.s
@@ -2612,7 +2612,7 @@ _080BC8C2:
ldrsh r1, [r4, r2]
cmp r0, r1
bne _080BC8FC
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0
movs r1, 0
movs r2, 0x1D
@@ -2622,7 +2622,7 @@ _080BC8C2:
bl sub_80BCC54
b _080BC940
_080BC8FC:
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
ldrb r0, [r4, 0x4]
ldrb r1, [r4, 0x2]
adds r0, r1
@@ -2642,7 +2642,7 @@ _080BC91C:
beq _080BC940
movs r0, 0x5
bl PlaySE
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0
movs r1, 0
movs r2, 0x1D
@@ -2827,7 +2827,7 @@ sub_80BCA84: @ 80BCA84
bl DestroyVerticalScrollIndicator
movs r0, 0x1
bl DestroyVerticalScrollIndicator
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0
movs r1, 0
movs r2, 0x1D
diff --git a/asm/shop.s b/asm/shop.s
index 1d0863469..ba4c53885 100644
--- a/asm/shop.s
+++ b/asm/shop.s
@@ -1777,7 +1777,7 @@ _080B41CE:
adds r0, r1, 0
movs r2, 0x1
bl sub_80B39D0
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0
movs r1, 0xC
movs r2, 0xD
diff --git a/asm/trade.s b/asm/trade.s
index 61bf2ea3e..a26afa254 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -3266,7 +3266,7 @@ _08049800: .4byte gUnknown_03004824
thumb_func_start sub_8049804
sub_8049804: @ 8049804
push {lr}
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
bl sub_804A80C
ldr r3, _08049850 @ =gUnknown_03004824
ldr r0, [r3]
@@ -4315,7 +4315,7 @@ _08049F8E:
lsls r0, 2
adds r0, r7
bl sub_8078A34
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
ldr r3, _0804A09C @ =gUnknown_03004824
ldr r0, [r3]
adds r0, 0x4
@@ -5363,7 +5363,7 @@ _0804A89C: .4byte gUnknown_03004824
_0804A8A0: .4byte gUnknown_0820C330
_0804A8A4: .4byte gTradePartyBoxTilemap
_0804A8A8:
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
ldr r4, _0804A924 @ =gUnknown_03004824
ldr r0, [r4]
adds r0, 0x4
diff --git a/asm/trader.s b/asm/trader.s
index be3627e90..3bda1d8dc 100644
--- a/asm/trader.s
+++ b/asm/trader.s
@@ -290,7 +290,7 @@ _08109B54:
ldr r0, _08109B78 @ =gSpecialVar_0x8004
strh r1, [r0]
_08109B58:
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0
movs r1, 0x1
movs r2, 0xC
@@ -509,7 +509,7 @@ sub_8109D04: @ 8109D04
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0
movs r1, 0
movs r2, 0x1D
@@ -581,7 +581,7 @@ sub_8109DAC: @ 8109DAC
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0
movs r1, 0
movs r2, 0x1D
diff --git a/data/player_pc.s b/data/player_pc.s
index 200ae19c2..d7880b5eb 100644
--- a/data/player_pc.s
+++ b/data/player_pc.s
@@ -4,27 +4,27 @@
.section .rodata
.align 2
-gUnknown_08406288:: @ 8406288
+gPCText_OptionDescList:: @ 8406288
.4byte PCText_TakeOutItems
.4byte PCText_StoreItems
.4byte PCText_ThrowAwayItems
.4byte gMenuText_GoBackToPrev
.align 2
-gUnknown_08406298:: @ 8406298
+gPCText_PlayerPCOptionsText:: @ 8406298
.4byte SecretBaseText_ItemStorage, PlayerPC_ItemStorage
.4byte gPCText_Mailbox, PlayerPC_Mailbox
.4byte SecretBaseText_Decoration, PlayerPC_Decoration
.4byte SecretBaseText_TurnOff, PlayerPC_TurnOff
-gUnknown_084062B8:: @ 84062B8
+gBedroomPC_OptionOrder:: @ 84062B8
.byte 0, 1, 2, 3
-gUnknown_084062BC:: @ 84062BC
+gPlayerPC_OptionOrder:: @ 84062BC
.byte 0, 1, 3
.align 2
-gUnknown_084062C0:: @ 84062C0
+gPCText_ItemPCOptionsText:: @ 84062C0
.4byte PCText_WithdrawItem, ItemStorage_Withdraw
.4byte PCText_DepositItem, ItemStorage_Deposit
.4byte PCText_TossItem, ItemStorage_Toss
diff --git a/include/menu.h b/include/menu.h
index c3dcbc969..8f697d136 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -69,6 +69,6 @@ void RedrawMenuCursor(u8, u8);
void unref_sub_8072DC0(void);
void sub_8072DCC(u8);
void sub_8072DDC(u8);
-void sub_8072DEC(void);
+void HandleDestroyMenuCursors(void);
#endif // GUARD_MENU_H
diff --git a/include/menu_cursor.h b/include/menu_cursor.h
index cc6cc16bc..ca82ef244 100644
--- a/include/menu_cursor.h
+++ b/include/menu_cursor.h
@@ -7,7 +7,7 @@ void sub_814A590(void);
u8 sub_814A5C0(u8 a1, u16 a2, u8 a3, u16 a4, u8 a5);
u8 sub_814A758(u8 a1, u8 a2, u8 a3, u8 a4);
u8 unref_sub_814A7AC(u8 a1, u16 a2, u8 a3);
-void sub_814A7FC(void);
+void DestroyMenuCursor(void);
void sub_814A880(u8 a1, u8 a2);
void sub_814A904(void);
void sub_814A958(u8 a1);
diff --git a/shared_syms.txt b/shared_syms.txt
index 16d4138e5..884f0e89d 100644
--- a/shared_syms.txt
+++ b/shared_syms.txt
@@ -22,7 +22,7 @@ unk_2016C00 = 0x2016C00;
gTransformStatuses = 0x2017800;
unk_2017810 = 0x2017810;
-unk_201FE00 = 0x201FE00;
+gMailboxInfo = 0x201FE00;
gSecretBaseRecord = 0x2017000;
diff --git a/src/battle_party_menu.c b/src/battle_party_menu.c
index 820d16465..e5f78b6c4 100644
--- a/src/battle_party_menu.c
+++ b/src/battle_party_menu.c
@@ -477,7 +477,7 @@ static void Task_BattlePartyMenuShift(u8 taskId)
static void Task_BattlePartyMenuCancel(u8 taskId)
{
- sub_8072DEC();
+ HandleDestroyMenuCursors();
sub_806E7D0(gTasks[taskId].data[4], sBattlePartyPopupMenus);
gTasks[taskId].data[4] = gTasks[taskId].data[5];
sub_806D538(0, 0);
diff --git a/src/decoration.c b/src/decoration.c
index 279a7568b..efe86f144 100644
--- a/src/decoration.c
+++ b/src/decoration.c
@@ -14,7 +14,7 @@ void sub_80FECE0(u8 arg0);
void sub_80FE7EC(u8 arg0)
{
- sub_8072DEC();
+ HandleDestroyMenuCursors();
MenuZeroFillWindowRect(0, 0, 29, 19);
sub_80FEC94(arg0);
diff --git a/src/main_menu.c b/src/main_menu.c
index 50fefc471..e825ae70e 100644
--- a/src/main_menu.c
+++ b/src/main_menu.c
@@ -965,14 +965,14 @@ static void Task_NewGameSpeech16(u8 taskId)
switch (GenderMenuProcessInput())
{
case MALE:
- sub_8072DEC();
+ HandleDestroyMenuCursors();
PlaySE(SE_SELECT);
gSaveBlock2.playerGender = MALE;
MenuZeroFillWindowRect(2, 4, 8, 9);
gTasks[taskId].func = Task_NewGameSpeech19;
break;
case FEMALE:
- sub_8072DEC();
+ HandleDestroyMenuCursors();
PlaySE(SE_SELECT);
gSaveBlock2.playerGender = FEMALE;
MenuZeroFillWindowRect(2, 4, 8, 9);
@@ -1068,7 +1068,7 @@ static void Task_NewGameSpeech21(u8 taskId)
case 2:
case 3:
case 4:
- sub_8072DEC();
+ HandleDestroyMenuCursors();
PlaySE(SE_SELECT);
MenuZeroFillWindowRect(2, 1, 22, 12);
SetPresetPlayerName(selection);
@@ -1080,7 +1080,7 @@ static void Task_NewGameSpeech21(u8 taskId)
gTasks[taskId].func = Task_NewGameSpeech22;
break;
case -1: //B button
- sub_8072DEC();
+ HandleDestroyMenuCursors();
PlaySE(SE_SELECT);
MenuZeroFillWindowRect(2, 1, 22, 12);
gTasks[taskId].func = Task_NewGameSpeech14; //Go back to gender menu
diff --git a/src/menu.c b/src/menu.c
index ba98ff057..d11c45c6f 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -56,7 +56,7 @@ void CloseMenu(void)
MenuZeroFillScreen();
sub_8064E2C();
ScriptContext2_Disable();
- sub_8072DEC();
+ HandleDestroyMenuCursors();
}
void AppendToList(u8 *list, u8 *pindex, u32 value)
@@ -272,14 +272,14 @@ s8 ProcessMenuInput(void)
{
PlaySE(SE_SELECT);
if (gMenu.menu_field_7)
- sub_8072DEC();
+ HandleDestroyMenuCursors();
return gMenu.cursorPos;
}
if (gMain.newKeys & B_BUTTON)
{
if (gMenu.menu_field_7)
- sub_8072DEC();
+ HandleDestroyMenuCursors();
return -1;
}
@@ -307,14 +307,14 @@ s8 ProcessMenuInputNoWrap(void)
{
PlaySE(SE_SELECT);
if (gMenu.menu_field_7)
- sub_8072DEC();
+ HandleDestroyMenuCursors();
return gMenu.cursorPos;
}
if (gMain.newKeys & B_BUTTON)
{
if (gMenu.menu_field_7)
- sub_8072DEC();
+ HandleDestroyMenuCursors();
return -1;
}
@@ -519,7 +519,7 @@ s8 sub_80727CC(void)
if (gMain.newKeys & A_BUTTON)
{
if (gMenu.menu_field_7)
- sub_8072DEC();
+ HandleDestroyMenuCursors();
PlaySE(SE_SELECT);
return GetMenuCursorPos();
}
@@ -527,7 +527,7 @@ s8 sub_80727CC(void)
if (gMain.newKeys & B_BUTTON)
{
if (gMenu.menu_field_7)
- sub_8072DEC();
+ HandleDestroyMenuCursors();
return -1;
}
@@ -733,7 +733,7 @@ void sub_8072DDC(u8 a1)
sub_8072DCC(8 * a1);
}
-void sub_8072DEC(void)
+void HandleDestroyMenuCursors(void)
{
- sub_814A7FC();
+ DestroyMenuCursor();
}
diff --git a/src/menu_cursor.c b/src/menu_cursor.c
index fa28332df..cfb38ca47 100644
--- a/src/menu_cursor.c
+++ b/src/menu_cursor.c
@@ -45,7 +45,7 @@ u8 sub_814A5C0(u8 a1, u16 a2, u8 a3, u16 a4, u8 a5)
struct Sprite *v10;
if (gUnknown_0203A3D0 != 0x40 || gUnknown_0203A3D1 != 0x40)
- sub_814A7FC();
+ DestroyMenuCursor();
v9 = 1;
if (a2 == 0xFFFF)
@@ -120,7 +120,7 @@ u8 unref_sub_814A7AC(u8 a1, u16 a2, u8 a3)
return sub_814A758(a1, val1, val2, a3);
}
-void sub_814A7FC(void)
+void DestroyMenuCursor(void)
{
if (gUnknown_0203A3D0 != 0x40)
{
diff --git a/src/player_pc.c b/src/player_pc.c
index d24dbecb7..f539a5bb5 100644
--- a/src/player_pc.c
+++ b/src/player_pc.c
@@ -11,14 +11,45 @@
#include "sound.h"
#include "string_util.h"
#include "task.h"
+#include "songs.h"
+
+// task defines
+#define PAGE_INDEX data[0]
+#define ITEMS_ABOVE_TOP data[1]
+#define NUM_ITEMS data[2]
+#define NUM_QUANTITY_ROLLER data[3]
+#define NUM_PAGE_ITEMS data[4]
+// not used
+#define CURRENT_ITEM_STORAGE_MENU data[6]
+// not used
+#define SWAP_ITEM_INDEX data[8]
+#define SWITCH_MODE_ACTIVE data[9]
#define NEW_GAME_PC_ITEMS(i, type) ((u16)(gNewGamePCItems + type)[i * 2])
-// type as in define above
+// defined and used in the above macro
enum
{
ITEM_ID,
- QUANTITY,
+ QUANTITY
+};
+
+// player PC menu options
+enum
+{
+ PLAYERPC_MENU_ITEMSTORAGE,
+ PLAYERPC_MENU_MAILBOX,
+ PLAYERPC_MENU_DECORATION,
+ PLAYERPC_MENU_TURNOFF
+};
+
+// item storage menus
+enum
+{
+ ITEMPC_MENU_WITHDRAW,
+ ITEMPC_MENU_DEPOSIT,
+ ITEMPC_MENU_TOSS,
+ ITEMPC_MENU_EXIT
};
// special item description handlers
@@ -35,6 +66,16 @@ enum
ITEMPC_GO_BACK_TO_PREV
};
+struct MailboxStruct
+{
+ u8 unk0;
+ u8 pageItems;
+ u8 unk2;
+ u8 count;
+};
+
+extern struct MailboxStruct gMailboxInfo;
+
extern void DisplayItemMessageOnField(u8, u8*, TaskFunc, u16);
extern void DoPlayerPCDecoration(u8);
extern void BuyMenuFreeMemory(void);
@@ -60,11 +101,11 @@ extern u16 gUnknown_08406334[3];
extern u8 gOtherText_WhatWillYouDo[];
extern u8 gOtherText_NoMailHere[];
-extern u8 *gUnknown_02039314;
-extern struct MenuAction gUnknown_08406298[];
+extern u8 *gPcItemMenuOptionOrder;
+extern struct MenuAction gPCText_PlayerPCOptionsText[];
-extern u8 gUnknown_084062B8[];
-extern u8 gUnknown_084062BC[];
+extern u8 gBedroomPC_OptionOrder[];
+extern u8 gPlayerPC_OptionOrder[];
extern u8 gUnknown_0840632A[];
extern u8 gUnknown_08406327[];
extern u8 gUnknown_08406330[];
@@ -81,14 +122,13 @@ extern u8 gOtherText_TooImportant[];
extern u8 gOtherText_OkayToThrowAwayPrompt[];
extern u8 gOtherText_SwitchWhichItem[];
-extern u8 gUnknown_030007B4;
-extern u8 unk_201FE00[];
+extern u8 gPcItemMenuOptionsNum;
extern u8 gUnknown_08152850;
extern u8 gUnknown_08152C75;
-extern u32 gUnknown_08406288[];
-extern const struct MenuAction gUnknown_084062C0[];
+extern u32 gPCText_OptionDescList[];
+extern const struct MenuAction gPCText_ItemPCOptionsText[];
extern const struct YesNoFuncTable gUnknown_084062E0;
void InitPlayerPCMenu(u8 taskId);
@@ -96,23 +136,23 @@ void PlayerPCProcessMenuInput(u8 taskId);
void InitItemStorageMenu(u8);
void ItemStorageMenuPrint(u8 *);
void ItemStorageMenuProcessInput(u8);
-void sub_813A280(u8);
+void ItemStorage_ProcessInput(u8);
void sub_813A240(u8);
void sub_813A4B4(u8);
void sub_813A468(u8);
void HandleQuantityRolling(u8);
-void sub_813A6FC(u8);
+void ItemStorage_DoItemWithdraw(u8);
void sub_813A794(u8);
void sub_813A8F0(u8);
void sub_813A984(u8);
void sub_813A9EC(u8);
-void sub_813AA30(u8, u8);
-void sub_813ABE8(u8);
-void sub_813AD58(u16);
-void sub_813AE0C(u8);
+void ItemStorage_DoItemSwap(u8, bool8);
+void ItemStorage_DrawItemList(u8);
+void GetPlayerPcResponseString(u16);
+void ItemStorage_DrawBothListAndDescription(u8);
void sub_813AE6C(u8, u8);
void sub_813AF04(void);
-u8 sub_813AF3C(void);
+u8 GetMailboxMailCount(void);
void NewGameInitPCItems(void)
{
@@ -126,55 +166,49 @@ void NewGameInitPCItems(void)
void BedroomPC(void)
{
- u8 taskId;
-
- gUnknown_02039314 = gUnknown_084062B8;
- gUnknown_030007B4 = 4;
- taskId = CreateTask(TaskDummy, 0);
- DisplayItemMessageOnField(taskId, gOtherText_WhatWillYouDo, InitPlayerPCMenu, 0);
+ gPcItemMenuOptionOrder = gBedroomPC_OptionOrder;
+ gPcItemMenuOptionsNum = 4;
+ DisplayItemMessageOnField(CreateTask(TaskDummy, 0), gOtherText_WhatWillYouDo, InitPlayerPCMenu, 0);
}
void PlayerPC(void)
{
- u8 taskId;
-
- gUnknown_02039314 = gUnknown_084062BC;
- gUnknown_030007B4 = 3;
- taskId = CreateTask(TaskDummy, 0);
- DisplayItemMessageOnField(taskId, gOtherText_WhatWillYouDo, InitPlayerPCMenu, 0);
+ gPcItemMenuOptionOrder = gPlayerPC_OptionOrder;
+ gPcItemMenuOptionsNum = 3;
+ DisplayItemMessageOnField(CreateTask(TaskDummy, 0), gOtherText_WhatWillYouDo, InitPlayerPCMenu, 0);
}
void InitPlayerPCMenu(u8 taskId)
{
- MenuDrawTextWindow(0, 0, 10, gUnknown_030007B4 * 2 + 1);
- PrintMenuItemsReordered(1, 1, gUnknown_030007B4, gUnknown_08406298, gUnknown_02039314);
- InitMenu(0, 1, 1, gUnknown_030007B4, 0, 9);
+ MenuDrawTextWindow(0, 0, 10, gPcItemMenuOptionsNum * 2 + 1);
+ PrintMenuItemsReordered(1, 1, gPcItemMenuOptionsNum, gPCText_PlayerPCOptionsText, gPcItemMenuOptionOrder);
+ InitMenu(0, 1, 1, gPcItemMenuOptionsNum, 0, 9);
gTasks[taskId].func = PlayerPCProcessMenuInput;
}
void PlayerPCProcessMenuInput(u8 taskId)
{
- if (gMain.newAndRepeatedKeys & 0x40)
+ if (gMain.newAndRepeatedKeys & DPAD_UP)
{
- PlaySE(5);
+ PlaySE(SE_SELECT);
MoveMenuCursor(-1);
}
- else if (gMain.newAndRepeatedKeys & 0x80)
+ else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
{
- PlaySE(5);
+ PlaySE(SE_SELECT);
MoveMenuCursor(1);
}
- else if (gMain.newKeys & 0x1)
+ else if (gMain.newKeys & A_BUTTON)
{
- sub_8072DEC();
- PlaySE(5);
- gUnknown_08406298[gUnknown_02039314[GetMenuCursorPos()]].func(taskId);
+ HandleDestroyMenuCursors();
+ PlaySE(SE_SELECT);
+ gPCText_PlayerPCOptionsText[gPcItemMenuOptionOrder[GetMenuCursorPos()]].func(taskId);
}
- else if (gMain.newKeys & 0x2)
+ else if (gMain.newKeys & B_BUTTON)
{
- sub_8072DEC();
- PlaySE(5);
- gUnknown_08406298[gUnknown_030007B4[gUnknown_02039314 - 1]].func(taskId);
+ HandleDestroyMenuCursors();
+ PlaySE(SE_SELECT);
+ gPCText_PlayerPCOptionsText[gPcItemMenuOptionsNum[gPcItemMenuOptionOrder - 1]].func(taskId); // run EXIT.
}
}
@@ -192,13 +226,14 @@ void PlayerPC_ItemStorage(u8 taskId)
void PlayerPC_Mailbox(u8 taskId)
{
MenuZeroFillWindowRect(0, 0, 10, 9);
- unk_201FE00[3] = sub_813AF3C();
- if (!unk_201FE00[3])
+ gMailboxInfo.count = GetMailboxMailCount();
+
+ if (gMailboxInfo.count == 0)
DisplayItemMessageOnField(taskId, gOtherText_NoMailHere, ReshowPlayerPC, 0);
else
{
- unk_201FE00[0] = 0;
- unk_201FE00[2] = 0;
+ gMailboxInfo.unk0 = 0;
+ gMailboxInfo.unk2 = 0;
sub_813AF78();
sub_813A240(taskId);
sub_813B108(taskId);
@@ -214,13 +249,14 @@ void PlayerPC_Decoration(u8 var)
void PlayerPC_TurnOff(u8 taskId)
{
- if (gUnknown_030007B4 == 4)
+ if (gPcItemMenuOptionsNum == 4) // if the option count is 4, we are at the bedroom PC and not player PC, so do gender specific handling.
{
MenuZeroFillWindowRect(0, 0, 0x1D, 0x13);
- if (!gSaveBlock2.playerGender)
- ScriptContext1_SetupScript(&gUnknown_08152850); // male
+
+ if (gSaveBlock2.playerGender == MALE)
+ ScriptContext1_SetupScript(&gUnknown_08152850);
else
- ScriptContext1_SetupScript(&gUnknown_08152C75); // female
+ ScriptContext1_SetupScript(&gUnknown_08152C75);
}
else
{
@@ -234,9 +270,9 @@ void InitItemStorageMenu(u8 var)
{
MenuZeroFillWindowRect(0, 0, 10, 9);
MenuDrawTextWindow(0, 0, 11, 9);
- PrintMenuItems(1, 1, 4, gUnknown_084062C0);
+ PrintMenuItems(1, 1, 4, gPCText_ItemPCOptionsText);
InitMenu(0, 1, 1, 4, var, 10);
- ItemStorageMenuPrint((u8 *)gUnknown_08406288[var]);
+ ItemStorageMenuPrint((u8 *)gPCText_OptionDescList[var]);
}
void ItemStorageMenuPrint(u8 *textPtr)
@@ -247,28 +283,28 @@ void ItemStorageMenuPrint(u8 *textPtr)
void ItemStorageMenuProcessInput(u8 var)
{
- if (gMain.newAndRepeatedKeys & 0x40)
+ if (gMain.newAndRepeatedKeys & DPAD_UP)
{
- PlaySE(5);
+ PlaySE(SE_SELECT);
MoveMenuCursor(-1);
- ItemStorageMenuPrint((u8 *)gUnknown_08406288[GetMenuCursorPos()]);
+ ItemStorageMenuPrint((u8 *)gPCText_OptionDescList[GetMenuCursorPos()]);
}
- else if (gMain.newAndRepeatedKeys & 0x80)
+ else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
{
- PlaySE(5);
+ PlaySE(SE_SELECT);
MoveMenuCursor(1);
- ItemStorageMenuPrint((u8 *)gUnknown_08406288[GetMenuCursorPos()]);
+ ItemStorageMenuPrint((u8 *)gPCText_OptionDescList[GetMenuCursorPos()]);
}
- else if (gMain.newKeys & 0x1)
+ else if (gMain.newKeys & A_BUTTON)
{
- PlaySE(5);
- gUnknown_084062C0[GetMenuCursorPos()].func(var);
+ PlaySE(SE_SELECT);
+ gPCText_ItemPCOptionsText[GetMenuCursorPos()].func(var);
}
- else if (gMain.newKeys & 0x2)
+ else if (gMain.newKeys & B_BUTTON)
{
- sub_8072DEC();
- PlaySE(5);
- gUnknown_084062C0[3].func(var);
+ HandleDestroyMenuCursors();
+ PlaySE(SE_SELECT);
+ gPCText_ItemPCOptionsText[ITEMPC_MENU_EXIT].func(var);
}
}
@@ -303,23 +339,21 @@ void sub_813A0F8(void)
void ItemStorage_Withdraw(u8 taskId)
{
- u8 var;
- u16 * data = gTasks[taskId].data;
+ s16 *data = gTasks[taskId].data;
- sub_8072DEC();
+ HandleDestroyMenuCursors();
MenuZeroFillWindowRect(0, 0, 11, 9);
- var = CountUsedPCItemSlots();
- data[2] = var;
+ NUM_ITEMS = CountUsedPCItemSlots();
- if (var)
+ if (NUM_ITEMS != 0)
{
MenuZeroFillWindowRect(0, 14, 29, 19);
- data[6] = 0;
- data[0] = 0;
- data[1] = 0;
+ CURRENT_ITEM_STORAGE_MENU = ITEMPC_MENU_WITHDRAW;
+ PAGE_INDEX = 0;
+ ITEMS_ABOVE_TOP = 0;
sub_813A240(taskId);
sub_813AE6C(taskId, 0);
- gTasks[taskId].func = sub_813A280;
+ gTasks[taskId].func = ItemStorage_ProcessInput;
}
else
DisplayItemMessageOnField(taskId, gOtherText_NoItems, PlayerPC_ItemStorage, 0);
@@ -327,23 +361,21 @@ void ItemStorage_Withdraw(u8 taskId)
void ItemStorage_Toss(u8 taskId)
{
- u8 var;
- u16 * data = gTasks[taskId].data;
+ s16 *data = gTasks[taskId].data;
- sub_8072DEC();
+ HandleDestroyMenuCursors();
MenuZeroFillWindowRect(0, 0, 11, 9);
- var = CountUsedPCItemSlots();
- data[2] = var;
+ NUM_ITEMS = CountUsedPCItemSlots();
- if (var)
+ if (NUM_ITEMS)
{
MenuZeroFillWindowRect(0, 14, 29, 19);
- data[6] = 2;
- data[0] = 0;
- data[1] = 0;
+ CURRENT_ITEM_STORAGE_MENU = ITEMPC_MENU_TOSS;
+ PAGE_INDEX = 0;
+ ITEMS_ABOVE_TOP = 0;
sub_813A240(taskId);
sub_813AE6C(taskId, 2);
- gTasks[taskId].func = sub_813A280;
+ gTasks[taskId].func = ItemStorage_ProcessInput;
}
else
DisplayItemMessageOnField(taskId, gOtherText_NoItems, PlayerPC_ItemStorage, 0);
@@ -351,7 +383,7 @@ void ItemStorage_Toss(u8 taskId)
void ItemStorage_Exit(u8 var)
{
- sub_8072DEC();
+ HandleDestroyMenuCursors();
MenuZeroFillWindowRect(0, 0, 11, 9);
ReshowPlayerPC(var);
}
@@ -360,106 +392,107 @@ void sub_813A240(u8 taskId)
{
s16 *data = gTasks[taskId].data;
- if (data[2] > 7)
- data[4] = 8;
+ if (NUM_ITEMS > 7) // we have a full page, so set the num of page items appropriately.
+ NUM_PAGE_ITEMS = 8;
else
- data[4] = data[2] + 1;
+ NUM_PAGE_ITEMS = NUM_ITEMS + 1; // there are not enough items to fill a full page; take the # of items and add 1 for the cancel button.
- if (unk_201FE00[3] > 7)
- unk_201FE00[1] = 8;
+ if (gMailboxInfo.count > 7)
+ gMailboxInfo.pageItems = 8;
else
- unk_201FE00[1] = unk_201FE00[3] + 1;
+ gMailboxInfo.pageItems = gMailboxInfo.count + 1;
}
-void sub_813A280(u8 taskId)
+void ItemStorage_ProcessInput(u8 taskId)
{
s16 *data = gTasks[taskId].data;
- s16 var;
+ s16 trueIndex;
if (gMain.newAndRepeatedKeys & DPAD_UP)
{
- if(data[0])
+ if(PAGE_INDEX != 0) // did the cursor move physically upwards?
{
- PlaySE(5);
- data[0] = MoveMenuCursor(-1);
- var = data[1] + data[0];
- if (!data[9])
+ PlaySE(SE_SELECT);
+ PAGE_INDEX = MoveMenuCursor(-1);
+ trueIndex = ITEMS_ABOVE_TOP + PAGE_INDEX;
+ if (SWITCH_MODE_ACTIVE == FALSE) // are we not currently switching items?
{
- if (var == data[2])
+ if (trueIndex == NUM_ITEMS) // if the cursor is on top of cancel, print the go back to prev description.
{
- sub_813AD58(0xFFFF);
+ GetPlayerPcResponseString(ITEMPC_GO_BACK_TO_PREV);
}
else
{
- sub_813AD58(gSaveBlock1.pcItems[var].itemId);
+ GetPlayerPcResponseString(gSaveBlock1.pcItems[trueIndex].itemId);
}
}
}
- else // _0813A2E4
+ else // the page cursor is at the top. but we may not be at the top of the true index list, so do another check.
{
- if (!data[1])
+ if (ITEMS_ABOVE_TOP == 0) // did the cursor not move due to being at the top of the list?
return;
- PlaySE(5);
- data[1]--;
- sub_813AE0C(taskId);
- // probably further down
- if (data[9])
- MoveMenuCursor(0);
+
+ PlaySE(SE_SELECT);
+ ITEMS_ABOVE_TOP--;
+ ItemStorage_DrawBothListAndDescription(taskId);
+
+ if (SWITCH_MODE_ACTIVE != FALSE)
+ MoveMenuCursor(0); // don't move the cursor. it's at the top of the page index, but not the true index.
}
}
else if(gMain.newAndRepeatedKeys & DPAD_DOWN) // _0813A306
{
- if(data[0] != data[4] - 1)
+ if(PAGE_INDEX != NUM_PAGE_ITEMS - 1)
{
- PlaySE(5);
- data[0] = MoveMenuCursor(1);
- var = data[1] + data[0];
+ PlaySE(SE_SELECT);
+ PAGE_INDEX = MoveMenuCursor(1);
+ trueIndex = ITEMS_ABOVE_TOP + PAGE_INDEX;
- if(data[9])
+ if(SWITCH_MODE_ACTIVE != FALSE)
return;
- if (var == data[2])
- sub_813AD58(0xFFFF); // probably further down
+ if (trueIndex == NUM_ITEMS)
+ GetPlayerPcResponseString(ITEMPC_GO_BACK_TO_PREV); // probably further down
else
- sub_813AD58(gSaveBlock1.pcItems[var].itemId);
+ GetPlayerPcResponseString(gSaveBlock1.pcItems[trueIndex].itemId);
}
- else if(data[1] + data[0] != data[2])
+ else if(ITEMS_ABOVE_TOP + PAGE_INDEX != NUM_ITEMS)
{
- PlaySE(5);
- data[1]++;
- sub_813AE0C(taskId);
+ PlaySE(SE_SELECT);
+ ITEMS_ABOVE_TOP++;
+ ItemStorage_DrawBothListAndDescription(taskId);
- if (data[9])
+ if (SWITCH_MODE_ACTIVE != FALSE)
MoveMenuCursor(0);
}
}
else if(gMain.newKeys & SELECT_BUTTON) // _0813A3A0
{
- if (!data[9])
+ if (SWITCH_MODE_ACTIVE == FALSE)
{
- if (data[0] + data[1] != data[2])
+ if (PAGE_INDEX + ITEMS_ABOVE_TOP != NUM_ITEMS)
{
- PlaySE(5);
- data[9] = 1;
- data[8] = data[1] + data[0];
- sub_813AD58(0xFFF7);
+ PlaySE(SE_SELECT);
+ SWITCH_MODE_ACTIVE = TRUE;
+ SWAP_ITEM_INDEX = ITEMS_ABOVE_TOP + PAGE_INDEX;
+ GetPlayerPcResponseString(ITEMPC_SWITCH_WHICH_ITEM);
}
// _0813A3DC
- sub_813ABE8(taskId);
+ ItemStorage_DrawItemList(taskId);
}
else // _0813A3E8
{
- PlaySE(5); // merging?
- sub_813AA30(taskId, 0);
- sub_813AE0C(taskId);
+ PlaySE(SE_SELECT);
+ ItemStorage_DoItemSwap(taskId, FALSE);
+ ItemStorage_DrawBothListAndDescription(taskId);
}
}
else if(gMain.newKeys & A_BUTTON)
{
- PlaySE(5);
- if(!data[9])
+ PlaySE(SE_SELECT);
+ if(SWITCH_MODE_ACTIVE == FALSE)
{
- if(data[1] + data[0] != data[2])
+ if(ITEMS_ABOVE_TOP + PAGE_INDEX != NUM_ITEMS)
{
sub_813A4B4(taskId);
}
@@ -470,22 +503,22 @@ void sub_813A280(u8 taskId)
}
else
{
- sub_813AA30(taskId, 0);
- sub_813AE0C(taskId);
+ ItemStorage_DoItemSwap(taskId, FALSE);
+ ItemStorage_DrawBothListAndDescription(taskId);
}
}
else if(gMain.newKeys & B_BUTTON)
{
- PlaySE(5);
- if(!data[9])
+ PlaySE(SE_SELECT);
+ if(SWITCH_MODE_ACTIVE == FALSE)
{
- sub_8072DEC();
+ HandleDestroyMenuCursors();
sub_813A468(taskId);
}
else
{
- sub_813AA30(taskId, 1);
- sub_813AE0C(taskId);
+ ItemStorage_DoItemSwap(taskId, TRUE);
+ ItemStorage_DrawBothListAndDescription(taskId);
}
}
}
@@ -497,125 +530,125 @@ void sub_813A468(u8 taskId)
DestroyVerticalScrollIndicator(1);
MenuZeroFillWindowRect(0, 0, 29, 19);
MenuDisplayMessageBox();
- InitItemStorageMenu(gTasks[taskId].data[6]);
+ InitItemStorageMenu(gTasks[taskId].CURRENT_ITEM_STORAGE_MENU);
gTasks[taskId].func = ItemStorageMenuProcessInput;
}
void sub_813A4B4(u8 taskId)
{
s16 *data = gTasks[taskId].data;
- u8 var = data[0] + data[1];
+ u8 trueIndex = PAGE_INDEX + ITEMS_ABOVE_TOP;
sub_80F996C(0);
sub_80F996C(1);
- if(!data[6])
+ if(CURRENT_ITEM_STORAGE_MENU == ITEMPC_MENU_WITHDRAW)
{
- if(gSaveBlock1.pcItems[var].quantity == 1)
+ if(gSaveBlock1.pcItems[trueIndex].quantity == 1)
{
- data[3] = 1;
- sub_813A6FC(taskId);
+ NUM_QUANTITY_ROLLER = 1;
+ ItemStorage_DoItemWithdraw(taskId);
return;
}
else // _0813A50C
{
- sub_813AD58(0xFFFE);
+ GetPlayerPcResponseString(ITEMPC_HOW_MANY_TO_WITHDRAW);
}
}
- else if(gSaveBlock1.pcItems[var].quantity == 1) // _0813A518
+ else if(gSaveBlock1.pcItems[trueIndex].quantity == 1) // _0813A518
{
- data[3] = 1;
+ NUM_QUANTITY_ROLLER = 1;
sub_813A794(taskId);
return;
}
else
{
- sub_813AD58(0xFFFC);
+ GetPlayerPcResponseString(ITEMPC_HOW_MANY_TO_TOSS);
}
- data[3] = 1;
+ NUM_QUANTITY_ROLLER = 1;
MenuDrawTextWindow(6, 8, 13, 11);
- sub_80A418C(data[3], STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3);
+ sub_80A418C(NUM_QUANTITY_ROLLER, STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3);
gTasks[taskId].func = HandleQuantityRolling;
}
void HandleQuantityRolling(u8 taskId)
{
s16 *data = gTasks[taskId].data;
- u8 var = data[0] + data[1];
+ u8 trueIndex = PAGE_INDEX + ITEMS_ABOVE_TOP;
if(gMain.newAndRepeatedKeys & DPAD_UP)
{
- if(data[3] != gSaveBlock1.pcItems[var].quantity)
- data[3]++;
+ if(NUM_QUANTITY_ROLLER != gSaveBlock1.pcItems[trueIndex].quantity)
+ NUM_QUANTITY_ROLLER++;
else
- data[3] = 1; // you are at the max amount of items you have when you press Up, set your quantity back to 1.
+ NUM_QUANTITY_ROLLER = 1; // you are at the max amount of items you have when you press Up, set your quantity back to 1.
- sub_80A418C(data[3], STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3); // print quantity?
+ sub_80A418C(NUM_QUANTITY_ROLLER, STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3); // print quantity?
}
else if(gMain.newAndRepeatedKeys & DPAD_DOWN)
{
- if(data[3] != 1)
- data[3]--;
+ if(NUM_QUANTITY_ROLLER != 1)
+ NUM_QUANTITY_ROLLER--;
else
- data[3] = gSaveBlock1.pcItems[var].quantity; // you are at 0 when you press down, set your quantity to the amount you have.
+ NUM_QUANTITY_ROLLER = gSaveBlock1.pcItems[trueIndex].quantity; // you are at 0 when you press down, set your quantity to the amount you have.
- sub_80A418C(data[3], STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3); // print quantity?
+ sub_80A418C(NUM_QUANTITY_ROLLER, STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3); // print quantity?
}
else if(gMain.newAndRepeatedKeys & DPAD_LEFT) // reduce by 10.
{
- data[3] -= 10;
+ NUM_QUANTITY_ROLLER -= 10;
- if(data[3] <= 0)
- data[3] = 1; // dont underflow or allow 0!
+ if(NUM_QUANTITY_ROLLER <= 0)
+ NUM_QUANTITY_ROLLER = 1; // dont underflow or allow 0!
- sub_80A418C(data[3], STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3); // print quantity?
+ sub_80A418C(NUM_QUANTITY_ROLLER, STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3); // print quantity?
}
else if(gMain.newAndRepeatedKeys & DPAD_RIGHT) // add 10.
{
- data[3] += 10;
+ NUM_QUANTITY_ROLLER += 10;
- if(data[3] > gSaveBlock1.pcItems[var].quantity)
- data[3] = gSaveBlock1.pcItems[var].quantity; // dont overflow!
+ if(NUM_QUANTITY_ROLLER > gSaveBlock1.pcItems[trueIndex].quantity)
+ NUM_QUANTITY_ROLLER = gSaveBlock1.pcItems[trueIndex].quantity; // dont overflow!
- sub_80A418C(data[3], STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3); // print quantity?
+ sub_80A418C(NUM_QUANTITY_ROLLER, STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3); // print quantity?
}
else if(gMain.newKeys & A_BUTTON) // confirm quantity.
{
- PlaySE(5);
+ PlaySE(SE_SELECT);
MenuZeroFillWindowRect(6, 6, 0xD, 0xB);
- if(!data[6])
- sub_813A6FC(taskId);
+ if(CURRENT_ITEM_STORAGE_MENU == ITEMPC_MENU_WITHDRAW)
+ ItemStorage_DoItemWithdraw(taskId);
else
sub_813A794(taskId);
}
else if(gMain.newKeys & B_BUTTON) // cancel quantity.
{
- PlaySE(5);
+ PlaySE(SE_SELECT);
MenuZeroFillWindowRect(6, 6, 0xD, 0xB);
sub_80F98DC(0);
sub_80F98DC(1);
- sub_813AD58(gSaveBlock1.pcItems[data[1] + data[0]].itemId); // why not use var?
- gTasks[taskId].func = sub_813A280;
+ GetPlayerPcResponseString(gSaveBlock1.pcItems[ITEMS_ABOVE_TOP + PAGE_INDEX].itemId); // why not use trueIndex?
+ gTasks[taskId].func = ItemStorage_ProcessInput;
}
}
-void sub_813A6FC(u8 taskId)
+void ItemStorage_DoItemWithdraw(u8 taskId)
{
s16 *data = gTasks[taskId].data;
- u8 var = data[0] + data[1];
+ u8 trueIndex = PAGE_INDEX + ITEMS_ABOVE_TOP;
- if(AddBagItem(gSaveBlock1.pcItems[var].itemId, data[3]) == TRUE) // add item works.
+ if(AddBagItem(gSaveBlock1.pcItems[trueIndex].itemId, NUM_QUANTITY_ROLLER) == TRUE) // add item works.
{
- CopyItemName(gSaveBlock1.pcItems[var].itemId, gStringVar1);
- ConvertIntToDecimalStringN(gStringVar2, data[3], 0, 3);
- sub_813AD58(0xFFFD);
+ CopyItemName(gSaveBlock1.pcItems[trueIndex].itemId, gStringVar1);
+ ConvertIntToDecimalStringN(gStringVar2, NUM_QUANTITY_ROLLER, 0, 3);
+ GetPlayerPcResponseString(ITEMPC_WITHDREW_THING);
gTasks[taskId].func = sub_813A8F0;
}
- else // cannot add item. inventory full?
+ else
{
- data[3] = 0;
- sub_813AD58(0xFFFA);
+ NUM_QUANTITY_ROLLER = 0;
+ GetPlayerPcResponseString(ITEMPC_NO_MORE_ROOM);
gTasks[taskId].func = sub_813A984;
}
}
@@ -623,20 +656,20 @@ void sub_813A6FC(u8 taskId)
void sub_813A794(u8 taskId)
{
s16 *data = gTasks[taskId].data;
- u8 var = data[0] + data[1];
+ u8 var = PAGE_INDEX + ITEMS_ABOVE_TOP;
if(ItemId_GetImportance(gSaveBlock1.pcItems[var].itemId) == FALSE)
{
CopyItemName(gSaveBlock1.pcItems[var].itemId, gStringVar1);
- ConvertIntToDecimalStringN(gStringVar2, data[3], 0, 3);
- sub_813AD58(65528);
+ ConvertIntToDecimalStringN(gStringVar2, NUM_QUANTITY_ROLLER, 0, 3);
+ GetPlayerPcResponseString(ITEMPC_OKAY_TO_THROW_AWAY);
DisplayYesNoMenu(7, 6, 1);
sub_80F914C(taskId, &gUnknown_084062E0);
}
else
{
- data[3] = 0;
- sub_813AD58(65529);
+ NUM_QUANTITY_ROLLER = 0;
+ GetPlayerPcResponseString(ITEMPC_TOO_IMPORTANT);
gTasks[taskId].func = sub_813A8F0;
}
}
@@ -644,7 +677,7 @@ void sub_813A794(u8 taskId)
void sub_813A83C(u8 taskId)
{
MenuZeroFillWindowRect(0x6, 0x6, 0xD, 0xB);
- sub_813AD58(0xFFFB);
+ GetPlayerPcResponseString(ITEMPC_THREW_AWAY_ITEM);
gTasks[taskId].func = sub_813A8F0;
}
@@ -653,11 +686,11 @@ void sub_813A878(u8 taskId)
s16 *data = gTasks[taskId].data;
MenuZeroFillWindowRect(0x6, 0x6, 0xD, 0xB);
- InitMenu(0, 16, 2, data[4], data[0], 0xD);
+ InitMenu(0, 16, 2, NUM_PAGE_ITEMS, PAGE_INDEX, 0xD);
sub_80F98DC(0);
sub_80F98DC(1);
- sub_813AD58(gSaveBlock1.pcItems[data[1] + data[0]].itemId);
- gTasks[taskId].func = sub_813A280;
+ GetPlayerPcResponseString(gSaveBlock1.pcItems[ITEMS_ABOVE_TOP + PAGE_INDEX].itemId);
+ gTasks[taskId].func = ItemStorage_ProcessInput;
}
void sub_813A8F0(u8 taskId)
@@ -666,19 +699,19 @@ void sub_813A8F0(u8 taskId)
u16 var;
u8 usedItemSlots;
- if(gMain.newKeys & 0x1 || gMain.newKeys == 0x2)
+ if(gMain.newKeys & A_BUTTON || gMain.newKeys == B_BUTTON)
{
- RemovePCItem(data[0] + data[1], data[3]);
- var = data[2];
+ RemovePCItem(PAGE_INDEX + ITEMS_ABOVE_TOP, NUM_QUANTITY_ROLLER);
+ var = NUM_ITEMS;
usedItemSlots = CountUsedPCItemSlots();
- data[2] = usedItemSlots;
+ NUM_ITEMS = usedItemSlots;
- if((s16)var != usedItemSlots && (s16)var < data[4] + data[1] && data[1] != 0)
- data[1]--;
+ if((s16)var != usedItemSlots && (s16)var < NUM_PAGE_ITEMS + ITEMS_ABOVE_TOP && ITEMS_ABOVE_TOP != 0)
+ ITEMS_ABOVE_TOP--;
sub_813A240(taskId);
sub_813A9EC(taskId);
- InitMenu(0, 16, 2, data[4], data[0], 0xD);
+ InitMenu(0, 16, 2, NUM_PAGE_ITEMS, PAGE_INDEX, 0xD);
}
}
@@ -686,12 +719,12 @@ void sub_813A984(u8 taskId)
{
s16 *data = gTasks[taskId].data;
- if(gMain.newKeys & 0x1 || gMain.newKeys == 2)
+ if(gMain.newKeys & A_BUTTON || gMain.newKeys == B_BUTTON)
{
- sub_813AD58(gSaveBlock1.pcItems[data[1] + data[0]].itemId);
+ GetPlayerPcResponseString(gSaveBlock1.pcItems[ITEMS_ABOVE_TOP + PAGE_INDEX].itemId);
sub_80F98DC(0);
sub_80F98DC(1);
- gTasks[taskId].func = sub_813A280;
+ gTasks[taskId].func = ItemStorage_ProcessInput;
}
}
@@ -700,45 +733,47 @@ void sub_813A9EC(u8 taskId)
MenuZeroFillWindowRect(0x6, 0x6, 0xD, 0xB);
sub_80F98DC(0);
sub_80F98DC(1);
- sub_813AE0C(taskId);
- gTasks[taskId].func = sub_813A280;
+ ItemStorage_DrawBothListAndDescription(taskId);
+ gTasks[taskId].func = ItemStorage_ProcessInput;
}
-void sub_813AA30(u8 taskId, u8 arg)
+void ItemStorage_DoItemSwap(u8 taskId, bool8 switchModeDisabled)
{
s16 *data = gTasks[taskId].data;
- u8 var = data[1] + data[0];
+ u8 trueIndex = ITEMS_ABOVE_TOP + PAGE_INDEX;
- data[9] = 0;
+ SWITCH_MODE_ACTIVE = FALSE;
- if((u8)data[2] > var && (u8)data[8] != var && arg == 0)
+ if((u8)NUM_ITEMS > trueIndex && (u8)SWAP_ITEM_INDEX != trueIndex && switchModeDisabled == FALSE)
{
- struct ItemSlot itemSlot = gSaveBlock1.pcItems[data[8]]; // backup the itemSlot before swapping the two.
+ struct ItemSlot itemSlot = gSaveBlock1.pcItems[SWAP_ITEM_INDEX]; // backup the itemSlot before swapping the two.
- gSaveBlock1.pcItems[data[8]] = gSaveBlock1.pcItems[var];
- gSaveBlock1.pcItems[var] = itemSlot;
+ gSaveBlock1.pcItems[SWAP_ITEM_INDEX] = gSaveBlock1.pcItems[trueIndex];
+ gSaveBlock1.pcItems[trueIndex] = itemSlot;
return;
}
- else if(var == data[2])
+ else if(trueIndex == NUM_ITEMS)
{
- sub_813AD58(0xFFFF);
+ GetPlayerPcResponseString(ITEMPC_GO_BACK_TO_PREV);
}
else
{
- sub_813AD58(gSaveBlock1.pcItems[var].itemId);
+ GetPlayerPcResponseString(gSaveBlock1.pcItems[trueIndex].itemId);
}
/*
THEORY: This check produces essentially dead code, but it might have been working in an earlier build
in which case it allows a programmer to easily duplicate items without the use of a debug menu.
+ This gets the page index of the swap index for some reason. It is currently unknown what it would have been used
+ for, but perhaps it was used to increase the quantity of the item without a debug menu.
With the removal of a lot of the debug menus close to release, a programmer may have added this to
help test things with a low key (such as planting a lot of duplicated berries, which requires this lazy "cheat")
without bringing the relevent debug menus back. The commented out line is intentionally left in below to show
what it may have looked like.
*/
- if(data[8] - data[1] > 0) { // this check is arbitrary and used to generate the correct assembly using the subtraction, which is what matters. the 0 check doesn't.
- //gSaveBlock1.pcItems[data[8]].quantity += 100;
- gSaveBlock1.pcItems[data[8]].quantity += 0; // do not enforce item cap.
+ if(SWAP_ITEM_INDEX - ITEMS_ABOVE_TOP > 0) { // this check is arbitrary and used to generate the correct assembly using the subtraction, which is what matters. the 0 check doesn't.
+ //gSaveBlock1.pcItems[SWAP_ITEM_INDEX].quantity += 100;
+ gSaveBlock1.pcItems[SWAP_ITEM_INDEX].quantity += 0; // do not enforce item cap.
}
}
@@ -789,7 +824,7 @@ void sub_813ABAC(struct ItemSlot *itemSlot, u8 var, int var2)
sub_813AB10(var); // key items do not have a quantity.
}
-void sub_813ABE8(u8 taskId)
+void ItemStorage_DrawItemList(u8 taskId)
{
s16 *data = gTasks[taskId].data;
u16 i;
@@ -798,15 +833,15 @@ void sub_813ABE8(u8 taskId)
// r5 is i and is unsigned 16-bit.
- for(i = data[1]; i < data[1] + data[4]; i++)
+ for(i = ITEMS_ABOVE_TOP; i < ITEMS_ABOVE_TOP + NUM_PAGE_ITEMS; i++)
{
- j = (i - data[1]) * 2;
+ j = (i - ITEMS_ABOVE_TOP) * 2;
- if(i != data[2])
+ if(i != NUM_ITEMS)
{
tempArg = 0;
- if(data[9] != 0 && i == data[8])
+ if(SWITCH_MODE_ACTIVE != FALSE && i == SWAP_ITEM_INDEX)
tempArg = 1;
switch(GetPocketByItemId(gSaveBlock1.pcItems[i].itemId) - 1)
@@ -831,10 +866,10 @@ void sub_813ABE8(u8 taskId)
}
beforeLabel:
- if(i - data[1] < 8)
+ if(i - ITEMS_ABOVE_TOP < 8)
MenuFillWindowRectWithBlankTile(16, j + 4, 0x1C, 0x12);
- switch(data[1])
+ switch(ITEMS_ABOVE_TOP)
{
default:
CreateVerticalScrollIndicators(0, 0xB8, 8);
@@ -847,13 +882,13 @@ weirdCase:
break;
}
- if(data[1] + data[4] <= data[2])
+ if(ITEMS_ABOVE_TOP + NUM_PAGE_ITEMS <= NUM_ITEMS)
CreateVerticalScrollIndicators(1, 0xB8, 0x98);
else
DestroyVerticalScrollIndicator(1);
}
-void sub_813AD58(u16 itemId)
+void GetPlayerPcResponseString(u16 itemId)
{
u8 *string;
@@ -894,19 +929,19 @@ void sub_813AD58(u16 itemId)
sub_8072AB0(string, 8, 0x68, 0x68, 0x30, 1);
}
-void sub_813AE0C(u8 taskId)
+void ItemStorage_DrawBothListAndDescription(u8 taskId)
{
s16 *data = gTasks[taskId].data;
- s16 var = data[1] + data[0];
+ s16 trueIndex = ITEMS_ABOVE_TOP + PAGE_INDEX;
- sub_813ABE8(taskId);
+ ItemStorage_DrawItemList(taskId);
- if(data[9] == 0)
+ if(SWITCH_MODE_ACTIVE == FALSE)
{
- if(var == data[2])
- sub_813AD58(0xFFFF);
+ if(trueIndex == NUM_ITEMS)
+ GetPlayerPcResponseString(ITEMPC_GO_BACK_TO_PREV);
else
- sub_813AD58(gSaveBlock1.pcItems[var].itemId);
+ GetPlayerPcResponseString(gSaveBlock1.pcItems[trueIndex].itemId);
}
}
@@ -920,10 +955,10 @@ void sub_813AE6C(u8 taskId, u8 var)
MenuDrawTextWindow(0xF, 0, 0x1D, 0x13);
MenuDrawTextWindow(0, 0xC, 0xE, 0x13);
MenuDrawTextWindow(0, 0, 0xB, 3);
- sub_813AD58(gSaveBlock1.pcItems[0].itemId);
- MenuPrint(gUnknown_084062C0[var].text, 1, 1);
- sub_813ABE8(taskId);
- InitMenu(0, 0x10, 2, data[4], data[0], 0xD);
+ GetPlayerPcResponseString(gSaveBlock1.pcItems[0].itemId);
+ MenuPrint(gPCText_ItemPCOptionsText[var].text, 1, 1);
+ ItemStorage_DrawItemList(taskId);
+ InitMenu(0, 0x10, 2, NUM_PAGE_ITEMS, PAGE_INDEX, 0xD);
}
void sub_813AF04(void)
@@ -936,7 +971,7 @@ void sub_813AF04(void)
LoadPalette(&arr[0], 0xD8, 2);
}
-u8 sub_813AF3C(void)
+u8 GetMailboxMailCount(void)
{
u8 i, j;
diff --git a/src/script_menu.c b/src/script_menu.c
index eba438397..f62b62ac7 100644
--- a/src/script_menu.c
+++ b/src/script_menu.c
@@ -684,7 +684,7 @@ void sub_80B52B4(u8 taskId)
{
gScriptResult = var;
}
- sub_8072DEC();
+ HandleDestroyMenuCursors();
MenuZeroFillWindowRect(gTasks[taskId].data[0], gTasks[taskId].data[1], gTasks[taskId].data[2], gTasks[taskId].data[3]);
DestroyTask(taskId);
EnableBothScriptContexts();
@@ -847,7 +847,7 @@ void sub_80B5684(u8 taskId)
{
gScriptResult = var;
}
- sub_8072DEC();
+ HandleDestroyMenuCursors();
MenuZeroFillWindowRect(gTasks[taskId].data[0], gTasks[taskId].data[1], gTasks[taskId].data[2], gTasks[taskId].data[3]);
DestroyTask(taskId);
EnableBothScriptContexts();
diff --git a/src/script_pokemon_util_80C4BF0.c b/src/script_pokemon_util_80C4BF0.c
index d1e401e18..e53eb30cb 100644
--- a/src/script_pokemon_util_80C4BF0.c
+++ b/src/script_pokemon_util_80C4BF0.c
@@ -563,16 +563,16 @@ u8 ScriptGiveMon(u16 species, u8 var, u16 item, u32 var3, u32 var4, u8 var5)
nationalSpecies = SpeciesToNationalPokedexNum(species);
// nested if check to fool compiler
- if(sentToPc < 2)
+ switch(sentToPc)
{
- if(sentToPc >= 0)
- {
- // set both the seen and caught flags
+ case 0:
+ case 1:
GetNationalPokedexFlag(nationalSpecies, 2);
GetNationalPokedexFlag(nationalSpecies, 3);
- }
+ return sentToPc;
+ default:
+ return sentToPc;
}
- return sentToPc;
}
u8 ScriptGiveEgg(u16 value)
diff --git a/src/shop.c b/src/shop.c
index 780dff02a..cca920df5 100644
--- a/src/shop.c
+++ b/src/shop.c
@@ -155,7 +155,7 @@ void sub_80B2F30(u8 taskId)
void HandleShopMenuQuit(u8 taskId)
{
- sub_8072DEC();
+ HandleDestroyMenuCursors();
MenuZeroFillWindowRect(0, 0, 11, 8);
sub_80BE3BC(); // in tv.s?
ScriptContext2_Disable();
diff --git a/src/start_menu.c b/src/start_menu.c
index 37d361c0b..be489bd1f 100644
--- a/src/start_menu.c
+++ b/src/start_menu.c
@@ -410,7 +410,7 @@ static u8 StartMenu_PlayerCallback(void)
//When player selects SAVE
static u8 StartMenu_SaveCallback(void)
{
- sub_8072DEC();
+ HandleDestroyMenuCursors();
gCallback_03004AE8 = SaveCallback1;
return 0;
}
diff --git a/src/strings.c b/src/strings.c
index f41af082c..fa083f00d 100644
--- a/src/strings.c
+++ b/src/strings.c
@@ -1149,7 +1149,7 @@ const u8 gOtherText_OkayToThrowAwayPrompt[] = _("Willst du wirklich\n{STR_VAR_2}
const u8 gOtherText_DadsAdvice[] = _("VATI sagt immer...\n{PLAYER}, dies ist weder der rechte\lOrt noch der rechte Zeitpunkt dafür!{PAUSE_UNTIL_PRESS}");
const u8 gOtherText_CantGetOffBike[] = _("Du kannst hier nicht vom RAD steigen.{PAUSE_UNTIL_PRESS}");
const u8 gOtherText_ItemfinderResponding[] = _("Oh!\nDas Gerät zeigt etwas an!\pHier muss ein Item vergraben sein!{PAUSE_UNTIL_PRESS}");
-const u8 gOtherText_ItemfinderItemUnderfoot[] = _("Das Gerät macht direkt unter\ndeinen Füßen etwas aus!{PAUSE_UNTIL_PRESS}");
+const u8 gOtherText_ItemfinderItemUnderfoot[] = _("Das Gerät macht direkt unter\ndeinen Füßen etwas aus!{PAUSE_UNTIL_PRESS}");
const u8 gOtherText_NoResponse[] = _("... ... ... ... Nichts!\nKeine Anzeige.{PAUSE_UNTIL_PRESS}");
const u8 gOtherText_Coins3[] = _("Deine MÜNZEN:\n{STR_VAR_1}{PAUSE_UNTIL_PRESS}");
const u8 gOtherText_BootedTM[] = _("Eine TM wurde aktiviert.");
diff --git a/src/wallclock.c b/src/wallclock.c
index 0f3665c65..dafb37442 100644
--- a/src/wallclock.c
+++ b/src/wallclock.c
@@ -434,7 +434,7 @@ static void Task_SetClock4(u8 taskId)
return;
case -1: //B button
case 1: //NO
- sub_8072DEC();
+ HandleDestroyMenuCursors();
PlaySE(SE_SELECT);
MenuZeroFillWindowRect(23, 8, 29, 13);
MenuZeroFillWindowRect(2, 16, 27, 19);
diff --git a/sym_bss.txt b/sym_bss.txt
index c7e0b5d6e..315bad6bb 100644
--- a/sym_bss.txt
+++ b/sym_bss.txt
@@ -160,7 +160,7 @@ gUnknown_03000760: @ 3000760
gUnknown_030007B0: @ 30007B0
.space 0x4
-gUnknown_030007B4: @ 30007B4
+gPcItemMenuOptionsNum: @ 30007B4
.space 0x4
gUnknown_030007B8: @ 30007B8
diff --git a/sym_ewram.txt b/sym_ewram.txt
index bf976e5dd..dadf5e615 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -976,7 +976,7 @@ gUnknown_02039310: @ 2039310
gUnknown_02039312: @ 2039312
.space 0x2
-gUnknown_02039314: @ 2039314
+gPcItemMenuOptionOrder: @ 2039314
.space 0x4
gUnknown_02039318: @ 2039318