summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryenatch <yenatch@gmail.com>2017-06-15 22:20:16 -0400
committerGitHub <noreply@github.com>2017-06-15 22:20:16 -0400
commitdda361afb7e2abafc15a498968580be6d1a83cfe (patch)
tree46e7d19c2aec0e65ab446c7916e5d8aeb38bfe48
parentc8213423cefc83310bc62ca8bcc17d7b6b42e442 (diff)
parent0a779312c8a5911620ef43eaefbecdbac9fa7b33 (diff)
Merge pull request #326 from ProjectRevoTPP/master
move player_pc data to C file and restructure/label the file
-rw-r--r--asm/cable_car.s4
-rw-r--r--asm/choose_party.s4
-rw-r--r--asm/contest.s4
-rw-r--r--asm/egg_hatch.s4
-rw-r--r--asm/field_fadetransition.s28
-rw-r--r--asm/fldeff_80C5CD4.s12
-rw-r--r--asm/fldeff_flash.s4
-rw-r--r--asm/item_menu.s32
-rw-r--r--asm/learn_move.s4
-rw-r--r--asm/menu_helpers.s18
-rw-r--r--asm/pokeblock.s14
-rw-r--r--asm/pokemon_menu.s24
-rw-r--r--asm/pokemon_storage_system.s4
-rw-r--r--asm/roulette.s8
-rw-r--r--asm/secret_base.s10
-rw-r--r--asm/shop.s14
-rw-r--r--asm/trade.s4
-rw-r--r--data/player_pc.s77
-rw-r--r--data/scripts/maps/LittlerootTown_BrendansHouse_2F.inc2
-rw-r--r--data/scripts/maps/LittlerootTown_MaysHouse_2F.inc2
-rw-r--r--include/decoration.h2
-rw-r--r--include/menu_helpers.h2
-rwxr-xr-xinclude/player_pc.h87
-rwxr-xr-xld_script.txt2
-rw-r--r--src/battle_setup.c4
-rw-r--r--src/decoration.c14
-rwxr-xr-xsrc/field_effect.c28
-rw-r--r--src/fldeff_cut.c6
-rw-r--r--src/fldeff_strength.c6
-rw-r--r--src/fldeff_sweetscent.c4
-rw-r--r--src/fldeff_teleport.c4
-rw-r--r--src/hof_pc.c4
-rw-r--r--src/item_use.c10
-rw-r--r--src/player_pc.c598
-rw-r--r--src/rom4.c26
-rw-r--r--src/rom6.c6
-rw-r--r--src/safari_zone.c4
-rw-r--r--src/script_pokemon_util_80F99CC.c4
-rw-r--r--src/secret_base.c6
-rw-r--r--sym_common.txt2
40 files changed, 560 insertions, 532 deletions
diff --git a/asm/cable_car.s b/asm/cable_car.s
index 47afb097f..e4d989844 100644
--- a/asm/cable_car.s
+++ b/asm/cable_car.s
@@ -742,7 +742,7 @@ _081237E0:
str r3, [r2, 0x8]
ldr r0, [r2, 0x8]
bl warp_in
- ldr r0, _08123870 @ =gUnknown_0300485C
+ ldr r0, _08123870 @ =gFieldCallback
str r4, [r0]
ldr r0, _08123874 @ =CB2_LoadMap
bl SetMainCallback2
@@ -760,7 +760,7 @@ _08123860: .4byte 0x040000d4
_08123864: .4byte 0x85000400
_08123868: .4byte gUnknown_02039274
_0812386C: .4byte 0x81000800
-_08123870: .4byte gUnknown_0300485C
+_08123870: .4byte gFieldCallback
_08123874: .4byte CB2_LoadMap
thumb_func_end sub_8123740
diff --git a/asm/choose_party.s b/asm/choose_party.s
index 09f00ac77..f1a03cda3 100644
--- a/asm/choose_party.s
+++ b/asm/choose_party.s
@@ -2455,7 +2455,7 @@ sub_8123170: @ 8123170
ands r0, r1
cmp r0, 0
bne _08123194
- ldr r0, _081231A0 @ =gUnknown_0300485C
+ ldr r0, _081231A0 @ =gFieldCallback
ldr r1, _081231A4 @ =sub_81231AC
str r1, [r0]
ldr r0, _081231A8 @ =c2_exit_to_overworld_2_switch
@@ -2468,7 +2468,7 @@ _08123194:
bx r0
.align 2, 0
_0812319C: .4byte gPaletteFade
-_081231A0: .4byte gUnknown_0300485C
+_081231A0: .4byte gFieldCallback
_081231A4: .4byte sub_81231AC
_081231A8: .4byte c2_exit_to_overworld_2_switch
thumb_func_end sub_8123170
diff --git a/asm/contest.s b/asm/contest.s
index 1f92f6fad..00c4013a3 100644
--- a/asm/contest.s
+++ b/asm/contest.s
@@ -5585,7 +5585,7 @@ sub_80ADFD8: @ 80ADFD8
bne _080ADFFC
adds r0, r2, 0
bl DestroyTask
- ldr r0, _080AE004 @ =gUnknown_0300485C
+ ldr r0, _080AE004 @ =gFieldCallback
ldr r1, _080AE008 @ =sub_80AE010
str r1, [r0]
ldr r0, _080AE00C @ =c2_exit_to_overworld_2_switch
@@ -5595,7 +5595,7 @@ _080ADFFC:
bx r0
.align 2, 0
_080AE000: .4byte gPaletteFade
-_080AE004: .4byte gUnknown_0300485C
+_080AE004: .4byte gFieldCallback
_080AE008: .4byte sub_80AE010
_080AE00C: .4byte c2_exit_to_overworld_2_switch
thumb_func_end sub_80ADFD8
diff --git a/asm/egg_hatch.s b/asm/egg_hatch.s
index 101f9e5c3..7365f4da6 100644
--- a/asm/egg_hatch.s
+++ b/asm/egg_hatch.s
@@ -351,7 +351,7 @@ Task_EggHatch: @ 8042CAC
bne _08042CD0
ldr r0, _08042CDC @ =CB2_EggHatch_0
bl SetMainCallback2
- ldr r1, _08042CE0 @ =gUnknown_0300485C
+ ldr r1, _08042CE0 @ =gFieldCallback
ldr r0, _08042CE4 @ =sub_8080990
str r0, [r1]
adds r0, r4, 0
@@ -363,7 +363,7 @@ _08042CD0:
.align 2, 0
_08042CD8: .4byte gPaletteFade
_08042CDC: .4byte CB2_EggHatch_0
-_08042CE0: .4byte gUnknown_0300485C
+_08042CE0: .4byte gFieldCallback
_08042CE4: .4byte sub_8080990
thumb_func_end Task_EggHatch
diff --git a/asm/field_fadetransition.s b/asm/field_fadetransition.s
index 798285a45..e882e7030 100644
--- a/asm/field_fadetransition.s
+++ b/asm/field_fadetransition.s
@@ -617,7 +617,7 @@ sub_8080E88: @ 8080E88
bl PlayRainSoundEffect
movs r0, 0x9
bl PlaySE
- ldr r0, _08080EB4 @ =gUnknown_0300485C
+ ldr r0, _08080EB4 @ =gFieldCallback
ldr r1, _08080EB8 @ =mapldr_default
str r1, [r0]
ldr r0, _08080EBC @ =task0A_fade_n_map_maybe
@@ -626,7 +626,7 @@ sub_8080E88: @ 8080E88
pop {r0}
bx r0
.align 2, 0
-_08080EB4: .4byte gUnknown_0300485C
+_08080EB4: .4byte gFieldCallback
_08080EB8: .4byte mapldr_default
_08080EBC: .4byte task0A_fade_n_map_maybe
thumb_func_end sub_8080E88
@@ -638,7 +638,7 @@ sp13E_warp_to_last_warp: @ 8080EC0
bl sub_8053FF8
bl fade_8080918
bl PlayRainSoundEffect
- ldr r0, _08080EE4 @ =gUnknown_0300485C
+ ldr r0, _08080EE4 @ =gFieldCallback
ldr r1, _08080EE8 @ =mapldr_default
str r1, [r0]
ldr r0, _08080EEC @ =task0A_fade_n_map_maybe
@@ -647,7 +647,7 @@ sp13E_warp_to_last_warp: @ 8080EC0
pop {r0}
bx r0
.align 2, 0
-_08080EE4: .4byte gUnknown_0300485C
+_08080EE4: .4byte gFieldCallback
_08080EE8: .4byte mapldr_default
_08080EEC: .4byte task0A_fade_n_map_maybe
thumb_func_end sp13E_warp_to_last_warp
@@ -656,7 +656,7 @@ _08080EEC: .4byte task0A_fade_n_map_maybe
sub_8080EF0: @ 8080EF0
push {lr}
bl ScriptContext2_Enable
- ldr r0, _08080F08 @ =gUnknown_0300485C
+ ldr r0, _08080F08 @ =gFieldCallback
ldr r1, _08080F0C @ =mapldr_default
str r1, [r0]
ldr r0, _08080F10 @ =sub_808115C
@@ -665,7 +665,7 @@ sub_8080EF0: @ 8080EF0
pop {r0}
bx r0
.align 2, 0
-_08080F08: .4byte gUnknown_0300485C
+_08080F08: .4byte gFieldCallback
_08080F0C: .4byte mapldr_default
_08080F10: .4byte sub_808115C
thumb_func_end sub_8080EF0
@@ -674,13 +674,13 @@ _08080F10: .4byte sub_808115C
sp13F_fall_to_last_warp: @ 8080F14
push {lr}
bl sp13E_warp_to_last_warp
- ldr r1, _08080F24 @ =gUnknown_0300485C
+ ldr r1, _08080F24 @ =gFieldCallback
ldr r0, _08080F28 @ =sub_8086748
str r0, [r1]
pop {r0}
bx r0
.align 2, 0
-_08080F24: .4byte gUnknown_0300485C
+_08080F24: .4byte gFieldCallback
_08080F28: .4byte sub_8086748
thumb_func_end sp13F_fall_to_last_warp
@@ -730,14 +730,14 @@ sub_8080F68: @ 8080F68
ldr r0, _08080F90 @ =task0A_fade_n_map_maybe
movs r1, 0xA
bl CreateTask
- ldr r1, _08080F94 @ =gUnknown_0300485C
+ ldr r1, _08080F94 @ =gFieldCallback
ldr r0, _08080F98 @ =sub_8080B78
str r0, [r1]
pop {r0}
bx r0
.align 2, 0
_08080F90: .4byte task0A_fade_n_map_maybe
-_08080F94: .4byte gUnknown_0300485C
+_08080F94: .4byte gFieldCallback
_08080F98: .4byte sub_8080B78
thumb_func_end sub_8080F68
@@ -749,14 +749,14 @@ sub_8080F9C: @ 8080F9C
ldr r0, _08080FB8 @ =task0A_fade_n_map_maybe
movs r1, 0xA
bl CreateTask
- ldr r1, _08080FBC @ =gUnknown_0300485C
+ ldr r1, _08080FBC @ =gFieldCallback
ldr r0, _08080FC0 @ =sub_80C791C
str r0, [r1]
pop {r0}
bx r0
.align 2, 0
_08080FB8: .4byte task0A_fade_n_map_maybe
-_08080FBC: .4byte gUnknown_0300485C
+_08080FBC: .4byte gFieldCallback
_08080FC0: .4byte sub_80C791C
thumb_func_end sub_8080F9C
@@ -1204,7 +1204,7 @@ sub_8081334: @ 8081334
bl PlayRainSoundEffect
movs r0, 0x9
bl PlaySE
- ldr r0, _08081360 @ =gUnknown_0300485C
+ ldr r0, _08081360 @ =gFieldCallback
ldr r1, _08081364 @ =sub_8080B60
str r1, [r0]
ldr r0, _08081368 @ =sub_80812C8
@@ -1213,7 +1213,7 @@ sub_8081334: @ 8081334
pop {r0}
bx r0
.align 2, 0
-_08081360: .4byte gUnknown_0300485C
+_08081360: .4byte gFieldCallback
_08081364: .4byte sub_8080B60
_08081368: .4byte sub_80812C8
thumb_func_end sub_8081334
diff --git a/asm/fldeff_80C5CD4.s b/asm/fldeff_80C5CD4.s
index 25ede5738..33182fc6a 100644
--- a/asm/fldeff_80C5CD4.s
+++ b/asm/fldeff_80C5CD4.s
@@ -814,7 +814,7 @@ SetUpFieldMove_SecretPower: @ 80C62C4
cmp r0, 0x1
bne _080C6330
bl sub_80C6264
- ldr r1, _080C6320 @ =gUnknown_0300485C
+ ldr r1, _080C6320 @ =gFieldCallback
ldr r0, _080C6324 @ =sub_808AB90
str r0, [r1]
ldr r1, _080C6328 @ =gUnknown_03005CE4
@@ -823,7 +823,7 @@ SetUpFieldMove_SecretPower: @ 80C62C4
.align 2, 0
_080C6318: .4byte gScriptResult
_080C631C: .4byte gUnknown_0203923C
-_080C6320: .4byte gUnknown_0300485C
+_080C6320: .4byte gFieldCallback
_080C6324: .4byte sub_808AB90
_080C6328: .4byte gUnknown_03005CE4
_080C632C: .4byte sub_80C639C
@@ -835,14 +835,14 @@ _080C6330:
cmp r0, 0x1
bne _080C6360
bl sub_80C6264
- ldr r1, _080C6350 @ =gUnknown_0300485C
+ ldr r1, _080C6350 @ =gFieldCallback
ldr r0, _080C6354 @ =sub_808AB90
str r0, [r1]
ldr r1, _080C6358 @ =gUnknown_03005CE4
ldr r0, _080C635C @ =sub_80C64A8
b _080C6380
.align 2, 0
-_080C6350: .4byte gUnknown_0300485C
+_080C6350: .4byte gFieldCallback
_080C6354: .4byte sub_808AB90
_080C6358: .4byte gUnknown_03005CE4
_080C635C: .4byte sub_80C64A8
@@ -858,7 +858,7 @@ _080C636E:
b _080C6384
_080C6372:
bl sub_80C6264
- ldr r1, _080C638C @ =gUnknown_0300485C
+ ldr r1, _080C638C @ =gFieldCallback
ldr r0, _080C6390 @ =sub_808AB90
str r0, [r1]
ldr r1, _080C6394 @ =gUnknown_03005CE4
@@ -871,7 +871,7 @@ _080C6384:
pop {r1}
bx r1
.align 2, 0
-_080C638C: .4byte gUnknown_0300485C
+_080C638C: .4byte gFieldCallback
_080C6390: .4byte sub_808AB90
_080C6394: .4byte gUnknown_03005CE4
_080C6398: .4byte sub_80C660C
diff --git a/asm/fldeff_flash.s b/asm/fldeff_flash.s
index c14e9057d..dcd485d9f 100644
--- a/asm/fldeff_flash.s
+++ b/asm/fldeff_flash.s
@@ -18,7 +18,7 @@ SetUpFieldMove_Flash: @ 810CBB4
lsls r0, 24
cmp r0, 0
bne _0810CBF4
- ldr r1, _0810CBE4 @ =gUnknown_0300485C
+ ldr r1, _0810CBE4 @ =gFieldCallback
ldr r0, _0810CBE8 @ =sub_808AB90
str r0, [r1]
ldr r1, _0810CBEC @ =gUnknown_03005CE4
@@ -29,7 +29,7 @@ SetUpFieldMove_Flash: @ 810CBB4
.align 2, 0
_0810CBDC: .4byte gMapHeader
_0810CBE0: .4byte 0x00000828
-_0810CBE4: .4byte gUnknown_0300485C
+_0810CBE4: .4byte gFieldCallback
_0810CBE8: .4byte sub_808AB90
_0810CBEC: .4byte gUnknown_03005CE4
_0810CBF0: .4byte sub_810CBFC
diff --git a/asm/item_menu.s b/asm/item_menu.s
index bb6e59f54..b76f24ccf 100644
--- a/asm/item_menu.s
+++ b/asm/item_menu.s
@@ -812,13 +812,13 @@ sub_80A37C0: @ 80A37C0
ldr r0, _080A37F4 @ =sub_80A50C8
str r0, [r1]
movs r0, 0
- bl sub_80F98DC
+ bl StartVerticalScrollIndicators
movs r0, 0x1
- bl sub_80F98DC
+ bl StartVerticalScrollIndicators
movs r0, 0x2
- bl sub_80F98DC
+ bl StartVerticalScrollIndicators
movs r0, 0x3
- bl sub_80F98DC
+ bl StartVerticalScrollIndicators
pop {r0}
bx r0
.align 2, 0
@@ -3784,13 +3784,13 @@ sub_80A4E8C: @ 80A4E8C
movs r1, 0x1
bl sub_80F979C
movs r0, 0
- bl sub_80F996C
+ bl PauseVerticalScrollIndicator
movs r0, 0x1
- bl sub_80F996C
+ bl PauseVerticalScrollIndicator
movs r0, 0x2
- bl sub_80F996C
+ bl PauseVerticalScrollIndicator
movs r0, 0x3
- bl sub_80F996C
+ bl PauseVerticalScrollIndicator
ldr r5, _080A4F04 @ =gBGTilemapBuffers + 0x1000
lsls r4, 24
asrs r4, 24
@@ -5786,7 +5786,7 @@ sub_80A5EA0: @ 80A5EA0
bl sub_80A5DA0
ldr r1, _080A5EF4 @ =gUnknown_083C16F4
adds r0, r4, 0
- bl sub_80F914C
+ bl DoYesNoFuncWithChoice
b _080A5F0C
.align 2, 0
_080A5EE8: .4byte gMain
@@ -6302,7 +6302,7 @@ sub_80A631C: @ 80A631C
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _080A6344 @ =gUnknown_0300485C
+ ldr r2, _080A6344 @ =gFieldCallback
ldr r1, _080A6348 @ =sub_80B3050
str r1, [r2]
ldr r2, _080A634C @ =gTasks
@@ -6318,7 +6318,7 @@ sub_80A631C: @ 80A631C
pop {r0}
bx r0
.align 2, 0
-_080A6344: .4byte gUnknown_0300485C
+_080A6344: .4byte gFieldCallback
_080A6348: .4byte sub_80B3050
_080A634C: .4byte gTasks
_080A6350: .4byte c2_exit_to_overworld_2_switch
@@ -6695,7 +6695,7 @@ sub_80A6650: @ 80A6650
bl sub_80A5D78
ldr r1, _080A666C @ =gUnknown_083C16FC
adds r0, r4, 0
- bl sub_80F914C
+ bl DoYesNoFuncWithChoice
pop {r4}
pop {r0}
bx r0
@@ -7202,8 +7202,8 @@ sub_80A6A4C: @ 80A6A4C
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _080A6A74 @ =gUnknown_0300485C
- ldr r1, _080A6A78 @ =sub_813A0F8
+ ldr r2, _080A6A74 @ =gFieldCallback
+ ldr r1, _080A6A78 @ =ItemStorage_ReturnToMenuAfterDeposit
str r1, [r2]
ldr r2, _080A6A7C @ =gTasks
lsls r1, r0, 2
@@ -7218,8 +7218,8 @@ sub_80A6A4C: @ 80A6A4C
pop {r0}
bx r0
.align 2, 0
-_080A6A74: .4byte gUnknown_0300485C
-_080A6A78: .4byte sub_813A0F8
+_080A6A74: .4byte gFieldCallback
+_080A6A78: .4byte ItemStorage_ReturnToMenuAfterDeposit
_080A6A7C: .4byte gTasks
_080A6A80: .4byte c2_exit_to_overworld_2_switch
thumb_func_end sub_80A6A4C
diff --git a/asm/learn_move.s b/asm/learn_move.s
index 84d244fe8..fdf650a08 100644
--- a/asm/learn_move.s
+++ b/asm/learn_move.s
@@ -51,7 +51,7 @@ sub_813269C: @ 813269C
bne _081326C0
ldr r0, _081326CC @ =sub_81326D8
bl SetMainCallback2
- ldr r1, _081326D0 @ =gUnknown_0300485C
+ ldr r1, _081326D0 @ =gFieldCallback
ldr r0, _081326D4 @ =sub_8080990
str r0, [r1]
adds r0, r4, 0
@@ -63,7 +63,7 @@ _081326C0:
.align 2, 0
_081326C8: .4byte gPaletteFade
_081326CC: .4byte sub_81326D8
-_081326D0: .4byte gUnknown_0300485C
+_081326D0: .4byte gFieldCallback
_081326D4: .4byte sub_8080990
thumb_func_end sub_813269C
diff --git a/asm/menu_helpers.s b/asm/menu_helpers.s
index f10070110..0f5caf3da 100644
--- a/asm/menu_helpers.s
+++ b/asm/menu_helpers.s
@@ -161,8 +161,8 @@ _080F9140:
_080F9148: .4byte gUnknown_020388C4
thumb_func_end Task_CallYesOrNoCallback
- thumb_func_start sub_80F914C
-sub_80F914C: @ 80F914C
+ thumb_func_start DoYesNoFuncWithChoice
+DoYesNoFuncWithChoice: @ 80F914C
lsls r0, 24
lsrs r0, 24
ldr r3, _080F916C @ =gUnknown_020388C4
@@ -182,7 +182,7 @@ sub_80F914C: @ 80F914C
_080F916C: .4byte gUnknown_020388C4
_080F9170: .4byte gTasks
_080F9174: .4byte Task_CallYesOrNoCallback
- thumb_func_end sub_80F914C
+ thumb_func_end DoYesNoFuncWithChoice
thumb_func_start brm_trade_1
brm_trade_1: @ 80F9178
@@ -1207,8 +1207,8 @@ _080F98D4: .4byte gSprites
_080F98D8: .4byte SpriteCallbackDummy
thumb_func_end sub_80F98A4
- thumb_func_start sub_80F98DC
-sub_80F98DC: @ 80F98DC
+ thumb_func_start StartVerticalScrollIndicators
+StartVerticalScrollIndicators: @ 80F98DC
push {lr}
lsls r0, 24
lsrs r1, r0, 24
@@ -1235,7 +1235,7 @@ _080F9902:
_080F9908: .4byte gUnknown_020388C0
_080F990C: .4byte gSprites
_080F9910: .4byte sub_80F9834
- thumb_func_end sub_80F98DC
+ thumb_func_end StartVerticalScrollIndicators
thumb_func_start sub_80F9914
sub_80F9914: @ 80F9914
@@ -1284,8 +1284,8 @@ _080F9964: .4byte gUnknown_020388C0
_080F9968: .4byte gSprites
thumb_func_end sub_80F9914
- thumb_func_start sub_80F996C
-sub_80F996C: @ 80F996C
+ thumb_func_start PauseVerticalScrollIndicator
+PauseVerticalScrollIndicator: @ 80F996C
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
@@ -1297,7 +1297,7 @@ sub_80F996C: @ 80F996C
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_80F996C
+ thumb_func_end PauseVerticalScrollIndicator
thumb_func_start sub_80F9988
sub_80F9988: @ 80F9988
diff --git a/asm/pokeblock.s b/asm/pokeblock.s
index 669811f53..74da210b0 100644
--- a/asm/pokeblock.s
+++ b/asm/pokeblock.s
@@ -1539,7 +1539,7 @@ sub_810C2C8: @ 810C2C8
ldrb r0, [r4]
cmp r0, 0x3
bne _0810C2E8
- ldr r1, _0810C310 @ =gUnknown_0300485C
+ ldr r1, _0810C310 @ =gFieldCallback
ldr r0, _0810C314 @ =sub_8080990
str r0, [r1]
_0810C2E8:
@@ -1559,7 +1559,7 @@ _0810C300:
.align 2, 0
_0810C308: .4byte gPaletteFade
_0810C30C: .4byte gUnknown_02039244
-_0810C310: .4byte gUnknown_0300485C
+_0810C310: .4byte gFieldCallback
_0810C314: .4byte sub_8080990
_0810C318: .4byte gUnknown_083F7EA8
thumb_func_end sub_810C2C8
@@ -1912,7 +1912,7 @@ sub_810C5EC: @ 810C5EC
bl DisplayYesNoMenu
ldr r1, _0810C60C @ =gUnknown_083F7F24
adds r0, r4, 0
- bl sub_80F914C
+ bl DoYesNoFuncWithChoice
pop {r4}
pop {r0}
bx r0
@@ -1965,9 +1965,9 @@ sub_810C668: @ 810C668
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0
- bl sub_80F98DC
+ bl StartVerticalScrollIndicators
movs r0, 0x1
- bl sub_80F98DC
+ bl StartVerticalScrollIndicators
ldr r2, _0810C6CC @ =gUnknown_02039248
ldrb r0, [r2, 0x2]
ldrb r1, [r2, 0x3]
@@ -2075,9 +2075,9 @@ sub_810C748: @ 810C748
lsls r4, 24
lsrs r4, 24
movs r0, 0
- bl sub_80F98DC
+ bl StartVerticalScrollIndicators
movs r0, 0x1
- bl sub_80F98DC
+ bl StartVerticalScrollIndicators
bl HandleDestroyMenuCursors
movs r0, 0x7
movs r1, 0x4
diff --git a/asm/pokemon_menu.s b/asm/pokemon_menu.s
index 110ccb6e4..3a1552f70 100644
--- a/asm/pokemon_menu.s
+++ b/asm/pokemon_menu.s
@@ -2215,7 +2215,7 @@ SetUpFieldMove_Surf: @ 808AC48
lsrs r0, 24
cmp r0, 0x1
bne _0808AC84
- ldr r1, _0808AC74 @ =gUnknown_0300485C
+ ldr r1, _0808AC74 @ =gFieldCallback
ldr r0, _0808AC78 @ =sub_808AB90
str r0, [r1]
ldr r1, _0808AC7C @ =gUnknown_03005CE4
@@ -2224,7 +2224,7 @@ SetUpFieldMove_Surf: @ 808AC48
movs r0, 0x1
b _0808AC86
.align 2, 0
-_0808AC74: .4byte gUnknown_0300485C
+_0808AC74: .4byte gFieldCallback
_0808AC78: .4byte sub_808AB90
_0808AC7C: .4byte gUnknown_03005CE4
_0808AC80: .4byte sub_808AC2C
@@ -2258,14 +2258,14 @@ SetUpFieldMove_Fly: @ 808ACA8
lsls r0, 24
cmp r0, 0
beq _0808ACD0
- ldr r1, _0808ACC0 @ =gUnknown_0300485C
+ ldr r1, _0808ACC0 @ =gFieldCallback
ldr r0, _0808ACC4 @ =sub_808AB90
str r0, [r1]
ldr r1, _0808ACC8 @ =gUnknown_03005CE4
ldr r0, _0808ACCC @ =DoBrailleFlyEffect
b _0808ACF2
.align 2, 0
-_0808ACC0: .4byte gUnknown_0300485C
+_0808ACC0: .4byte gFieldCallback
_0808ACC4: .4byte sub_808AB90
_0808ACC8: .4byte gUnknown_03005CE4
_0808ACCC: .4byte DoBrailleFlyEffect
@@ -2282,7 +2282,7 @@ _0808ACD0:
.align 2, 0
_0808ACE4: .4byte gMapHeader
_0808ACE8:
- ldr r1, _0808ACFC @ =gUnknown_0300485C
+ ldr r1, _0808ACFC @ =gFieldCallback
ldr r0, _0808AD00 @ =sub_808AB90
str r0, [r1]
ldr r1, _0808AD04 @ =gUnknown_03005CE4
@@ -2294,7 +2294,7 @@ _0808ACF6:
pop {r1}
bx r1
.align 2, 0
-_0808ACFC: .4byte gUnknown_0300485C
+_0808ACFC: .4byte gFieldCallback
_0808AD00: .4byte sub_808AB90
_0808AD04: .4byte gUnknown_03005CE4
_0808AD08: .4byte sub_808AC8C
@@ -2411,7 +2411,7 @@ SetUpFieldMove_Dive: @ 808ADC8
.align 2, 0
_0808ADE0: .4byte gUnknown_0202FF84
_0808ADE4:
- ldr r1, _0808ADF8 @ =gUnknown_0300485C
+ ldr r1, _0808ADF8 @ =gFieldCallback
ldr r0, _0808ADFC @ =sub_808AB90
str r0, [r1]
ldr r1, _0808AE00 @ =gUnknown_03005CE4
@@ -2422,7 +2422,7 @@ _0808ADF2:
pop {r1}
bx r1
.align 2, 0
-_0808ADF8: .4byte gUnknown_0300485C
+_0808ADF8: .4byte gFieldCallback
_0808ADFC: .4byte sub_808AB90
_0808AE00: .4byte gUnknown_03005CE4
_0808AE04: .4byte sub_808ADAC
@@ -2471,7 +2471,7 @@ SetUpFieldMove_Waterfall: @ 808AE24
lsrs r0, 24
cmp r0, 0x1
bne _0808AE80
- ldr r1, _0808AE70 @ =gUnknown_0300485C
+ ldr r1, _0808AE70 @ =gFieldCallback
ldr r0, _0808AE74 @ =sub_808AB90
str r0, [r1]
ldr r1, _0808AE78 @ =gUnknown_03005CE4
@@ -2480,7 +2480,7 @@ SetUpFieldMove_Waterfall: @ 808AE24
movs r0, 0x1
b _0808AE82
.align 2, 0
-_0808AE70: .4byte gUnknown_0300485C
+_0808AE70: .4byte gFieldCallback
_0808AE74: .4byte sub_808AB90
_0808AE78: .4byte gUnknown_03005CE4
_0808AE7C: .4byte sub_808AE08
@@ -2997,7 +2997,7 @@ sub_808B288: @ 808B288
ands r0, r1
cmp r0, 0
bne _0808B2A6
- ldr r0, _0808B2B0 @ =sub_813B6F8
+ ldr r0, _0808B2B0 @ =Mailbox_ReturnToMailListAfterDeposit
bl SetMainCallback2
adds r0, r4, 0
bl DestroyTask
@@ -3007,7 +3007,7 @@ _0808B2A6:
bx r0
.align 2, 0
_0808B2AC: .4byte gPaletteFade
-_0808B2B0: .4byte sub_813B6F8
+_0808B2B0: .4byte Mailbox_ReturnToMailListAfterDeposit
thumb_func_end sub_808B288
thumb_func_start sub_808B2B4
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index b3ef00ecf..db16c2788 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -1171,7 +1171,7 @@ sub_80961A8: @ 80961A8
ldr r0, [r0]
ldrb r0, [r0, 0x5]
strb r0, [r1]
- ldr r1, _080961CC @ =gUnknown_0300485C
+ ldr r1, _080961CC @ =gFieldCallback
ldr r0, _080961D0 @ =sub_8096130
str r0, [r1]
ldr r0, _080961D4 @ =c2_exit_to_overworld_2_switch
@@ -1181,7 +1181,7 @@ sub_80961A8: @ 80961A8
.align 2, 0
_080961C4: .4byte gUnknown_02038474
_080961C8: .4byte gUnknown_083B6DB4
-_080961CC: .4byte gUnknown_0300485C
+_080961CC: .4byte gFieldCallback
_080961D0: .4byte sub_8096130
_080961D4: .4byte c2_exit_to_overworld_2_switch
thumb_func_end sub_80961A8
diff --git a/asm/roulette.s b/asm/roulette.s
index 6382ecf0b..fcfedbd80 100644
--- a/asm/roulette.s
+++ b/asm/roulette.s
@@ -733,7 +733,7 @@ sub_8115734: @ 8115734
bl MenuPrint
ldr r1, _08115778 @ =gUnknown_083F8EBC
adds r0, r4, 0
- bl sub_80F914C
+ bl DoYesNoFuncWithChoice
pop {r4}
pop {r0}
bx r0
@@ -3245,7 +3245,7 @@ sub_8116B40: @ 8116B40
strh r4, [r0]
adds r0, 0x2
strh r4, [r0]
- ldr r1, _08116BB4 @ =gUnknown_0300485C
+ ldr r1, _08116BB4 @ =gFieldCallback
ldr r0, _08116BB8 @ =sub_8080990
str r0, [r1]
ldr r0, _08116BBC @ =c2_exit_to_overworld_2_switch
@@ -3261,7 +3261,7 @@ _08116BA4: .4byte 0x02019000
_08116BA8: .4byte gSpriteCoordOffsetX
_08116BAC: .4byte gSpriteCoordOffsetY
_08116BB0: .4byte REG_BLDCNT
-_08116BB4: .4byte gUnknown_0300485C
+_08116BB4: .4byte gFieldCallback
_08116BB8: .4byte sub_8080990
_08116BBC: .4byte c2_exit_to_overworld_2_switch
thumb_func_end sub_8116B40
@@ -4483,7 +4483,7 @@ sub_81174F8: @ 81174F8
bl sub_814AAF8
ldr r1, _08117524 @ =gUnknown_083F8EB4
adds r0, r4, 0
- bl sub_80F914C
+ bl DoYesNoFuncWithChoice
pop {r4}
pop {r0}
bx r0
diff --git a/asm/secret_base.s b/asm/secret_base.s
index 020953dbe..9fd741aa0 100644
--- a/asm/secret_base.s
+++ b/asm/secret_base.s
@@ -671,9 +671,9 @@ sub_80BC980: @ 80BC980
lsls r4, 24
lsrs r4, 24
movs r0, 0
- bl sub_80F996C
+ bl PauseVerticalScrollIndicator
movs r0, 0x1
- bl sub_80F996C
+ bl PauseVerticalScrollIndicator
movs r0, 0x1
movs r1, 0
movs r2, 0xC
@@ -840,7 +840,7 @@ sub_80BCAEC: @ 80BCAEC
bl DisplayYesNoMenu
ldr r1, _080BCB0C @ =gUnknown_083D13E4
adds r0, r4, 0
- bl sub_80F914C
+ bl DoYesNoFuncWithChoice
pop {r4}
pop {r0}
bx r0
@@ -994,9 +994,9 @@ sub_80BCBF8: @ 80BCBF8
movs r3, 0x5
bl MenuZeroFillWindowRect
movs r0, 0
- bl sub_80F98DC
+ bl StartVerticalScrollIndicators
movs r0, 0x1
- bl sub_80F98DC
+ bl StartVerticalScrollIndicators
subs r5, 0x8
adds r4, r5
ldr r0, _080BCC50 @ =sub_80BC824
diff --git a/asm/shop.s b/asm/shop.s
index ba4c53885..a341e90a1 100644
--- a/asm/shop.s
+++ b/asm/shop.s
@@ -1222,7 +1222,7 @@ sub_80B3D38: @ 80B3D38
bl sub_80A3FA0
ldr r1, _080B3D78 @ =gUnknown_083CC708
adds r0, r4, 0
- bl sub_80F914C
+ bl DoYesNoFuncWithChoice
add sp, 0x8
pop {r4}
pop {r0}
@@ -1767,9 +1767,9 @@ _080B41B8:
b _080B4350
_080B41CE:
movs r0, 0
- bl sub_80F996C
+ bl PauseVerticalScrollIndicator
movs r0, 0x1
- bl sub_80F996C
+ bl PauseVerticalScrollIndicator
movs r0, 0x1
movs r1, 0x1
bl sub_80F979C
@@ -1978,9 +1978,9 @@ sub_80B4378: @ 80B4378
bl sub_80B3764
bl sub_80B37EC
movs r0, 0
- bl sub_80F98DC
+ bl StartVerticalScrollIndicators
movs r0, 0x1
- bl sub_80F98DC
+ bl StartVerticalScrollIndicators
bl sub_80B32A4
ldr r1, _080B43E8 @ =gTasks
lsls r0, r4, 2
@@ -2006,7 +2006,7 @@ sub_80B43F0: @ 80B43F0
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r1, _080B4428 @ =gUnknown_0300485C
+ ldr r1, _080B4428 @ =gFieldCallback
ldr r0, _080B442C @ =sub_80B3050
str r0, [r1]
movs r0, 0x1
@@ -2028,7 +2028,7 @@ sub_80B43F0: @ 80B43F0
pop {r0}
bx r0
.align 2, 0
-_080B4428: .4byte gUnknown_0300485C
+_080B4428: .4byte gFieldCallback
_080B442C: .4byte sub_80B3050
_080B4430: .4byte gTasks
_080B4434: .4byte Task_ExitBuyMenu
diff --git a/asm/trade.s b/asm/trade.s
index a26afa254..e4d45ec73 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -12051,7 +12051,7 @@ sub_804E1A0: @ 804E1A0
bne _0804E1C4
ldr r0, _0804E1D0 @ =sub_804B790
bl SetMainCallback2
- ldr r1, _0804E1D4 @ =gUnknown_0300485C
+ ldr r1, _0804E1D4 @ =gFieldCallback
ldr r0, _0804E1D8 @ =sub_8080990
str r0, [r1]
adds r0, r4, 0
@@ -12063,7 +12063,7 @@ _0804E1C4:
.align 2, 0
_0804E1CC: .4byte gPaletteFade
_0804E1D0: .4byte sub_804B790
-_0804E1D4: .4byte gUnknown_0300485C
+_0804E1D4: .4byte gFieldCallback
_0804E1D8: .4byte sub_8080990
thumb_func_end sub_804E1A0
diff --git a/data/player_pc.s b/data/player_pc.s
deleted file mode 100644
index 10f802bbb..000000000
--- a/data/player_pc.s
+++ /dev/null
@@ -1,77 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gPCText_OptionDescList:: @ 8406288
- .4byte PCText_TakeOutItems
- .4byte PCText_StoreItems
- .4byte PCText_ThrowAwayItems
- .4byte gMenuText_GoBackToPrev
-
- .align 2
-gPCText_PlayerPCOptionsText:: @ 8406298
- .4byte SecretBaseText_ItemStorage, PlayerPC_ItemStorage
- .4byte gPCText_Mailbox, PlayerPC_Mailbox
- .4byte SecretBaseText_Decoration, PlayerPC_Decoration
- .4byte SecretBaseText_TurnOff, PlayerPC_TurnOff
-
-gBedroomPC_OptionOrder:: @ 84062B8
- .byte 0, 1, 2, 3
-
-gPlayerPC_OptionOrder:: @ 84062BC
- .byte 0, 1, 3
-
- .align 2
-gPCText_ItemPCOptionsText:: @ 84062C0
- .4byte PCText_WithdrawItem, ItemStorage_Withdraw
- .4byte PCText_DepositItem, ItemStorage_Deposit
- .4byte PCText_TossItem, ItemStorage_Toss
- .4byte gUnknownText_Exit, ItemStorage_Exit
-
- .align 2
-gUnknown_084062E0:: @ 84062E0
- .4byte ItemStorage_ResumeInputFromYesToss
- .4byte ItemStorage_ResumeInputFromNoToss
-
- .align 2
-gUnknown_084062E8:: @ 84062E8
- .4byte sub_813B578
- .4byte sub_813B610
-
- .align 2
-gNewGamePCItems:: @ 84062F0
- .2byte ITEM_POTION, 1
- .2byte ITEM_NONE, 0
-
- .align 2
-gUnknown_084062F8:: @ 84062F8
- .4byte OtherText_Read, Mailbox_Read
- .4byte gOtherText_MoveToBag, Mailbox_MoveToBag
- .4byte OtherText_Give, Mailbox_Give
- .4byte gOtherText_CancelNoTerminator, Mailbox_Cancel
-
-gUnknown_08406318:: @ 8406318
- .string "{STR_VAR_1}{CLEAR_TO 80}$"
-
-gUnknown_0840631E:: @ 840631E
- .string "{COLOR RED}{STR_VAR_1}{CLEAR_TO 80}$"
-
-gUnknown_08406327:: @ 8406327
- .string "{STR_VAR_1}$"
-
-gUnknown_0840632A:: @ 840632A
- .string "{COLOR RED}{STR_VAR_1}$"
-
-gUnknown_08406330:: @ 8406330
- .string "{CLEAR_TO 32}$"
-
- .align 1
-gUnknown_08406334:: @ 8406334
- .2byte 0x5294
- .2byte 0x6B5A
- .2byte 0x7FFF
-
-gUnknown_0840633A:: @ 840633A
- .string "{COLOR RED}{STR_VAR_1}$"
diff --git a/data/scripts/maps/LittlerootTown_BrendansHouse_2F.inc b/data/scripts/maps/LittlerootTown_BrendansHouse_2F.inc
index 4f121118a..0c6ec79f7 100644
--- a/data/scripts/maps/LittlerootTown_BrendansHouse_2F.inc
+++ b/data/scripts/maps/LittlerootTown_BrendansHouse_2F.inc
@@ -67,7 +67,7 @@ LittlerootTown_BrendansHouse_2F_EventScript_152837:: @ 8152837
releaseall
end
-gUnknown_08152850:: @ 8152850
+gBrendanHouse_TurnPCOff:: @ 8152850
setvar 0x8004, 1
playsfx SE_PC_OFF
special 215
diff --git a/data/scripts/maps/LittlerootTown_MaysHouse_2F.inc b/data/scripts/maps/LittlerootTown_MaysHouse_2F.inc
index 7871940ca..1aca3f86e 100644
--- a/data/scripts/maps/LittlerootTown_MaysHouse_2F.inc
+++ b/data/scripts/maps/LittlerootTown_MaysHouse_2F.inc
@@ -215,7 +215,7 @@ LittlerootTown_MaysHouse_2F_EventScript_152C5C:: @ 8152C5C
releaseall
end
-gUnknown_08152C75:: @ 8152C75
+gMayHouse_TurnPCOff:: @ 8152C75
setvar 0x8004, 2
playsfx SE_PC_OFF
special 215
diff --git a/include/decoration.h b/include/decoration.h
index 01a00ee91..2e83a9414 100644
--- a/include/decoration.h
+++ b/include/decoration.h
@@ -262,7 +262,7 @@ extern u8 gUnknown_020391A8;
extern u8 gUnknown_020391A9;
extern u8 gUnknown_020391AA;
extern u8 gUnknown_02039234;
-extern void (*gUnknown_0300485C)(void);
+extern void (*gFieldCallback)(void);
extern const struct YesNoFuncTable gUnknown_083EC96C[];
extern struct UnkStruct_020391B4 gUnknown_020391B4[16];
diff --git a/include/menu_helpers.h b/include/menu_helpers.h
index f55a90615..74248e85a 100644
--- a/include/menu_helpers.h
+++ b/include/menu_helpers.h
@@ -7,6 +7,6 @@ struct YesNoFuncTable
void (*noFunc)(u8);
};
-void sub_80F914C(u8, const struct YesNoFuncTable *);
+void DoYesNoFuncWithChoice(u8, const struct YesNoFuncTable *);
#endif // GUARD_MENU_HELPERS_H
diff --git a/include/player_pc.h b/include/player_pc.h
new file mode 100755
index 000000000..5f53d80ac
--- /dev/null
+++ b/include/player_pc.h
@@ -0,0 +1,87 @@
+#ifndef GUARD_PLAYERPC_H
+#define GUARD_PLAYERPC_H
+
+// general task defines
+#define TASK gTasks[taskId]
+#define FUNC func
+
+// local 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)((u16 *)gNewGamePCItems + type)[i * 2])
+
+// defined and used in the above macro
+enum
+{
+ ITEM_ID,
+ 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
+};
+
+// mailbox mail options
+enum
+{
+ MAILBOX_READ,
+ MAILBOX_MOVE_TO_BAG,
+ MAILBOX_GIVE,
+ MAILBOX_CANCEL,
+};
+
+// special item description handlers
+enum
+{
+ ITEMPC_SWITCH_WHICH_ITEM = 0xFFF7,
+ ITEMPC_OKAY_TO_THROW_AWAY,
+ ITEMPC_TOO_IMPORTANT,
+ ITEMPC_NO_MORE_ROOM,
+ ITEMPC_THREW_AWAY_ITEM,
+ ITEMPC_HOW_MANY_TO_TOSS,
+ ITEMPC_WITHDREW_THING,
+ ITEMPC_HOW_MANY_TO_WITHDRAW,
+ ITEMPC_GO_BACK_TO_PREV
+};
+
+struct MailboxStruct
+{
+ /*0x00*/ u8 cursorPos;
+ /*0x01*/ u8 pageItems; // number of items (not including Cancel) on the current page.
+ /*0x02*/ u8 itemsAbove; // number of items above the top item on the page.
+ /*0x03*/ u8 count; // total number of items in mailbox storage.
+};
+
+extern struct MailboxStruct gMailboxInfo;
+
+void ReshowPlayerPC(u8 var);
+void NewGameInitPCItems(void);
+void BedroomPC(void);
+void PlayerPC(void);
+void ItemStorage_ReturnToMenuAfterDeposit(void);
+void Mailbox_ReturnToMailListAfterDeposit(void);
+
+#endif
diff --git a/ld_script.txt b/ld_script.txt
index 9eb0a655f..b20e05223 100755
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -460,7 +460,7 @@ SECTIONS {
data/battle_tower.o(.rodata);
data/use_pokeblock.o(.rodata);
data/battle_anim_8137220.o(.rodata);
- data/player_pc.o(.rodata);
+ src/player_pc.o(.rodata);
src/intro.o(.rodata);
data/battle_anim_813F0F4.o(.rodata);
data/hall_of_fame.o(.rodata);
diff --git a/src/battle_setup.c b/src/battle_setup.c
index a70157a43..cb99bf5f5 100644
--- a/src/battle_setup.c
+++ b/src/battle_setup.c
@@ -31,7 +31,7 @@
extern u16 gScriptResult;
-extern void (*gUnknown_0300485C)(void);
+extern void (*gFieldCallback)(void);
extern struct Pokemon gEnemyParty[];
extern struct Pokemon gPlayerParty[];
@@ -580,7 +580,7 @@ void HandleWildBattleEnd(void)
else
{
SetMainCallback2(c2_exit_to_overworld_2_switch);
- gUnknown_0300485C = sub_8080E44;
+ gFieldCallback = sub_8080E44;
}
}
diff --git a/src/decoration.c b/src/decoration.c
index d33931206..6974f7c92 100644
--- a/src/decoration.c
+++ b/src/decoration.c
@@ -3168,7 +3168,7 @@ void sub_8100038(u8 taskId)
void sub_81000A0(u8 taskId)
{
DisplayYesNoMenu(20, 8, 1);
- sub_80F914C(taskId, &gUnknown_083EC95C);
+ DoYesNoFuncWithChoice(taskId, &gUnknown_083EC95C);
}
void sub_81000C4(u8 taskId)
@@ -3226,7 +3226,7 @@ void sub_8100174(u8 taskId)
void sub_8100248(u8 taskId)
{
DisplayYesNoMenu(20, 8, 1);
- sub_80F914C(taskId, &gUnknown_083EC964);
+ DoYesNoFuncWithChoice(taskId, &gUnknown_083EC964);
}
void sub_810026C(u8 taskId)
@@ -3257,7 +3257,7 @@ void c1_overworld_prev_quest(u8 taskId)
case 1:
sub_81016F4();
FreeSpritePaletteByTag(0xbb8);
- gUnknown_0300485C = &sub_8100364;
+ gFieldCallback = &sub_8100364;
SetMainCallback2(c2_exit_to_overworld_2_switch);
DestroyTask(taskId);
break;
@@ -4047,7 +4047,7 @@ void sub_8101460(u8 taskId)
void sub_8101518(u8 taskId)
{
DisplayYesNoMenu(20, 8, 1);
- sub_80F914C(taskId, &gUnknown_083EC9CC);
+ DoYesNoFuncWithChoice(taskId, &gUnknown_083EC9CC);
}
void sub_810153C(u8 taskId)
@@ -4060,7 +4060,7 @@ void sub_810153C(u8 taskId)
void sub_810156C(u8 taskId)
{
DisplayYesNoMenu(20, 8, 1);
- sub_80F914C(taskId, &gUnknown_083EC9D4);
+ DoYesNoFuncWithChoice(taskId, &gUnknown_083EC9D4);
}
void sub_8101590(u8 taskId)
@@ -4089,7 +4089,7 @@ void sub_81015E0(u8 taskId)
break;
case 1:
sub_81016F4();
- gUnknown_0300485C = sub_8101678;
+ gFieldCallback = sub_8101678;
SetMainCallback2(c2_exit_to_overworld_2_switch);
DestroyTask(taskId);
break;
@@ -4184,7 +4184,7 @@ void sub_81017A0(u8 taskId)
void sub_8101824(u8 taskId)
{
DisplayYesNoMenu(20, 8, 1);
- sub_80F914C(taskId, &gUnknown_083ECAA0);
+ DoYesNoFuncWithChoice(taskId, &gUnknown_083ECAA0);
}
void sub_8101848(u8 taskId)
diff --git a/src/field_effect.c b/src/field_effect.c
index 2bf9b3dc9..3b6a2ff4c 100755
--- a/src/field_effect.c
+++ b/src/field_effect.c
@@ -1176,7 +1176,7 @@ void c3_080843F8(u8);
void sub_80865BC(void)
{
SetMainCallback2(c2_exit_to_overworld_2_switch);
- gUnknown_0300485C = mapldr_080842E8;
+ gFieldCallback = mapldr_080842E8;
}
void mapldr_080842E8(void)
@@ -1185,7 +1185,7 @@ void mapldr_080842E8(void)
CreateTask(task00_8084310, 0);
ScriptContext2_Enable();
FreezeMapObjects();
- gUnknown_0300485C = NULL;
+ gFieldCallback = NULL;
}
void task00_8084310(u8 taskId)
@@ -1211,7 +1211,7 @@ void task00_8084310(u8 taskId)
flag_var_implications_of_teleport_();
warp_in();
SetMainCallback2(CB2_LoadMap);
- gUnknown_0300485C = mapldr_08084390;
+ gFieldCallback = mapldr_08084390;
DestroyTask(taskId);
}
}
@@ -1228,7 +1228,7 @@ void mapldr_08084390(void)
}
ScriptContext2_Enable();
FreezeMapObjects();
- gUnknown_0300485C = NULL;
+ gFieldCallback = NULL;
}
void c3_080843F8(u8 taskId)
@@ -1264,7 +1264,7 @@ void sub_8086748(void)
ScriptContext2_Enable();
FreezeMapObjects();
CreateTask(sub_8086774, 0);
- gUnknown_0300485C = NULL;
+ gFieldCallback = NULL;
}
void sub_8086774(u8 taskId)
@@ -1520,7 +1520,7 @@ void sub_8086C40(void)
{
sub_80B483C();
warp_in();
- gUnknown_0300485C = sub_8086C94;
+ gFieldCallback = sub_8086C94;
SetMainCallback2(CB2_LoadMap);
DestroyTask(FindTaskIdByFunc(sub_8086A68));
}
@@ -1532,7 +1532,7 @@ void sub_8086C94(void)
pal_fill_for_map_transition();
ScriptContext2_Enable();
CreateTask(sub_8086CBC, 0);
- gUnknown_0300485C = NULL;
+ gFieldCallback = NULL;
}
void sub_8086CBC(u8 taskId)
@@ -1881,7 +1881,7 @@ bool8 sub_80873F4(struct Task *task, struct MapObject *mapObject, struct Sprite
if (!gPaletteFade.active && sub_8054034() == TRUE)
{
warp_in();
- gUnknown_0300485C = mapldr_080851BC;
+ gFieldCallback = mapldr_080851BC;
SetMainCallback2(CB2_LoadMap);
DestroyTask(FindTaskIdByFunc(sub_80871D0));
}
@@ -1896,7 +1896,7 @@ void mapldr_080851BC(void)
sub_8053E90();
pal_fill_for_map_transition();
ScriptContext2_Enable();
- gUnknown_0300485C = NULL;
+ gFieldCallback = NULL;
CreateTask(sub_8087470, 0);
}
@@ -2049,7 +2049,7 @@ bool8 sub_80877D4(struct Task *task, struct MapObject *mapObject, struct Sprite
if (!gPaletteFade.active && sub_8054034() == TRUE)
{
warp_in();
- gUnknown_0300485C = sub_8086748;
+ gFieldCallback = sub_8086748;
SetMainCallback2(CB2_LoadMap);
DestroyTask(FindTaskIdByFunc(sub_808766C));
}
@@ -2111,7 +2111,7 @@ void sub_8087914(struct Task *task)
FieldObjectSetDirection(mapObject, task->data[15]);
sub_8053678();
warp_in();
- gUnknown_0300485C = mapldr_080859D4;
+ gFieldCallback = mapldr_080859D4;
SetMainCallback2(CB2_LoadMap);
DestroyTask(FindTaskIdByFunc(sub_80878C4));
} else if (task->data[1] == 0 || (--task->data[1]) == 0)
@@ -2134,7 +2134,7 @@ void mapldr_080859D4(void)
pal_fill_for_map_transition();
ScriptContext2_Enable();
FreezeMapObjects();
- gUnknown_0300485C = NULL;
+ gFieldCallback = NULL;
gMapObjects[gPlayerAvatar.mapObjectId].mapobj_bit_13 = 1;
CreateTask(sub_8087A74, 0);
}
@@ -2265,7 +2265,7 @@ void sub_8087D78(struct Task *task)
sub_8053570();
warp_in();
SetMainCallback2(CB2_LoadMap);
- gUnknown_0300485C = mapldr_08085D88;
+ gFieldCallback = mapldr_08085D88;
DestroyTask(FindTaskIdByFunc(sub_8087BBC));
}
}
@@ -2278,7 +2278,7 @@ void mapldr_08085D88(void)
pal_fill_for_map_transition();
ScriptContext2_Enable();
FreezeMapObjects();
- gUnknown_0300485C = NULL;
+ gFieldCallback = NULL;
gMapObjects[gPlayerAvatar.mapObjectId].mapobj_bit_13 = 1;
CameraObjectReset2();
CreateTask(sub_8087E1C, 0);
diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c
index 8fde74852..4a2313499 100644
--- a/src/fldeff_cut.c
+++ b/src/fldeff_cut.c
@@ -16,7 +16,7 @@
extern u8 gCutGrassSpriteArray[8]; // seems to be an array of 8 sprite IDs
-extern void (*gUnknown_0300485C)(void);
+extern void (*gFieldCallback)(void);
extern void (*gUnknown_03005CE4)(void);
extern struct SpriteTemplate gSpriteTemplate_CutGrass;
@@ -48,7 +48,7 @@ bool8 SetUpFieldMove_Cut(void)
if(npc_before_player_of_type(0x52) == TRUE) // is in front of tree?
{
- gUnknown_0300485C = sub_808AB90;
+ gFieldCallback = sub_808AB90;
gUnknown_03005CE4 = sub_80A2634;
return TRUE;
}
@@ -67,7 +67,7 @@ bool8 SetUpFieldMove_Cut(void)
if(MetatileBehavior_IsPokeGrass(tileBehavior) == TRUE
|| MetatileBehavior_IsAshGrass(tileBehavior) == TRUE)
{
- gUnknown_0300485C = sub_808AB90;
+ gFieldCallback = sub_808AB90;
gUnknown_03005CE4 = sub_80A25E8;
return TRUE;
}
diff --git a/src/fldeff_strength.c b/src/fldeff_strength.c
index f9db40a67..a831676b8 100644
--- a/src/fldeff_strength.c
+++ b/src/fldeff_strength.c
@@ -16,7 +16,7 @@ extern u32 gUnknown_0202FF84[];
extern u8 gLastFieldPokeMenuOpened;
extern u16 gScriptResult;
-extern void (*gUnknown_0300485C)(void);
+extern void (*gFieldCallback)(void);
extern void (*gUnknown_03005CE4)(void);
extern u8 UseStrengthScript[];
@@ -26,7 +26,7 @@ bool8 SetUpFieldMove_Strength(void)
if (ShouldDoBrailleStrengthEffect())
{
gScriptResult = gLastFieldPokeMenuOpened;
- gUnknown_0300485C = sub_808AB90;
+ gFieldCallback = sub_808AB90;
gUnknown_03005CE4 = sub_811AA38;
}
else
@@ -34,7 +34,7 @@ bool8 SetUpFieldMove_Strength(void)
if (npc_before_player_of_type(87) != TRUE)
return 0;
gScriptResult = gLastFieldPokeMenuOpened;
- gUnknown_0300485C = sub_808AB90;
+ gFieldCallback = sub_808AB90;
gUnknown_03005CE4 = sub_811AA18;
}
diff --git a/src/fldeff_sweetscent.c b/src/fldeff_sweetscent.c
index 4e8214b07..3a9281ac2 100644
--- a/src/fldeff_sweetscent.c
+++ b/src/fldeff_sweetscent.c
@@ -18,14 +18,14 @@ static void sub_812C118(u8);
extern u32 gUnknown_0202FF84[];
extern u8 gLastFieldPokeMenuOpened;
-extern void (*gUnknown_0300485C)(void);
+extern void (*gFieldCallback)(void);
extern void (*gUnknown_03005CE4)(void);
extern u8 SweetScentNothingHereScript[];
bool8 SetUpFieldMove_SweetScent(void)
{
- gUnknown_0300485C = sub_808AB90;
+ gFieldCallback = sub_808AB90;
gUnknown_03005CE4 = sub_812BFD4;
return TRUE;
}
diff --git a/src/fldeff_teleport.c b/src/fldeff_teleport.c
index 0e6933649..952193ff0 100644
--- a/src/fldeff_teleport.c
+++ b/src/fldeff_teleport.c
@@ -9,7 +9,7 @@ extern void sub_8087BA8(void);
extern u32 gUnknown_0202FF84[];
-extern void (*gUnknown_0300485C)(void);
+extern void (*gFieldCallback)(void);
extern u8 gLastFieldPokeMenuOpened;
extern void (*gUnknown_03005CE4)(void);
@@ -20,7 +20,7 @@ bool8 SetUpFieldMove_Teleport(void)
{
if (is_light_level_1_2_3_or_6(gMapHeader.mapType) == TRUE)
{
- gUnknown_0300485C = sub_808AB90;
+ gFieldCallback = sub_808AB90;
gUnknown_03005CE4 = hm_teleport_run_dp02scr;
return TRUE;
}
diff --git a/src/hof_pc.c b/src/hof_pc.c
index fcbc3f7e1..ca0c2f370 100644
--- a/src/hof_pc.c
+++ b/src/hof_pc.c
@@ -7,7 +7,7 @@
#include "task.h"
extern void sub_81428CC(void);
-extern void (*gUnknown_0300485C)(void);
+extern void (*gFieldCallback)(void);
static void ReshowPCMenuAfterHallOfFamePC(void);
static void Task_WaitForPaletteFade(u8);
@@ -21,7 +21,7 @@ void AccessHallOfFamePC(void)
void ReturnFromHallOfFamePC(void)
{
SetMainCallback2(c2_exit_to_overworld_2_switch);
- gUnknown_0300485C = ReshowPCMenuAfterHallOfFamePC;
+ gFieldCallback = ReshowPCMenuAfterHallOfFamePC;
}
static void ReshowPCMenuAfterHallOfFamePC(void)
diff --git a/src/item_use.c b/src/item_use.c
index d1c1dbf2a..c04cf9d7a 100644
--- a/src/item_use.c
+++ b/src/item_use.c
@@ -28,7 +28,7 @@
#include "vars.h"
extern void (* gUnknown_03005D00)(u8);
-extern void (* gUnknown_0300485C)(void);
+extern void (* gFieldCallback)(void);
extern void (* gUnknown_03004AE4)(u8);
extern u8 gUnknown_02038561;
@@ -150,7 +150,7 @@ void SetUpItemUseOnFieldCallback(u8 taskId)
{
if (gTasks[taskId].data[2] != 1)
{
- gUnknown_0300485C = (void *)ExecuteItemUseFromBlackPalette;
+ gFieldCallback = (void *)ExecuteItemUseFromBlackPalette;
ItemMenu_ConfirmNormalFade(taskId);
}
else
@@ -772,7 +772,7 @@ void ItemUseOutOfBattle_PokeblockCase(u8 taskId)
}
else
{
- gUnknown_0300485C = (void *)sub_8080E28;
+ gFieldCallback = (void *)sub_8080E28;
sub_810BA7C(1);
ItemMenu_ConfirmComplexFade(taskId);
}
@@ -825,7 +825,7 @@ void sub_80C9C7C(u8 taskId)
if(IsPlayerFacingPlantedBerryTree() == TRUE)
{
gUnknown_03005D00 = sub_80C9D00;
- gUnknown_0300485C = ExecuteItemUseFromBlackPalette;
+ gFieldCallback = ExecuteItemUseFromBlackPalette;
gTasks[taskId].data[8] = (u32)c2_exit_to_overworld_2_switch >> 16;
gTasks[taskId].data[9] = (u32)c2_exit_to_overworld_2_switch;
gTasks[taskId].func = HandleItemMenuPaletteFade;
@@ -944,7 +944,7 @@ void sub_80C9F80(u8 var)
{
DisplayYesNoMenu(7, 7, 1);
sub_80A3FA0(gBGTilemapBuffers[1], 8, 8, 5, 4, 1);
- sub_80F914C(var, &gUnknown_083D61F4);
+ DoYesNoFuncWithChoice(var, &gUnknown_083D61F4);
}
void sub_80C9FC0(u8 var)
diff --git a/src/player_pc.c b/src/player_pc.c
index f39d812b6..1d4165c17 100644
--- a/src/player_pc.c
+++ b/src/player_pc.c
@@ -16,30 +16,106 @@
#include "name_string_util.h"
#include "mail.h"
#include "rom4.h"
+#include "player_pc.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])
-
-// defined and used in the above macro
-enum
-{
- ITEM_ID,
- QUANTITY
+extern void DisplayItemMessageOnField(u8, const u8*, TaskFunc, u16);
+extern void DoPlayerPCDecoration(u8);
+extern void BuyMenuFreeMemory(void);
+extern void DestroyVerticalScrollIndicator(u8);
+extern void PauseVerticalScrollIndicator(u8);
+extern void StartVerticalScrollIndicators(int);
+extern void CreateVerticalScrollIndicators(u32, u32, u32); // unknown args
+extern void LoadScrollIndicatorPalette(void);
+extern void ClearMailStruct(struct MailStruct *);
+extern u8 sub_807D770(void);
+extern void sub_808B020(void);
+extern void sub_80A4164(u8 *, u16, enum StringConvertMode, u8);
+extern void sub_80A418C(u16, enum StringConvertMode, int, int, int);
+extern void sub_80A6A30(void);
+extern void sub_80F944C(void);
+
+extern u8 *gPcItemMenuOptionOrder;
+extern u8 gPcItemMenuOptionsNum;
+
+extern u8 gUnknown_02038561;
+
+// event scripts
+extern u8 gBrendanHouse_TurnPCOff[];
+extern u8 gMayHouse_TurnPCOff[];
+
+extern void (*gFieldCallback)(void);
+
+static void InitPlayerPCMenu(u8 taskId);
+static void PlayerPCProcessMenuInput(u8 taskId);
+static void InitItemStorageMenu(u8);
+static void ItemStorageMenuPrint(const u8 *);
+static void ItemStorageMenuProcessInput(u8);
+static void ItemStorage_ProcessInput(u8);
+static void ItemStorage_SetItemAndMailCount(u8);
+static void ItemStorage_DoItemAction(u8);
+static void ItemStorage_GoBackToPlayerPCMenu(u8);
+static void ItemStorage_HandleQuantityRolling(u8);
+static void ItemStorage_DoItemWithdraw(u8);
+static void ItemStorage_DoItemToss(u8);
+static void ItemStorage_HandleRemoveItem(u8);
+static void ItemStorage_WaitPressHandleResumeProcessInput(u8);
+static void ItemStorage_HandleResumeProcessInput(u8);
+static void ItemStorage_DoItemSwap(u8, bool8);
+static void ItemStorage_DrawItemList(u8);
+static void ItemStorage_PrintItemPcResponse(u16);
+static void ItemStorage_DrawBothListAndDescription(u8);
+static void ItemStorage_GoBackToItemPCMenu(u8, u8);
+static void ItemStorage_LoadPalette(void);
+static u8 GetMailboxMailCount(void);
+static void Mailbox_UpdateMailList(void);
+static void Mailbox_DrawMailboxMenu(u8);
+static void Mailbox_ProcessInput(u8);
+static void Mailbox_CloseScrollIndicators(void);
+static void Mailbox_PrintWhatToDoWithPlayerMailText(u8);
+static void Mailbox_TurnOff(u8);
+static void Mailbox_PrintMailOptions(u8);
+static void Mailbox_MailOptionsProcessInput(u8);
+static void Mailbox_FadeAndReadMail(u8);
+static void Mailbox_ReturnToFieldFromReadMail(void);
+static void Mailbox_DrawYesNoBeforeMove(u8);
+static void Mailbox_DoGiveMailPokeMenu(u8);
+static void Mailbox_NoPokemonForMail(u8);
+static void Mailbox_Cancel(u8);
+static void Mailbox_DrawMailMenuAndDoProcessInput(u8);
+static void PlayerPC_ItemStorage(u8 taskId);
+static void PlayerPC_Mailbox(u8 taskId);
+static void PlayerPC_Decoration(u8 var);
+static void PlayerPC_TurnOff(u8 taskId);
+static void ItemStorage_Withdraw(u8);
+static void ItemStorage_Deposit(u8);
+static void ItemStorage_Toss(u8);
+static void ItemStorage_Exit(u8);
+static void ItemStorage_ResumeInputFromYesToss(u8);
+static void ItemStorage_ResumeInputFromNoToss(u8);
+static void Mailbox_DoMailMoveToBag(u8);
+static void Mailbox_ReturnToInputAfterNo(u8);
+static void Mailbox_DoMailRead(u8);
+static void Mailbox_MoveToBag(u8);
+static void Mailbox_Give(u8);
+static void Mailbox_Cancel(u8);
+
+static const struct TextStruct gPCText_OptionDescList[] =
+{
+ PCText_TakeOutItems,
+ PCText_StoreItems,
+ PCText_ThrowAwayItems,
+ gMenuText_GoBackToPrev
+};
+
+static const struct MenuAction2 gPCText_PlayerPCOptionsText[] =
+{
+ { SecretBaseText_ItemStorage, PlayerPC_ItemStorage },
+ { gPCText_Mailbox, PlayerPC_Mailbox },
+ { SecretBaseText_Decoration, PlayerPC_Decoration },
+ { SecretBaseText_TurnOff, PlayerPC_TurnOff }
};
-// player PC menu options
-enum
+static const u8 gBedroomPC_OptionOrder[] =
{
PLAYERPC_MENU_ITEMSTORAGE,
PLAYERPC_MENU_MAILBOX,
@@ -47,121 +123,62 @@ enum
PLAYERPC_MENU_TURNOFF
};
-// item storage menus
-enum
+static const u8 gPlayerPC_OptionOrder[] =
{
- ITEMPC_MENU_WITHDRAW,
- ITEMPC_MENU_DEPOSIT,
- ITEMPC_MENU_TOSS,
- ITEMPC_MENU_EXIT
+ PLAYERPC_MENU_ITEMSTORAGE,
+ PLAYERPC_MENU_MAILBOX,
+ PLAYERPC_MENU_TURNOFF
};
-// special item description handlers
-enum
-{
- ITEMPC_SWITCH_WHICH_ITEM = 0xFFF7,
- ITEMPC_OKAY_TO_THROW_AWAY,
- ITEMPC_TOO_IMPORTANT,
- ITEMPC_NO_MORE_ROOM,
- ITEMPC_THREW_AWAY_ITEM,
- ITEMPC_HOW_MANY_TO_TOSS,
- ITEMPC_WITHDREW_THING,
- ITEMPC_HOW_MANY_TO_WITHDRAW,
- ITEMPC_GO_BACK_TO_PREV
+static const struct MenuAction2 gPCText_ItemPCOptionsText[] =
+{
+ { PCText_WithdrawItem, ItemStorage_Withdraw },
+ { PCText_DepositItem, ItemStorage_Deposit },
+ { PCText_TossItem, ItemStorage_Toss },
+ { gUnknownText_Exit, ItemStorage_Exit }
};
-struct MailboxStruct
+static const struct YesNoFuncTable ResumeFromTossYesNoFuncList[] = // ResumeFromTossYesNoFuncList
{
- /*0x00*/ u8 cursorPos;
- /*0x01*/ u8 pageItems; // number of items (not including Cancel) on the current page.
- /*0x02*/ u8 itemsAbove; // number of items above the top item on the page.
- /*0x03*/ u8 count; // total number of items in mailbox storage.
+ ItemStorage_ResumeInputFromYesToss,
+ ItemStorage_ResumeInputFromNoToss
};
-extern struct MailboxStruct gMailboxInfo;
-
-extern void DisplayItemMessageOnField(u8, const u8*, TaskFunc, u16);
-extern void DoPlayerPCDecoration(u8);
-extern void BuyMenuFreeMemory(void);
-extern void DestroyVerticalScrollIndicator(u8);
-extern void sub_80A6A30(void);
-extern u8 sub_807D770(void);
-extern void sub_80F996C(u8);
-extern void sub_80A418C(u16, enum StringConvertMode, int, int, int);
-extern void sub_80F98DC(int);
-extern void sub_80A4164(u8 *, u16, enum StringConvertMode, u8);
-extern void CreateVerticalScrollIndicators(u32, u32, u32); // unknown args
-extern void sub_80F944C(void);
-extern void LoadScrollIndicatorPalette(void);
-extern void ClearMailStruct(struct MailStruct *);
-extern void sub_808B020(void);
+static const struct YesNoFuncTable ResumeFromWithdrawYesNoFuncList[] = // ResumeFromWithdrawYesNoFuncList
+{
+ Mailbox_DoMailMoveToBag,
+ Mailbox_ReturnToInputAfterNo
+};
-extern u16 gNewGamePCItems[];
-extern u16 gUnknown_08406334[3];
+// the use of this struct is meant to be an ItemSlot struct, but NewGameInitPCItems refuses to match without a weird pointer access.
+static const struct ItemSlot gNewGamePCItems[] =
+{
+ { ITEM_POTION, 1 },
+ { ITEM_NONE, 0 }
+};
-extern u8 *gPcItemMenuOptionOrder;
-extern struct MenuAction gPCText_PlayerPCOptionsText[];
+static const struct MenuAction2 gMailboxMailOptions[] =
+{
+ { OtherText_Read, Mailbox_DoMailRead },
+ { gOtherText_MoveToBag, Mailbox_MoveToBag },
+ { OtherText_Give, Mailbox_Give },
+ { gOtherText_CancelNoTerminator, Mailbox_Cancel }
+};
-extern u8 gBedroomPC_OptionOrder[];
-extern u8 gPlayerPC_OptionOrder[];
-extern u8 gUnknown_0840632A[];
-extern u8 gUnknown_08406327[];
-extern u8 gUnknown_08406330[];
-extern u8 gUnknown_0840631E[];
-extern u8 gUnknown_08406318[];
-extern u8 gUnknown_0840633A[];
+static const u8 gNonSelectedItemFormattedText[] = _("{STR_VAR_1}{CLEAR_TO 80}");
+static const u8 gSelectedItemFormattedText[] = _("{COLOR RED}{STR_VAR_1}{CLEAR_TO 80}");
+static const u8 gNonSelectedItemQuantityFormatText[] = _("{STR_VAR_1}");
+static const u8 gSelectedItemQuantityFormatText[] = _("{COLOR RED}{STR_VAR_1}");
+static const u8 gUnknown_08406330[] = _("{CLEAR_TO 32}");
-extern u8 gPcItemMenuOptionsNum;
+static const u16 gUnknown_08406334[3] =
+{
+ 0x5294,
+ 0x6B5A,
+ 0x7FFF
+};
-extern u8 gUnknown_02038561;
-extern u8 gUnknown_08152850;
-extern u8 gUnknown_08152C75;
-
-extern void (*gUnknown_0300485C)(void);
-
-extern u32 gPCText_OptionDescList[];
-extern const struct MenuAction gPCText_ItemPCOptionsText[];
-extern const struct MenuAction gUnknown_084062F8[];
-extern const struct YesNoFuncTable gUnknown_084062E0;
-extern const struct YesNoFuncTable gUnknown_084062E8;
-
-void InitPlayerPCMenu(u8 taskId);
-void PlayerPCProcessMenuInput(u8 taskId);
-void InitItemStorageMenu(u8);
-void ItemStorageMenuPrint(u8 *);
-void ItemStorageMenuProcessInput(u8);
-void ItemStorage_ProcessInput(u8);
-void ItemStorage_SetItemAndMailCount(u8);
-void ItemStorage_DoItemAction(u8);
-void ItemStorage_GoBackToPlayerPCMenu(u8);
-void ItemStorage_HandleQuantityRolling(u8);
-void ItemStorage_DoItemWithdraw(u8);
-void ItemStorage_DoItemToss(u8);
-void ItemStorage_HandleRemoveItem(u8);
-void ItemStorage_WaitPressHandleResumeProcessInput(u8);
-void ItemStorage_HandleResumeProcessInput(u8);
-void ItemStorage_DoItemSwap(u8, bool8);
-void ItemStorage_DrawItemList(u8);
-void ItemStorage_PrintItemPcResponse(u16);
-void ItemStorage_DrawBothListAndDescription(u8);
-void ItemStorage_GoBackToItemPCMenu(u8, u8);
-void ItemStorage_LoadPalette(void);
-u8 GetMailboxMailCount(void);
-void Mailbox_UpdateMailList(void);
-void Mailbox_DrawMailboxMenu(u8);
-void Mailbox_ProcessInput(u8);
-void sub_813B27C(void);
-void sub_813B294(u8);
-void sub_813B320(u8);
-void sub_813B348(u8);
-void sub_813B3A0(u8);
-void sub_813B454(u8);
-void sub_813B4F0(void);
-void sub_813B554(u8);
-void sub_813B66C(u8);
-void sub_813B718(u8);
-void Mailbox_Cancel(u8);
-void sub_813B758(u8);
+static const u8 gHighlightedMoveToBagFormatText[] = _("{COLOR RED}{STR_VAR_1}");
void NewGameInitPCItems(void)
{
@@ -175,27 +192,27 @@ void NewGameInitPCItems(void)
void BedroomPC(void)
{
- gPcItemMenuOptionOrder = gBedroomPC_OptionOrder;
+ gPcItemMenuOptionOrder = (u8 *)gBedroomPC_OptionOrder;
gPcItemMenuOptionsNum = 4;
DisplayItemMessageOnField(CreateTask(TaskDummy, 0), gOtherText_WhatWillYouDo, InitPlayerPCMenu, 0);
}
void PlayerPC(void)
{
- gPcItemMenuOptionOrder = gPlayerPC_OptionOrder;
+ gPcItemMenuOptionOrder = (u8 *)gPlayerPC_OptionOrder;
gPcItemMenuOptionsNum = 3;
DisplayItemMessageOnField(CreateTask(TaskDummy, 0), gOtherText_WhatWillYouDo, InitPlayerPCMenu, 0);
}
-void InitPlayerPCMenu(u8 taskId)
+static void InitPlayerPCMenu(u8 taskId)
{
MenuDrawTextWindow(0, 0, 10, gPcItemMenuOptionsNum * 2 + 1);
- PrintMenuItemsReordered(1, 1, gPcItemMenuOptionsNum, gPCText_PlayerPCOptionsText, gPcItemMenuOptionOrder);
+ PrintMenuItemsReordered(1, 1, gPcItemMenuOptionsNum, (struct MenuAction *)gPCText_PlayerPCOptionsText, gPcItemMenuOptionOrder);
InitMenu(0, 1, 1, gPcItemMenuOptionsNum, 0, 9);
- gTasks[taskId].func = PlayerPCProcessMenuInput;
+ TASK.FUNC = PlayerPCProcessMenuInput;
}
-void PlayerPCProcessMenuInput(u8 taskId)
+static void PlayerPCProcessMenuInput(u8 taskId)
{
if (gMain.newAndRepeatedKeys & DPAD_UP)
{
@@ -226,13 +243,13 @@ void ReshowPlayerPC(u8 var)
DisplayItemMessageOnField(var, gOtherText_WhatWillYouDo, InitPlayerPCMenu, 0);
}
-void PlayerPC_ItemStorage(u8 taskId)
+static void PlayerPC_ItemStorage(u8 taskId)
{
- InitItemStorageMenu(0);
- gTasks[taskId].func = ItemStorageMenuProcessInput;
+ InitItemStorageMenu(ITEMPC_MENU_WITHDRAW);
+ TASK.FUNC = ItemStorageMenuProcessInput;
}
-void PlayerPC_Mailbox(u8 taskId)
+static void PlayerPC_Mailbox(u8 taskId)
{
MenuZeroFillWindowRect(0, 0, 10, 9);
gMailboxInfo.count = GetMailboxMailCount();
@@ -246,26 +263,26 @@ void PlayerPC_Mailbox(u8 taskId)
Mailbox_UpdateMailList();
ItemStorage_SetItemAndMailCount(taskId);
Mailbox_DrawMailboxMenu(taskId);
- gTasks[taskId].func = Mailbox_ProcessInput;
+ TASK.FUNC = Mailbox_ProcessInput;
}
}
-void PlayerPC_Decoration(u8 var)
+static void PlayerPC_Decoration(u8 var)
{
MenuZeroFillWindowRect(0, 0, 10, 9);
DoPlayerPCDecoration(var);
}
-void PlayerPC_TurnOff(u8 taskId)
+static void PlayerPC_TurnOff(u8 taskId)
{
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 == MALE)
- ScriptContext1_SetupScript(&gUnknown_08152850);
+ ScriptContext1_SetupScript(gBrendanHouse_TurnPCOff);
else
- ScriptContext1_SetupScript(&gUnknown_08152C75);
+ ScriptContext1_SetupScript(gMayHouse_TurnPCOff);
}
else
{
@@ -275,34 +292,34 @@ void PlayerPC_TurnOff(u8 taskId)
DestroyTask(taskId);
}
-void InitItemStorageMenu(u8 var)
+static void InitItemStorageMenu(u8 var)
{
MenuZeroFillWindowRect(0, 0, 10, 9);
MenuDrawTextWindow(0, 0, 11, 9);
- PrintMenuItems(1, 1, 4, gPCText_ItemPCOptionsText);
+ PrintMenuItems(1, 1, 4, (struct MenuAction *)gPCText_ItemPCOptionsText);
InitMenu(0, 1, 1, 4, var, 10);
- ItemStorageMenuPrint((u8 *)gPCText_OptionDescList[var]);
+ ItemStorageMenuPrint(gPCText_OptionDescList[var].text);
}
-void ItemStorageMenuPrint(u8 *textPtr)
+static void ItemStorageMenuPrint(const u8 *textPtr)
{
MenuFillWindowRectWithBlankTile(2, 15, 27, 18);
MenuPrint(textPtr, 2, 15);
}
-void ItemStorageMenuProcessInput(u8 var)
+static void ItemStorageMenuProcessInput(u8 var)
{
if (gMain.newAndRepeatedKeys & DPAD_UP)
{
PlaySE(SE_SELECT);
MoveMenuCursor(-1);
- ItemStorageMenuPrint((u8 *)gPCText_OptionDescList[GetMenuCursorPos()]);
+ ItemStorageMenuPrint(gPCText_OptionDescList[GetMenuCursorPos()].text);
}
else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
{
PlaySE(SE_SELECT);
MoveMenuCursor(1);
- ItemStorageMenuPrint((u8 *)gPCText_OptionDescList[GetMenuCursorPos()]);
+ ItemStorageMenuPrint(gPCText_OptionDescList[GetMenuCursorPos()].text);
}
else if (gMain.newKeys & A_BUTTON)
{
@@ -317,7 +334,7 @@ void ItemStorageMenuProcessInput(u8 var)
}
}
-void Task_ItemStorage_Deposit(u8 taskId)
+static void Task_ItemStorage_Deposit(u8 taskId)
{
if (!gPaletteFade.active)
{
@@ -326,29 +343,29 @@ void Task_ItemStorage_Deposit(u8 taskId)
}
}
-void ItemStorage_Deposit(u8 taskId)
+static void ItemStorage_Deposit(u8 taskId)
{
- gTasks[taskId].func = Task_ItemStorage_Deposit;
+ TASK.FUNC = Task_ItemStorage_Deposit;
fade_screen(1, 0);
}
-void sub_813A0C8(u8 taskId)
+static void ItemStorage_HandleReturnToProcessInput(u8 taskId)
{
- if (sub_807D770() == 1)
- gTasks[taskId].func = ItemStorageMenuProcessInput;
+ if (sub_807D770() == TRUE)
+ TASK.FUNC = ItemStorageMenuProcessInput;
}
-void sub_813A0F8(void)
+void ItemStorage_ReturnToMenuAfterDeposit(void)
{
MenuDisplayMessageBox();
- InitItemStorageMenu(1);
- CreateTask(sub_813A0C8, 0);
+ InitItemStorageMenu(ITEMPC_MENU_DEPOSIT);
+ CreateTask(ItemStorage_HandleReturnToProcessInput, 0);
pal_fill_black();
}
-void ItemStorage_Withdraw(u8 taskId)
+static void ItemStorage_Withdraw(u8 taskId)
{
- s16 *data = gTasks[taskId].data;
+ s16 *data = TASK.data;
HandleDestroyMenuCursors();
MenuZeroFillWindowRect(0, 0, 11, 9);
@@ -362,15 +379,15 @@ void ItemStorage_Withdraw(u8 taskId)
ITEMS_ABOVE_TOP = 0;
ItemStorage_SetItemAndMailCount(taskId);
ItemStorage_GoBackToItemPCMenu(taskId, 0);
- gTasks[taskId].func = ItemStorage_ProcessInput;
+ TASK.FUNC = ItemStorage_ProcessInput;
}
else
DisplayItemMessageOnField(taskId, gOtherText_NoItems, PlayerPC_ItemStorage, 0);
}
-void ItemStorage_Toss(u8 taskId)
+static void ItemStorage_Toss(u8 taskId)
{
- s16 *data = gTasks[taskId].data;
+ s16 *data = TASK.data;
HandleDestroyMenuCursors();
MenuZeroFillWindowRect(0, 0, 11, 9);
@@ -384,22 +401,22 @@ void ItemStorage_Toss(u8 taskId)
ITEMS_ABOVE_TOP = 0;
ItemStorage_SetItemAndMailCount(taskId);
ItemStorage_GoBackToItemPCMenu(taskId, 2);
- gTasks[taskId].func = ItemStorage_ProcessInput;
+ TASK.FUNC = ItemStorage_ProcessInput;
}
else
DisplayItemMessageOnField(taskId, gOtherText_NoItems, PlayerPC_ItemStorage, 0);
}
-void ItemStorage_Exit(u8 var)
+static void ItemStorage_Exit(u8 var)
{
HandleDestroyMenuCursors();
MenuZeroFillWindowRect(0, 0, 11, 9);
ReshowPlayerPC(var);
}
-void ItemStorage_SetItemAndMailCount(u8 taskId)
+static void ItemStorage_SetItemAndMailCount(u8 taskId)
{
- s16 *data = gTasks[taskId].data;
+ s16 *data = TASK.data;
if (NUM_ITEMS > 7) // we have a full page, so set the num of page items appropriately.
NUM_PAGE_ITEMS = 8;
@@ -412,9 +429,9 @@ void ItemStorage_SetItemAndMailCount(u8 taskId)
gMailboxInfo.pageItems = gMailboxInfo.count + 1;
}
-void ItemStorage_ProcessInput(u8 taskId)
+static void ItemStorage_ProcessInput(u8 taskId)
{
- s16 *data = gTasks[taskId].data;
+ s16 *data = TASK.data;
s16 trueIndex;
if (gMain.newAndRepeatedKeys & DPAD_UP)
@@ -532,24 +549,24 @@ void ItemStorage_ProcessInput(u8 taskId)
}
}
-void ItemStorage_GoBackToPlayerPCMenu(u8 taskId)
+static void ItemStorage_GoBackToPlayerPCMenu(u8 taskId)
{
BuyMenuFreeMemory();
DestroyVerticalScrollIndicator(0);
DestroyVerticalScrollIndicator(1);
MenuZeroFillWindowRect(0, 0, 29, 19);
MenuDisplayMessageBox();
- InitItemStorageMenu(gTasks[taskId].CURRENT_ITEM_STORAGE_MENU);
- gTasks[taskId].func = ItemStorageMenuProcessInput;
+ InitItemStorageMenu(TASK.CURRENT_ITEM_STORAGE_MENU);
+ TASK.FUNC = ItemStorageMenuProcessInput;
}
-void ItemStorage_DoItemAction(u8 taskId)
+static void ItemStorage_DoItemAction(u8 taskId)
{
- s16 *data = gTasks[taskId].data;
+ s16 *data = TASK.data;
u8 trueIndex = PAGE_INDEX + ITEMS_ABOVE_TOP;
- sub_80F996C(0);
- sub_80F996C(1);
+ PauseVerticalScrollIndicator(0);
+ PauseVerticalScrollIndicator(1); // PauseVerticalScrollIndicator
if(CURRENT_ITEM_STORAGE_MENU == ITEMPC_MENU_WITHDRAW)
{
@@ -577,12 +594,12 @@ void ItemStorage_DoItemAction(u8 taskId)
NUM_QUANTITY_ROLLER = 1;
MenuDrawTextWindow(6, 8, 13, 11);
sub_80A418C(NUM_QUANTITY_ROLLER, STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3);
- gTasks[taskId].func = ItemStorage_HandleQuantityRolling;
+ TASK.FUNC = ItemStorage_HandleQuantityRolling;
}
-void ItemStorage_HandleQuantityRolling(u8 taskId)
+static void ItemStorage_HandleQuantityRolling(u8 taskId)
{
- s16 *data = gTasks[taskId].data;
+ s16 *data = TASK.data;
u8 trueIndex = PAGE_INDEX + ITEMS_ABOVE_TOP;
if(gMain.newAndRepeatedKeys & DPAD_UP)
@@ -635,16 +652,16 @@ void ItemStorage_HandleQuantityRolling(u8 taskId)
{
PlaySE(SE_SELECT);
MenuZeroFillWindowRect(6, 6, 0xD, 0xB);
- sub_80F98DC(0);
- sub_80F98DC(1);
+ StartVerticalScrollIndicators(0);
+ StartVerticalScrollIndicators(1);
ItemStorage_PrintItemPcResponse(gSaveBlock1.pcItems[ITEMS_ABOVE_TOP + PAGE_INDEX].itemId); // why not use trueIndex?
- gTasks[taskId].func = ItemStorage_ProcessInput;
+ TASK.FUNC = ItemStorage_ProcessInput;
}
}
-void ItemStorage_DoItemWithdraw(u8 taskId)
+static void ItemStorage_DoItemWithdraw(u8 taskId)
{
- s16 *data = gTasks[taskId].data;
+ s16 *data = TASK.data;
u8 trueIndex = PAGE_INDEX + ITEMS_ABOVE_TOP;
if(AddBagItem(gSaveBlock1.pcItems[trueIndex].itemId, NUM_QUANTITY_ROLLER) == TRUE) // add item works.
@@ -652,19 +669,19 @@ void ItemStorage_DoItemWithdraw(u8 taskId)
CopyItemName(gSaveBlock1.pcItems[trueIndex].itemId, gStringVar1);
ConvertIntToDecimalStringN(gStringVar2, NUM_QUANTITY_ROLLER, 0, 3);
ItemStorage_PrintItemPcResponse(ITEMPC_WITHDREW_THING);
- gTasks[taskId].func = ItemStorage_HandleRemoveItem;
+ TASK.FUNC = ItemStorage_HandleRemoveItem;
}
else
{
NUM_QUANTITY_ROLLER = 0;
ItemStorage_PrintItemPcResponse(ITEMPC_NO_MORE_ROOM);
- gTasks[taskId].func = ItemStorage_WaitPressHandleResumeProcessInput;
+ TASK.FUNC = ItemStorage_WaitPressHandleResumeProcessInput;
}
}
-void ItemStorage_DoItemToss(u8 taskId)
+static void ItemStorage_DoItemToss(u8 taskId)
{
- s16 *data = gTasks[taskId].data;
+ s16 *data = TASK.data;
u8 var = PAGE_INDEX + ITEMS_ABOVE_TOP;
if(ItemId_GetImportance(gSaveBlock1.pcItems[var].itemId) == FALSE)
@@ -673,38 +690,38 @@ void ItemStorage_DoItemToss(u8 taskId)
ConvertIntToDecimalStringN(gStringVar2, NUM_QUANTITY_ROLLER, 0, 3);
ItemStorage_PrintItemPcResponse(ITEMPC_OKAY_TO_THROW_AWAY);
DisplayYesNoMenu(7, 6, 1);
- sub_80F914C(taskId, &gUnknown_084062E0);
+ DoYesNoFuncWithChoice(taskId, (struct YesNoFuncTable *)&ResumeFromTossYesNoFuncList);
}
else
{
NUM_QUANTITY_ROLLER = 0;
ItemStorage_PrintItemPcResponse(ITEMPC_TOO_IMPORTANT);
- gTasks[taskId].func = ItemStorage_HandleRemoveItem;
+ TASK.FUNC = ItemStorage_HandleRemoveItem;
}
}
-void ItemStorage_ResumeInputFromYesToss(u8 taskId)
+static void ItemStorage_ResumeInputFromYesToss(u8 taskId)
{
MenuZeroFillWindowRect(0x6, 0x6, 0xD, 0xB);
ItemStorage_PrintItemPcResponse(ITEMPC_THREW_AWAY_ITEM);
- gTasks[taskId].func = ItemStorage_HandleRemoveItem;
+ TASK.FUNC = ItemStorage_HandleRemoveItem;
}
-void ItemStorage_ResumeInputFromNoToss(u8 taskId)
+static void ItemStorage_ResumeInputFromNoToss(u8 taskId)
{
- s16 *data = gTasks[taskId].data;
+ s16 *data = TASK.data;
MenuZeroFillWindowRect(0x6, 0x6, 0xD, 0xB);
InitMenu(0, 16, 2, NUM_PAGE_ITEMS, PAGE_INDEX, 0xD);
- sub_80F98DC(0);
- sub_80F98DC(1);
+ StartVerticalScrollIndicators(0);
+ StartVerticalScrollIndicators(1);
ItemStorage_PrintItemPcResponse(gSaveBlock1.pcItems[ITEMS_ABOVE_TOP + PAGE_INDEX].itemId);
- gTasks[taskId].func = ItemStorage_ProcessInput;
+ TASK.FUNC = ItemStorage_ProcessInput;
}
-void ItemStorage_HandleRemoveItem(u8 taskId)
+static void ItemStorage_HandleRemoveItem(u8 taskId)
{
- s16 *data = gTasks[taskId].data;
+ s16 *data = TASK.data;
s16 oldNumItems;
if(gMain.newKeys & A_BUTTON || gMain.newKeys == B_BUTTON)
@@ -722,31 +739,31 @@ void ItemStorage_HandleRemoveItem(u8 taskId)
}
}
-void ItemStorage_WaitPressHandleResumeProcessInput(u8 taskId)
+static void ItemStorage_WaitPressHandleResumeProcessInput(u8 taskId)
{
- s16 *data = gTasks[taskId].data;
+ s16 *data = TASK.data;
if(gMain.newKeys & A_BUTTON || gMain.newKeys == B_BUTTON)
{
ItemStorage_PrintItemPcResponse(gSaveBlock1.pcItems[ITEMS_ABOVE_TOP + PAGE_INDEX].itemId);
- sub_80F98DC(0);
- sub_80F98DC(1);
- gTasks[taskId].func = ItemStorage_ProcessInput;
+ StartVerticalScrollIndicators(0);
+ StartVerticalScrollIndicators(1);
+ TASK.FUNC = ItemStorage_ProcessInput;
}
}
-void ItemStorage_HandleResumeProcessInput(u8 taskId)
+static void ItemStorage_HandleResumeProcessInput(u8 taskId)
{
MenuZeroFillWindowRect(0x6, 0x6, 0xD, 0xB);
- sub_80F98DC(0);
- sub_80F98DC(1);
+ StartVerticalScrollIndicators(0);
+ StartVerticalScrollIndicators(1);
ItemStorage_DrawBothListAndDescription(taskId);
- gTasks[taskId].func = ItemStorage_ProcessInput;
+ TASK.FUNC = ItemStorage_ProcessInput;
}
-void ItemStorage_DoItemSwap(u8 taskId, bool8 switchModeDisabled)
+static void ItemStorage_DoItemSwap(u8 taskId, bool8 switchModeDisabled)
{
- s16 *data = gTasks[taskId].data;
+ s16 *data = TASK.data;
u8 trueIndex = ITEMS_ABOVE_TOP + PAGE_INDEX;
SWITCH_MODE_ACTIVE = FALSE;
@@ -784,44 +801,44 @@ void ItemStorage_DoItemSwap(u8 taskId, bool8 switchModeDisabled)
}
}
-void ItemStorage_DrawItemQuantity(u16 arg1, enum StringConvertMode arg2, u8 arg3, u8 arg4, int isSwapSelected)
+static void ItemStorage_DrawItemQuantity(u16 arg1, enum StringConvertMode arg2, u8 arg3, u8 arg4, int isSwapSelected)
{
sub_80A4164(gStringVar1, arg1, arg2, arg4);
if(isSwapSelected != FALSE)
- MenuPrint(gUnknown_0840632A, 0x1A, arg3);
+ MenuPrint(gSelectedItemQuantityFormatText, 0x1A, arg3);
else
- MenuPrint(gUnknown_08406327, 0x1A, arg3);
+ MenuPrint(gNonSelectedItemQuantityFormatText, 0x1A, arg3);
}
-void ItemStorage_DrawItemVoidQuantity(u8 var)
+static void ItemStorage_DrawItemVoidQuantity(u8 var)
{
MenuPrint(gUnknown_08406330, 0x19, var);
}
-void ItemStorage_DrawItemName(struct ItemSlot *itemSlot, u8 var, int isSwapSelected)
+static void ItemStorage_DrawItemName(struct ItemSlot *itemSlot, u8 var, int isSwapSelected)
{
CopyItemName(itemSlot->itemId, gStringVar1);
if(isSwapSelected != FALSE)
- MenuPrint(gUnknown_0840631E, 16, var);
+ MenuPrint(gSelectedItemFormattedText, 16, var);
else
- MenuPrint(gUnknown_08406318, 16, var);
+ MenuPrint(gNonSelectedItemFormattedText, 16, var);
}
-void ItemStorage_DrawNormalItemEntry(struct ItemSlot *itemSlot, u8 var, int var2)
+static void ItemStorage_DrawNormalItemEntry(struct ItemSlot *itemSlot, u8 var, int var2)
{
ItemStorage_DrawItemName(itemSlot, var, var2);
ItemStorage_DrawItemQuantity(itemSlot->quantity, STR_CONV_MODE_RIGHT_ALIGN, var, 3, var2);
}
-void ItemStorage_DrawKeyItemEntry(struct ItemSlot *itemSlot, u8 var, int var2)
+static void ItemStorage_DrawKeyItemEntry(struct ItemSlot *itemSlot, u8 var, int var2)
{
ItemStorage_DrawItemName(itemSlot, var, var2);
ItemStorage_DrawItemVoidQuantity(var);
}
-void ItemStorage_DrawTMHMEntry(struct ItemSlot *itemSlot, u8 var, int var2)
+static void ItemStorage_DrawTMHMEntry(struct ItemSlot *itemSlot, u8 var, int var2)
{
ItemStorage_DrawItemName(itemSlot, var, var2);
@@ -831,9 +848,9 @@ void ItemStorage_DrawTMHMEntry(struct ItemSlot *itemSlot, u8 var, int var2)
ItemStorage_DrawItemVoidQuantity(var); // HMs do not have a quantity.
}
-void ItemStorage_DrawItemList(u8 taskId)
+static void ItemStorage_DrawItemList(u8 taskId)
{
- s16 *data = gTasks[taskId].data;
+ s16 *data = TASK.data;
int tempArg;
u16 i;
u16 yCoord = 0;
@@ -895,7 +912,7 @@ weirdCase:
DestroyVerticalScrollIndicator(1);
}
-void ItemStorage_PrintItemPcResponse(u16 itemId)
+static void ItemStorage_PrintItemPcResponse(u16 itemId)
{
u8 *string;
@@ -936,9 +953,9 @@ void ItemStorage_PrintItemPcResponse(u16 itemId)
sub_8072AB0(string, 8, 0x68, 0x68, 0x30, 1);
}
-void ItemStorage_DrawBothListAndDescription(u8 taskId)
+static void ItemStorage_DrawBothListAndDescription(u8 taskId)
{
- s16 *data = gTasks[taskId].data;
+ s16 *data = TASK.data;
s16 trueIndex = ITEMS_ABOVE_TOP + PAGE_INDEX;
ItemStorage_DrawItemList(taskId);
@@ -952,9 +969,9 @@ void ItemStorage_DrawBothListAndDescription(u8 taskId)
}
}
-void ItemStorage_GoBackToItemPCMenu(u8 taskId, u8 var)
+static void ItemStorage_GoBackToItemPCMenu(u8 taskId, u8 var)
{
- s16 *data = gTasks[taskId].data;
+ s16 *data = TASK.data;
sub_80F944C();
LoadScrollIndicatorPalette();
@@ -968,7 +985,7 @@ void ItemStorage_GoBackToItemPCMenu(u8 taskId, u8 var)
InitMenu(0, 0x10, 2, NUM_PAGE_ITEMS, PAGE_INDEX, 0xD);
}
-void ItemStorage_LoadPalette(void)
+static void ItemStorage_LoadPalette(void)
{
u16 arr[3];
@@ -978,7 +995,7 @@ void ItemStorage_LoadPalette(void)
LoadPalette(&arr[0], 0xD8, 2);
}
-u8 GetMailboxMailCount(void)
+static u8 GetMailboxMailCount(void)
{
u8 i, j;
@@ -989,7 +1006,7 @@ u8 GetMailboxMailCount(void)
return i;
}
-void Mailbox_UpdateMailList(void)
+static void Mailbox_UpdateMailList(void)
{
struct MailStruct mailBuffer;
u8 i, j;
@@ -1009,7 +1026,7 @@ void Mailbox_UpdateMailList(void)
}
// WWHHHHHYYYYYYYY SOMEBODY PLEASE FIX THIS
-void Mailbox_DrawMailList(u8 taskId) // taskId is unused
+static void Mailbox_DrawMailList(u8 taskId) // taskId is unused
{
u16 yCoord = 0;
u16 i = gMailboxInfo.itemsAbove;
@@ -1062,7 +1079,7 @@ weirdCase:
DestroyVerticalScrollIndicator(1);
}
-void Mailbox_DrawMailboxMenu(u8 taskId)
+static void Mailbox_DrawMailboxMenu(u8 taskId)
{
sub_80F944C();
LoadScrollIndicatorPalette();
@@ -1075,7 +1092,7 @@ void Mailbox_DrawMailboxMenu(u8 taskId)
}
// Mailbox_ProcessInput
-void Mailbox_ProcessInput(u8 taskId)
+static void Mailbox_ProcessInput(u8 taskId)
{
if(!gPaletteFade.active)
{
@@ -1083,12 +1100,12 @@ void Mailbox_ProcessInput(u8 taskId)
{
if(gMailboxInfo.cursorPos != 0)
{
- PlaySE(5);
+ PlaySE(SE_SELECT);
gMailboxInfo.cursorPos = MoveMenuCursor(-1);
}
else if(gMailboxInfo.itemsAbove != 0)
{
- PlaySE(5);
+ PlaySE(SE_SELECT);
gMailboxInfo.itemsAbove--;
Mailbox_DrawMailList(taskId);
}
@@ -1097,12 +1114,12 @@ void Mailbox_ProcessInput(u8 taskId)
{
if(gMailboxInfo.cursorPos != gMailboxInfo.pageItems - 1)
{
- PlaySE(5);
+ PlaySE(SE_SELECT);
gMailboxInfo.cursorPos = MoveMenuCursor(1);
}
else if(gMailboxInfo.itemsAbove + gMailboxInfo.cursorPos != gMailboxInfo.count)
{
- PlaySE(5);
+ PlaySE(SE_SELECT);
gMailboxInfo.itemsAbove++;
Mailbox_DrawMailList(taskId);
}
@@ -1110,135 +1127,135 @@ void Mailbox_ProcessInput(u8 taskId)
else if(gMain.newKeys & A_BUTTON)
{
HandleDestroyMenuCursors();
- PlaySE(5);
+ PlaySE(SE_SELECT);
if(gMailboxInfo.itemsAbove + gMailboxInfo.cursorPos == gMailboxInfo.count)
{
- sub_813B320(taskId);
+ Mailbox_TurnOff(taskId);
}
else
{
- sub_813B27C();
- gTasks[taskId].func = sub_813B294;
+ Mailbox_CloseScrollIndicators();
+ TASK.FUNC = Mailbox_PrintWhatToDoWithPlayerMailText;
}
}
else if(gMain.newKeys & B_BUTTON)
{
HandleDestroyMenuCursors();
- PlaySE(5);
- sub_813B320(taskId);
+ PlaySE(SE_SELECT);
+ Mailbox_TurnOff(taskId);
}
}
}
-void sub_813B27C(void)
+static void Mailbox_CloseScrollIndicators(void)
{
BuyMenuFreeMemory();
DestroyVerticalScrollIndicator(0);
DestroyVerticalScrollIndicator(1);
}
-void sub_813B294(u8 taskId)
+static void Mailbox_PrintWhatToDoWithPlayerMailText(u8 taskId)
{
MenuZeroFillWindowRect(0, 0, 0x1D, 0x13);
StringCopy(gStringVar1, gSaveBlock1.mail[gMailboxInfo.itemsAbove + 6 + gMailboxInfo.cursorPos].playerName);
SanitizeNameString(gStringVar1);
StringExpandPlaceholders(gStringVar4, gOtherText_WhatWillYouDoMail);
- DisplayItemMessageOnField(taskId, gStringVar4, sub_813B348, 0);
+ DisplayItemMessageOnField(taskId, gStringVar4, Mailbox_PrintMailOptions, 0);
}
-void sub_813B300(u8 taskId)
+static void Mailbox_ReturnToPlayerPC(u8 taskId)
{
MenuZeroFillWindowRect(0, 0, 0x1D, 0x13);
ReshowPlayerPC(taskId);
}
-void sub_813B320(u8 taskId)
+static void Mailbox_TurnOff(u8 taskId)
{
- sub_813B27C();
- gTasks[taskId].func = sub_813B300;
+ Mailbox_CloseScrollIndicators();
+ TASK.FUNC = Mailbox_ReturnToPlayerPC;
}
-void sub_813B348(u8 taskId)
+static void Mailbox_PrintMailOptions(u8 taskId) // Mailbox_PrintMailOptions
{
MenuDrawTextWindow(0, 0, 0xC, 0x9);
- PrintMenuItems(1, 1, 4, gUnknown_084062F8);
+ PrintMenuItems(1, 1, 4, (struct MenuAction *)gMailboxMailOptions);
InitMenu(0, 1, 1, 4, 0, 0xB);
- gTasks[taskId].func = sub_813B3A0;
+ TASK.FUNC = Mailbox_MailOptionsProcessInput;
}
-void sub_813B3A0(u8 taskId)
+static void Mailbox_MailOptionsProcessInput(u8 taskId)
{
if(gMain.newAndRepeatedKeys & DPAD_UP)
{
- PlaySE(5);
+ PlaySE(SE_SELECT);
MoveMenuCursor(-1);
}
else if(gMain.newAndRepeatedKeys & DPAD_DOWN)
{
- PlaySE(5);
+ PlaySE(SE_SELECT);
MoveMenuCursor(1);
}
else if(gMain.newKeys & A_BUTTON)
{
- PlaySE(5);
- gUnknown_084062F8[GetMenuCursorPos()].func(taskId);
+ PlaySE(SE_SELECT);
+ gMailboxMailOptions[GetMenuCursorPos()].func(taskId);
}
else if(gMain.newKeys & B_BUTTON)
{
- PlaySE(5);
+ PlaySE(SE_SELECT);
Mailbox_Cancel(taskId);
}
}
-void Mailbox_Read(u8 taskId)
+static void Mailbox_DoMailRead(u8 taskId)
{
fade_screen(1, 0);
- gTasks[taskId].func = sub_813B454;
+ TASK.FUNC = Mailbox_FadeAndReadMail;
}
-void sub_813B454(u8 taskId)
+static void Mailbox_FadeAndReadMail(u8 taskId)
{
if(!gPaletteFade.active)
{
- HandleReadMail(&gSaveBlock1.mail[gMailboxInfo.itemsAbove + 6 + gMailboxInfo.cursorPos], sub_813B4F0, 1);
+ HandleReadMail(&gSaveBlock1.mail[gMailboxInfo.itemsAbove + 6 + gMailboxInfo.cursorPos], Mailbox_ReturnToFieldFromReadMail, 1);
DestroyTask(taskId);
}
}
-void sub_813B4A0(u8 taskId)
+static void Mailbox_HandleReturnToProcessInput(u8 taskId) // Mailbox_HandleReturnToProcessInput
{
- if(sub_807D770() == TRUE)
- gTasks[taskId].func = Mailbox_ProcessInput;
+ if(sub_807D770() == TRUE) // is black fade finished? why not gPaletteFade.active?
+ TASK.FUNC = Mailbox_ProcessInput;
}
-void sub_813B4D0(void)
+static void Mailbox_DoRedrawMailboxMenuAfterReturn(void)
{
- Mailbox_DrawMailboxMenu(CreateTask(sub_813B4A0, 0));
+ Mailbox_DrawMailboxMenu(CreateTask(Mailbox_HandleReturnToProcessInput, 0));
pal_fill_black();
}
-void sub_813B4F0(void)
+static void Mailbox_ReturnToFieldFromReadMail(void)
{
- gUnknown_0300485C = sub_813B4D0;
+ gFieldCallback = Mailbox_DoRedrawMailboxMenuAfterReturn;
SetMainCallback2(c2_exit_to_overworld_2_switch);
}
-void Mailbox_MoveToBag(u8 taskId)
+static void Mailbox_MoveToBag(u8 taskId)
{
HandleDestroyMenuCursors();
StringCopy(gStringVar1, gOtherText_MoveToBag);
- MenuPrint(gUnknown_0840633A, 1, 3);
- DisplayItemMessageOnField(taskId, gOtherText_MessageWillBeLost, sub_813B554, 0);
+ MenuPrint(gHighlightedMoveToBagFormatText, 1, 3); // gHighlightedMoveToBagFormatText
+ DisplayItemMessageOnField(taskId, gOtherText_MessageWillBeLost, Mailbox_DrawYesNoBeforeMove, 0);
}
-void sub_813B554(u8 taskId)
+static void Mailbox_DrawYesNoBeforeMove(u8 taskId)
{
DisplayYesNoMenu(0x14, 0x8, 0x1);
- sub_80F914C(taskId, &gUnknown_084062E8);
+ DoYesNoFuncWithChoice(taskId, (struct YesNoFuncTable *)&ResumeFromWithdrawYesNoFuncList);
}
-void sub_813B578(u8 taskId)
+static void Mailbox_DoMailMoveToBag(u8 taskId)
{
struct MailStruct *mail = &gSaveBlock1.mail[gMailboxInfo.itemsAbove + 6 + gMailboxInfo.cursorPos];
@@ -1246,11 +1263,11 @@ void sub_813B578(u8 taskId)
if(AddBagItem(mail->itemId, 1) == FALSE)
{
- DisplayItemMessageOnField(taskId, gOtherText_BagIsFull, sub_813B758, 0);
+ DisplayItemMessageOnField(taskId, gOtherText_BagIsFull, Mailbox_DrawMailMenuAndDoProcessInput, 0);
}
else
{
- DisplayItemMessageOnField(taskId, gOtherText_MailWasReturned, sub_813B758, 0);
+ DisplayItemMessageOnField(taskId, gOtherText_MailWasReturned, Mailbox_DrawMailMenuAndDoProcessInput, 0);
ClearMailStruct(mail);
Mailbox_UpdateMailList();
@@ -1263,24 +1280,24 @@ void sub_813B578(u8 taskId)
}
}
-void sub_813B610(u8 taskId)
+static void Mailbox_ReturnToInputAfterNo(u8 taskId) // Mailbox_ReturnToInputAfterNo
{
MenuZeroFillWindowRect(0x14, 0x8, 0x1A, 0xD);
- sub_813B758(taskId);
+ Mailbox_DrawMailMenuAndDoProcessInput(taskId);
}
-void Mailbox_Give(u8 taskId)
+static void Mailbox_Give(u8 taskId)
{
if(CalculatePlayerPartyCount() == 0)
- sub_813B718(taskId);
+ Mailbox_NoPokemonForMail(taskId); // cannot be reached normally
else
{
fade_screen(1, 0);
- gTasks[taskId].func = sub_813B66C;
+ TASK.FUNC = Mailbox_DoGiveMailPokeMenu;
}
}
-void sub_813B66C(u8 taskId)
+static void Mailbox_DoGiveMailPokeMenu(u8 taskId) // Mailbox_DoGiveMailPokeMenu
{
if(!gPaletteFade.active)
{
@@ -1290,9 +1307,9 @@ void sub_813B66C(u8 taskId)
}
}
-void sub_813B6A4(void)
+static void Mailbox_UpdateMailListAfterDeposit(void)
{
- u8 taskId = CreateTask(sub_813B4A0, 0);
+ u8 taskId = CreateTask(Mailbox_HandleReturnToProcessInput, 0);
u8 oldCount = gMailboxInfo.count;
gMailboxInfo.count = GetMailboxMailCount();
@@ -1306,26 +1323,27 @@ void sub_813B6A4(void)
pal_fill_black();
}
-void sub_813B6F8(void)
+void Mailbox_ReturnToMailListAfterDeposit(void)
{
- gUnknown_0300485C = sub_813B6A4;
+ gFieldCallback = Mailbox_UpdateMailListAfterDeposit;
SetMainCallback2(c2_exit_to_overworld_2_switch);
}
-void sub_813B718(u8 taskId)
+// you always have at least 1 POKeMON and you cannot receive mail before you leave Littleroot: therefore this function cannot be reached normally.
+static void Mailbox_NoPokemonForMail(u8 taskId)
{
- DisplayItemMessageOnField(taskId, gOtherText_NoPokemon, sub_813B758, 0);
+ DisplayItemMessageOnField(taskId, gOtherText_NoPokemon, Mailbox_DrawMailMenuAndDoProcessInput, 0);
}
-void Mailbox_Cancel(u8 taskId)
+static void Mailbox_Cancel(u8 taskId)
{
HandleDestroyMenuCursors();
MenuZeroFillWindowRect(0, 0, 0xC, 0x9);
- sub_813B758(taskId);
+ Mailbox_DrawMailMenuAndDoProcessInput(taskId);
}
-void sub_813B758(u8 taskId)
+static void Mailbox_DrawMailMenuAndDoProcessInput(u8 taskId)
{
Mailbox_DrawMailboxMenu(taskId);
- gTasks[taskId].func = Mailbox_ProcessInput;
+ TASK.FUNC = Mailbox_ProcessInput;
}
diff --git a/src/rom4.c b/src/rom4.c
index 79ac6d769..98060c3b1 100644
--- a/src/rom4.c
+++ b/src/rom4.c
@@ -67,7 +67,7 @@ extern u16 (*gUnknown_03000584)(u32);
extern u8 gUnknown_03000588;
extern u16 word_3004858;
-extern void (*gUnknown_0300485C)(void);
+extern void (*gFieldCallback)(void);
extern u8 gUnknown_03004860;
extern u8 gFieldLinkPlayerCount;
@@ -1082,11 +1082,11 @@ void sub_80543DC(u16 (*a1)(u32))
void sub_80543E8(void)
{
- if (gUnknown_0300485C)
- gUnknown_0300485C();
+ if (gFieldCallback)
+ gFieldCallback();
else
mapldr_default();
- gUnknown_0300485C = NULL;
+ gFieldCallback = NULL;
}
void CB2_NewGame(void)
@@ -1099,7 +1099,7 @@ void CB2_NewGame(void)
PlayTimeCounter_Start();
ScriptContext1_Init();
ScriptContext2_Disable();
- gUnknown_0300485C = ExecuteTruckSequence;
+ gFieldCallback = ExecuteTruckSequence;
do_load_map_stuff_loop(&gMain.state);
SetFieldVBlankCallback();
set_callback1(c1_overworld);
@@ -1119,7 +1119,7 @@ void CB2_WhiteOut(void)
player_avatar_init_params_reset();
ScriptContext1_Init();
ScriptContext2_Disable();
- gUnknown_0300485C = sub_8080B60;
+ gFieldCallback = sub_8080B60;
val = 0;
do_load_map_stuff_loop(&val);
SetFieldVBlankCallback();
@@ -1166,7 +1166,7 @@ void sub_8054534(void)
void sub_8054588(void)
{
FieldClearVBlankHBlankCallbacks();
- gUnknown_0300485C = sub_8080AC4;
+ gFieldCallback = sub_8080AC4;
SetMainCallback2(c2_80567AC);
}
@@ -1216,7 +1216,7 @@ void sub_805465C(void)
sub_8054F70();
set_callback1(sub_8055354);
sub_80543DC(sub_8055390);
- gUnknown_0300485C = sub_8080A3C;
+ gFieldCallback = sub_8080A3C;
ScriptContext1_Init();
ScriptContext2_Disable();
c2_exit_to_overworld_2_switch();
@@ -1225,28 +1225,28 @@ void sub_805465C(void)
void sub_805469C(void)
{
FieldClearVBlankHBlankCallbacks();
- gUnknown_0300485C = atk17_seteffectuser;
+ gFieldCallback = atk17_seteffectuser;
c2_exit_to_overworld_2_switch();
}
void sub_80546B8(void)
{
FieldClearVBlankHBlankCallbacks();
- gUnknown_0300485C = sub_80809B0;
+ gFieldCallback = sub_80809B0;
c2_exit_to_overworld_2_switch();
}
void c2_exit_to_overworld_1_continue_scripts_restart_music(void)
{
FieldClearVBlankHBlankCallbacks();
- gUnknown_0300485C = sub_8080990;
+ gFieldCallback = sub_8080990;
c2_exit_to_overworld_2_switch();
}
void sub_80546F0(void)
{
FieldClearVBlankHBlankCallbacks();
- gUnknown_0300485C = sub_8080B60;
+ gFieldCallback = sub_8080B60;
c2_exit_to_overworld_2_switch();
}
@@ -1280,7 +1280,7 @@ void CB2_ContinueSavedGame(void)
}
else
{
- gUnknown_0300485C = sub_805470C;
+ gFieldCallback = sub_805470C;
set_callback1(c1_overworld);
c2_exit_to_overworld_2_switch();
}
diff --git a/src/rom6.c b/src/rom6.c
index a2b52c9aa..a8233eb5b 100644
--- a/src/rom6.c
+++ b/src/rom6.c
@@ -14,7 +14,7 @@
extern u16 gScriptLastTalked;
extern u32 gUnknown_0202FF84[];
extern struct MapPosition gUnknown_0203923C;
-extern void (*gUnknown_0300485C)(void);
+extern void (*gFieldCallback)(void);
extern u8 gLastFieldPokeMenuOpened;
extern void (*gUnknown_03005CE4)(void);
extern u8 UseRockSmashScript[];
@@ -122,7 +122,7 @@ bool8 SetUpFieldMove_RockSmash(void)
{
if (npc_before_player_of_type(0x56) == TRUE)
{
- gUnknown_0300485C = sub_808AB90;
+ gFieldCallback = sub_808AB90;
gUnknown_03005CE4 = sub_810B53C;
return TRUE;
}
@@ -159,7 +159,7 @@ int SetUpFieldMove_Dig(void)
{
if (sub_80CA1C8() == TRUE)
{
- gUnknown_0300485C = sub_808AB90;
+ gFieldCallback = sub_808AB90;
gUnknown_03005CE4 = sub_810B5D8;
return TRUE;
}
diff --git a/src/safari_zone.c b/src/safari_zone.c
index 8c2b63469..986412826 100644
--- a/src/safari_zone.c
+++ b/src/safari_zone.c
@@ -29,7 +29,7 @@ EWRAM_DATA u8 gNumSafariBalls = 0;
EWRAM_DATA static u16 gSafariZoneStepCounter = 0;
EWRAM_DATA static struct PokeblockFeeder gPokeblockFeeders[NUM_POKEBLOCK_FEEDERS] = {0};
-extern void (*gUnknown_0300485C)(void);
+extern void (*gFieldCallback)(void);
extern u8 gUnknown_081C340A;
extern u8 gUnknown_081C342D;
@@ -103,7 +103,7 @@ void sub_80C824C(void)
{
ScriptContext2_RunNewScript(&gUnknown_081C340A);
warp_in();
- gUnknown_0300485C = sub_8080E44;
+ gFieldCallback = sub_8080E44;
SetMainCallback2(CB2_LoadMap);
}
else if (gUnknown_02024D26 == 7)
diff --git a/src/script_pokemon_util_80F99CC.c b/src/script_pokemon_util_80F99CC.c
index 9e833ec34..ee140187f 100644
--- a/src/script_pokemon_util_80F99CC.c
+++ b/src/script_pokemon_util_80F99CC.c
@@ -18,7 +18,7 @@ extern u16 gSpecialVar_0x8005;
extern u8 gUnknown_02038694;
extern u16 gScriptResult;
-extern void (*gUnknown_0300485C)(void);
+extern void (*gFieldCallback)(void);
extern void OpenPartyMenu(u8, u8);
extern void TryCreatePartyMenuMonIcon(u8, u8, struct Pokemon *);
@@ -284,7 +284,7 @@ void sub_80F9EEC(void)
{
sub_809D9F0(&gPlayerParty[0], gSpecialVar_0x8004, gPlayerPartyCount - 1, c2_exit_to_overworld_2_switch, 0);
unk_2018000.unk8 = 3;
- gUnknown_0300485C = sub_8080990;
+ gFieldCallback = sub_8080990;
}
void sub_80F9F3C(void) // count pokemon moves
diff --git a/src/secret_base.c b/src/secret_base.c
index aae3853f9..adcd47d66 100644
--- a/src/secret_base.c
+++ b/src/secret_base.c
@@ -250,7 +250,7 @@ void sub_80BBA48(u8 taskid)
gSaveBlock1.secretBases[curbaseid].sbr_field_10 ++;
sub_80BBA14();
warp_in();
- gUnknown_0300485C = sub_8080990;
+ gFieldCallback = sub_8080990;
SetMainCallback2(CB2_LoadMap);
DestroyTask(taskid);
break;
@@ -299,7 +299,7 @@ void sub_80BBBEC(u8 taskid)
idx = 4 * (gUnknown_020387DC / 10);
warp1_set(gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum, -1, gUnknown_083D1374[idx + 2], gUnknown_083D1374[idx + 3]);
warp_in();
- gUnknown_0300485C = sub_80BBB90;
+ gFieldCallback = sub_80BBB90;
SetMainCallback2(CB2_LoadMap);
DestroyTask(taskid);
}
@@ -793,7 +793,7 @@ void sub_80BC074(u8 taskid)
case 2:
copy_saved_warp2_bank_and_enter_x_to_warp1(0x7E);
warp_in();
- gUnknown_0300485C = mapldr_default;
+ gFieldCallback = mapldr_default;
SetMainCallback2(CB2_LoadMap);
ScriptContext2_Disable();
DestroyTask(taskid);
diff --git a/sym_common.txt b/sym_common.txt
index f8645c427..407dca9d1 100644
--- a/sym_common.txt
+++ b/sym_common.txt
@@ -145,7 +145,7 @@ gUnknown_03004854: @ 3004854
word_3004858: @ 3004858
.space 0x4
-gUnknown_0300485C: @ 300485C
+gFieldCallback: @ 300485C
.space 0x4
gUnknown_03004860: @ 3004860